aboutsummaryrefslogtreecommitdiff
path: root/builtin-apply.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2008-05-17 02:02:44 -0700
committerJunio C Hamano <gitster@pobox.com>2008-05-17 02:57:33 -0700
commit032bea55a3fda805382398020657f738b8176729 (patch)
tree53e7b5693c5d337202aa7058504e11b3e380534e /builtin-apply.c
parent5c47f4c6e71e6de08348f837f38a446a2f2b0ed7 (diff)
downloadgit-032bea55a3fda805382398020657f738b8176729.tar.gz
git-032bea55a3fda805382398020657f738b8176729.tar.xz
builtin-apply: do not declare patch is creation when we do not know it
When we see no context nor deleted line in the patch, we used to declare that the patch creates a new file. But some people create an empty file and then apply a patch to it. Similarly, a patch that delete everything is not a deletion patch either. This commit corrects these two issues. Together with the previous commit, it allows a diff between an empty file and a line-ful file to be treated as both creation patch and "add stuff to an existing empty file", depending on the context. A new test t4126 demonstrates the fix. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-apply.c')
-rw-r--r--builtin-apply.c15
1 files changed, 0 insertions, 15 deletions
diff --git a/builtin-apply.c b/builtin-apply.c
index 10b1f88a3..1540f28ab 100644
--- a/builtin-apply.c
+++ b/builtin-apply.c
@@ -1143,21 +1143,6 @@ static int parse_single_patch(char *line, unsigned long size, struct patch *patc
if (patch->is_delete < 0 &&
(newlines || (patch->fragments && patch->fragments->next)))
patch->is_delete = 0;
- if (!unidiff_zero || context) {
- /* If the user says the patch is not generated with
- * --unified=0, or if we have seen context lines,
- * then not having oldlines means the patch is creation,
- * and not having newlines means the patch is deletion.
- */
- if (patch->is_new < 0 && !oldlines) {
- patch->is_new = 1;
- patch->old_name = NULL;
- }
- if (patch->is_delete < 0 && !newlines) {
- patch->is_delete = 1;
- patch->new_name = NULL;
- }
- }
if (0 < patch->is_new && oldlines)
die("new file %s depends on old contents", patch->new_name);