summaryrefslogtreecommitdiff
path: root/apply.c
diff options
context:
space:
mode:
authorLibravatar Jiang Xin <zhiyou.jx@alibaba-inc.com>2019-12-30 08:47:27 +0800
committerLibravatar Jiang Xin <zhiyou.jx@alibaba-inc.com>2019-12-30 08:47:27 +0800
commit173fff68dabefc07c69b9d7b96eee06e3d506a20 (patch)
tree21f11b938a3150de572c12e61c187b33f2728d77 /apply.c
parentl10n: Update Catalan translation (diff)
parentGit 2.25-rc0 (diff)
downloadtgif-173fff68dabefc07c69b9d7b96eee06e3d506a20.tar.xz
Merge tag 'v2.25.0-rc0' into git-po-master
Git 2.25-rc0 * tag 'v2.25.0-rc0': (531 commits) Git 2.25-rc0 sparse-checkout: improve OS ls compatibility dir.c: use st_add3() for allocation size dir: consolidate similar code in treat_directory() dir: synchronize treat_leading_path() and read_directory_recursive() dir: fix checks on common prefix directory t4015: improve coverage of function context test commit: forbid --pathspec-from-file --all t3434: mark successful test as such notes.h: fix typos in comment t6030: don't create unused file t5580: don't create unused file t3501: don't create unused file bisect--helper: convert `*_warning` char pointers to char arrays. The sixth batch fix-typo: consecutive-word duplications Makefile: drop GEN_HDRS built-in add -p: show helpful hint when nothing can be staged built-in add -p: only show the applicable parts of the help text built-in add -p: implement the 'q' ("quit") command ...
Diffstat (limited to 'apply.c')
-rw-r--r--apply.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/apply.c b/apply.c
index f8a046a6a5..fab44322c5 100644
--- a/apply.c
+++ b/apply.c
@@ -32,7 +32,7 @@ static void git_apply_config(void)
{
git_config_get_string_const("apply.whitespace", &apply_default_whitespace);
git_config_get_string_const("apply.ignorewhitespace", &apply_default_ignorewhitespace);
- git_config(git_default_config, NULL);
+ git_config(git_xmerge_config, NULL);
}
static int parse_whitespace_option(struct apply_state *state, const char *option)
@@ -450,7 +450,7 @@ static char *find_name_gnu(struct strbuf *root,
/*
* Proposed "new-style" GNU patch/diff format; see
- * https://public-inbox.org/git/7vll0wvb2a.fsf@assigned-by-dhcp.cox.net/
+ * https://lore.kernel.org/git/7vll0wvb2a.fsf@assigned-by-dhcp.cox.net/
*/
if (unquote_c_style(&name, line, NULL)) {
strbuf_release(&name);
@@ -2662,6 +2662,16 @@ static int find_pos(struct apply_state *state,
int backwards_lno, forwards_lno, current_lno;
/*
+ * When running with --allow-overlap, it is possible that a hunk is
+ * seen that pretends to start at the beginning (but no longer does),
+ * and that *still* needs to match the end. So trust `match_end` more
+ * than `match_beginning`.
+ */
+ if (state->allow_overlap && match_beginning && match_end &&
+ img->nr - preimage->nr != 0)
+ match_beginning = 0;
+
+ /*
* If match_beginning or match_end is specified, there is no
* point starting from a wrong line that will never match and
* wander around and wait for a match at the specified end.
@@ -4183,8 +4193,8 @@ static void show_rename_copy(struct patch *p)
old_name = slash_old + 1;
new_name = slash_new + 1;
}
- /* p->old_name thru old_name is the common prefix, and old_name and new_name
- * through the end of names are renames
+ /* p->old_name through old_name is the common prefix, and old_name and
+ * new_name through the end of names are renames
*/
if (old_name != p->old_name)
printf(" %s %.*s{%s => %s} (%d%%)\n", renamecopy,