threads / patch / 6217

patchrerere: Fix removal of already resolved path.

Subject: [PATCH] rerere: Fix removal of already resolved path.

## tl;dr

2 messages between Jan 4, 2007 and Jan 4, 2007. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Junio C Hamano· Jan 4, 2007, 08:09 UTC · lore

There was an obvious thinko in memmove() to remove an entry that was resolved from the in-core data structure.

Signed-off-by: Junio C Hamano <junkio@cox.net>
---
 * If you were seeing mysterious "Cannot open" messages after
   "git merge", "git rebase", and "git am" runs, this should fix
   them.
 builtin-rerere.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)
Show changes to builtin-rerere.c +3 −4
diff --git a/builtin-rerere.c b/builtin-rerere.c
index 7442498..079c0bd 100644
--- a/builtin-rerere.c
+++ b/builtin-rerere.c
@@ -350,11 +350,10 @@ static int do_plain_rerere(struct path_list *rr, int fd)
 		fprintf(stderr, "Recorded resolution for '%s'.\n", path);
 		copy_file(path, rr_path(name, "postimage"));
 tail_optimization:
-		if (i < rr->nr - 1) {
+		if (i < rr->nr - 1)
 			memmove(rr->items + i,
-					rr->items + i + 1,
-					rr->nr - i - 1);
-		}
+				rr->items + i + 1,
+				sizeof(rr->items[0]) * (rr->nr - i - 1));
 		rr->nr--;
 		i--;
 	}
Johannes Schindelin· Jan 4, 2007, 09:03 UTC · re: Junio C Hamano · lore

Re: [PATCH] rerere: Fix removal of already resolved path.

Hi,
On Thu, 4 Jan 2007, Junio C Hamano wrote:
> There was an obvious thinko in memmove() to remove an entry that
> was resolved from the in-core data structure.
I keep making the same errors, don't I?

Sorry, Dscho

← back to recent threads