Skip to content

Commit

Permalink
rerere: further de-dent do_plain_rerere()
Browse files Browse the repository at this point in the history
It's just easier to follow this way.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Jul 24, 2015
1 parent 8e7768b commit c7a25d3
Showing 1 changed file with 33 additions and 32 deletions.
65 changes: 33 additions & 32 deletions rerere.c
Original file line number Diff line number Diff line change
Expand Up @@ -682,42 +682,43 @@ static int do_plain_rerere(struct string_list *rr, int fd)
* initial run would catch all and register their preimages.
*/
for (i = 0; i < conflict.nr; i++) {
unsigned char sha1[20];
char *hex;
int ret;
const char *path = conflict.items[i].string;
if (!string_list_has_string(rr, path)) {
unsigned char sha1[20];
char *hex;
int ret;

/*
* Ask handle_file() to scan and assign a
* conflict ID. No need to write anything out
* yet.
*/
ret = handle_file(path, sha1, NULL);
if (ret < 1)
continue;
hex = xstrdup(sha1_to_hex(sha1));
string_list_insert(rr, path)->util = hex;
if (string_list_has_string(rr, path))
continue;

/*
* If the directory does not exist, create
* it. mkdir_in_gitdir() will fail with
* EEXIST if there already is one.
*
* NEEDSWORK: make sure "gc" does not remove
* preimage without removing the directory.
*/
if (mkdir_in_gitdir(git_path("rr-cache/%s", hex)))
continue;
/*
* Ask handle_file() to scan and assign a
* conflict ID. No need to write anything out
* yet.
*/
ret = handle_file(path, sha1, NULL);
if (ret < 1)
continue;
hex = xstrdup(sha1_to_hex(sha1));
string_list_insert(rr, path)->util = hex;

/*
* We are the first to encounter this
* conflict. Ask handle_file() to write the
* normalized contents to the "preimage" file.
*/
handle_file(path, NULL, rerere_path(hex, "preimage"));
fprintf(stderr, "Recorded preimage for '%s'\n", path);
}
/*
* If the directory does not exist, create
* it. mkdir_in_gitdir() will fail with
* EEXIST if there already is one.
*
* NEEDSWORK: make sure "gc" does not remove
* preimage without removing the directory.
*/
if (mkdir_in_gitdir(git_path("rr-cache/%s", hex)))
continue;

/*
* We are the first to encounter this
* conflict. Ask handle_file() to write the
* normalized contents to the "preimage" file.
*/
handle_file(path, NULL, rerere_path(hex, "preimage"));
fprintf(stderr, "Recorded preimage for '%s'\n", path);
}

for (i = 0; i < rr->nr; i++)
Expand Down

0 comments on commit c7a25d3

Please sign in to comment.