From eb3359663d62f35999330797455dbe738bd5ed99 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Tue, 3 Apr 2007 16:28:46 -0700 Subject: [PATCH 1/2] rerere should not repeat the earlier hunks in later ones When a file has more then one conflicting hunks, it repeated the contents of previous hunks in output for later ones. Signed-off-by: Junio C Hamano --- builtin-rerere.c | 9 +++++++++ t/t4200-rerere.sh | 21 +++++++++++++++++---- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/builtin-rerere.c b/builtin-rerere.c index 58c5fed91d..004eda2acd 100644 --- a/builtin-rerere.c +++ b/builtin-rerere.c @@ -78,6 +78,13 @@ static void append_line(struct buffer *buffer, const char *line) buffer->nr += len; } +static void clear_buffer(struct buffer *buffer) +{ + free(buffer->ptr); + buffer->ptr = NULL; + buffer->nr = buffer->alloc = 0; +} + static int handle_file(const char *path, unsigned char *sha1, const char *output) { @@ -131,6 +138,8 @@ static int handle_file(const char *path, SHA1_Update(&ctx, two->ptr, two->nr); SHA1_Update(&ctx, "\0", 1); } + clear_buffer(one); + clear_buffer(two); } else if (hunk == 1) append_line(one, buf); else if (hunk == 2) diff --git a/t/t4200-rerere.sh b/t/t4200-rerere.sh index c571a1bd74..69b8d26cd1 100755 --- a/t/t4200-rerere.sh +++ b/t/t4200-rerere.sh @@ -34,7 +34,8 @@ EOF git commit -q -a -m first git checkout -b second master -git show first:a1 | sed 's/To die, t/To die! T/' > a1 +git show first:a1 | +sed -e 's/To die, t/To die! T/' -e 's/life;$/life./' > a1 git commit -q -a -m second # activate rerere @@ -42,19 +43,26 @@ mkdir .git/rr-cache test_expect_failure 'conflicting merge' 'git pull . first' -sha1=4f58849a60b4f969a2848966b6d02893b783e8fb +sha1=$(sed -e 's/\t.*//' .git/rr-cache/MERGE_RR) rr=.git/rr-cache/$sha1 test_expect_success 'recorded preimage' "grep ======= $rr/preimage" test_expect_success 'no postimage or thisimage yet' \ "test ! -f $rr/postimage -a ! -f $rr/thisimage" +test_expect_success 'preimage have right number of lines' ' + + cnt=$(sed -ne "/^<<<<<<>>>>>>/p" $rr/preimage | wc -l) && + test "$cnt" = 10 + +' + git show first:a1 > a1 cat > expect << EOF --- a/a1 +++ b/a1 -@@ -6,11 +6,7 @@ +@@ -6,17 +6,9 @@ The heart-ache and the thousand natural shocks That flesh is heir to, 'tis a consummation Devoutly to be wish'd. @@ -66,8 +74,13 @@ cat > expect << EOF To sleep: perchance to dream: ay, there's the rub; For in that sleep of death what dreams may come When we have shuffled off this mortal coil, + Must give us pause: there's the respect +-<<<<<<< +-That makes calamity of so long life. +-======= + That makes calamity of so long life; +->>>>>>> EOF - git rerere diff > out test_expect_success 'rerere diff' 'diff -u expect out' From 9694ec4533b30c1299e9ce7742c65c78b4fa3c5d Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Tue, 3 Apr 2007 11:31:21 -0700 Subject: [PATCH 2/2] GIT 1.5.0.7 Not that this release really matters, as we will be doing 1.5.1 tomorrow. This commit is to tie the loose ends and merge all of "maint" branch into "master" in preparation. Signed-off-by: Junio C Hamano --- Documentation/RelNotes-1.5.0.7.txt | 18 ++++++++++++++++++ GIT-VERSION-GEN | 2 +- RelNotes | 2 +- 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 Documentation/RelNotes-1.5.0.7.txt diff --git a/Documentation/RelNotes-1.5.0.7.txt b/Documentation/RelNotes-1.5.0.7.txt new file mode 100644 index 0000000000..670ad32b85 --- /dev/null +++ b/Documentation/RelNotes-1.5.0.7.txt @@ -0,0 +1,18 @@ +GIT v1.5.0.7 Release Notes +========================== + +Fixes since v1.5.0.6 +-------------------- + +* Bugfixes + + - git-upload-pack failed to close unused pipe ends, resulting + in many zombies to hang around. + + - git-rerere was recording the contents of earlier hunks + duplicated in later hunks. This prevented resolving the same + conflict when performing the same merge the other way around. + +* Documentation + + - a few documentation fixes from Debian package maintainer. diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index 6abd4cfc98..7213309483 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -1,7 +1,7 @@ #!/bin/sh GVF=GIT-VERSION-FILE -DEF_VER=v1.5.0.6.GIT +DEF_VER=v1.5.0.7.GIT LF=' ' diff --git a/RelNotes b/RelNotes index 4e145f3021..1126dfef4f 120000 --- a/RelNotes +++ b/RelNotes @@ -1 +1 @@ -Documentation/RelNotes-1.5.0.6.txt \ No newline at end of file +Documentation/RelNotes-1.5.0.7.txt \ No newline at end of file