All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robert Fitzsimons <robfitz@273k.net>
To: git@vger.kernel.org
Cc: Robert Fitzsimons <robfitz@273k.net>
Subject: [PATCH 2/9] Fix detection of files with only one line in git-apply.
Date: Sun, 28 Aug 2005 15:24:27 +0000	[thread overview]
Message-ID: <1125242667404-git-send-email-robfitz@273k.net> (raw)
In-Reply-To: <11252426672473-git-send-email-robfitz@273k.net>

A patch which added one line to an empty file or removed the only line
from a one line file would be incorrectly detected as an invalid new
or delete patch.  Added a new test case.

Signed-off-by: Robert Fitzsimons <robfitz@273k.net>

---

 apply.c                  |    4 ++--
 t/t4103-apply-oneline.sh |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 48 insertions(+), 2 deletions(-)
 create mode 100644 t/t4103-apply-oneline.sh

babd40afef54b06775b11a877b347685edbedcd2
diff --git a/apply.c b/apply.c
--- a/apply.c
+++ b/apply.c
@@ -638,9 +638,9 @@ static int parse_fragment(char *line, un
 			patch->new_name = NULL;
 	}
 
-	if (patch->is_new != !oldlines)
+	if (patch->is_new && (patch->is_new != !oldlines))
 		return error("new file depends on old contents");
-	if (patch->is_delete != !newlines) {
+	if (patch->is_delete && (patch->is_delete != !newlines)) {
 		if (newlines)
 			return error("deleted file still has contents");
 		fprintf(stderr, "** warning: file %s becomes empty but is not deleted\n", patch->new_name);
diff --git a/t/t4103-apply-oneline.sh b/t/t4103-apply-oneline.sh
new file mode 100644
--- /dev/null
+++ b/t/t4103-apply-oneline.sh
@@ -0,0 +1,46 @@
+#!/bin/sh
+#
+# Copyright (c) 2005 Junio C Hamano
+# Copyright (c) 2005 Robert Fitzsimons
+#
+
+test_description='git-apply files with one line.
+
+'
+. ./test-lib.sh
+
+# setup
+
+cat > patch1.patch <<\EOF
+diff --git a/main.c b/main.c
+new file mode 100644
+--- /dev/null
++++ b/main.c
+@@ -0,0 +0,0 @@
+EOF
+cat > patch2.patch <<\EOF
+diff --git a/main.c b/main.c
+--- a/main.c
++++ b/main.c
+@@ -0,0 +1,1 @@
++#include <stdio.h>
+EOF
+cat > patch3.patch <<\EOF
+diff --git a/main.c b/main.c
+--- a/main.c
++++ b/main.c
+@@ -1,1 +0,0 @@
+-#include <stdio.h>
+EOF
+
+test_expect_success "S = patch1 (new file with no lines)" \
+    'git-apply patch1.patch'
+
+test_expect_success "S = patch2 (add one line)" \
+    'git-apply patch2.patch'
+
+test_expect_success "S = patch3 (delete one line)" \
+    'git-apply patch3.patch'
+
+test_done
+

  reply	other threads:[~2005-08-28 15:22 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-28 15:24 [PATCH 1/9] Fix git patch header processing in git-apply Robert Fitzsimons
2005-08-28 15:24 ` Robert Fitzsimons [this message]
2005-08-28 15:24   ` [PATCH 3/9] Fix processing of a patch file which modifies the same file " Robert Fitzsimons
2005-08-28 15:24     ` [PATCH 4/9] Fix the procssing of multiple patch files with --check " Robert Fitzsimons
2005-08-28 15:24       ` [PATCH 5/9] New option --force-delete for git-apply Robert Fitzsimons
2005-08-28 15:24         ` [PATCH 6/9] New option --ignore-whitespace " Robert Fitzsimons
2005-08-28 15:24           ` [PATCH 7/9] New option --ignore-applied " Robert Fitzsimons
2005-08-28 15:25             ` [PATCH 8/9] New git-apply test cases for patches with mulitple fragments Robert Fitzsimons
2005-08-28 15:25               ` [PATCH 9/9] New git-apply test cases for scanning forwards and backwards Robert Fitzsimons
2005-08-28 16:58           ` [PATCH 6/9] New option --ignore-whitespace for git-apply Linus Torvalds
2005-08-28 20:49             ` A Large Angry SCM
2005-08-28 21:06           ` Junio C Hamano
2005-08-28 21:06         ` [PATCH 5/9] New option --force-delete " Junio C Hamano
2005-08-28 21:06     ` [PATCH 3/9] Fix processing of a patch file which modifies the same file in git-apply Junio C Hamano
2005-08-28 16:55   ` [PATCH 2/9] Fix detection of files with only one line " Linus Torvalds
2005-08-28 23:39 ` [PATCH 1/9] Fix git patch header processing " Junio C Hamano
2005-08-29 23:58   ` Robert Fitzsimons
2005-08-30  0:47     ` Linus Torvalds
2005-08-30  1:09       ` Junio C Hamano
2005-08-30  1:24         ` Linus Torvalds
2005-08-30  1:34           ` Junio C Hamano
2005-08-30  2:00             ` Linus Torvalds
2005-08-30  7:36               ` Martin Langhoff

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1125242667404-git-send-email-robfitz@273k.net \
    --to=robfitz@273k.net \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.