Re: [PATCH] rerere should not repeat the earlier hunks in later ones
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Apr 4, 2007, 15:51 UTC
- Message-ID
- <Pine.LNX.4.63.0704041746580.4045@wbgn013.biozentrum.uni-wuerzburg.de>
- In-Reply-To
- <7v1wj1ujf5.fsf@assigned-by-dhcp.cox.net>
Hi,
On Tue, 3 Apr 2007, Junio C Hamano wrote:
> When a file has more then one conflicting hunks, it repeated the > contents of previous hunks in output for later ones.
/me wonders why our spell-checker has not replied yet: isn't it "than" instead of "then"?
Show 9 quoted lines
> @@ -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)
Ouch. Well spotted, thanks.
I wonder if we should also do
diff --git a/builtin-rerere.c b/builtin-rerere.c index b8867ab..4eae27b 100644 --- a/builtin-rerere.c +++ b/builtin-rerere.c @@ -112,7 +112,8 @@ static int handle_file(const char *path, else if (!prefixcmp(buf, ">>>>>>> ")) { hunk_no++; hunk = 0; - if (memcmp(one->ptr, two->ptr, one->nr < two->nr ? + if (one->nr > two->nr || memcmp(one->ptr, two->ptr, + one->nr < two->nr ? one->nr : two->nr) > 0) { struct buffer *swap = one; one = two; in case that one conflicting region is prefix of the other one. Ciao, Dscho