This patch series contains several small code cleanups for merge-recursive. Changes since v2: * Now built on master (the topics this depended on have graduated); merges cleanly with next and pu. * Patch #2 has a few additional argument alignment fixes; some in code added by topics that have since graduated, and a couple that were overlooked previously. * Patch #3 is entirely new. * Re-wrapped the commit message of the final patch. (range-diff below) Elijah Newren (6): merge-recursive: fix miscellaneous grammar error in comment merge-recursive: fix numerous argument alignment issues merge-recursive: align labels with their respective code blocks merge-recursive: clarify the rename_dir/RENAME_DIR meaning merge-recursive: rename conflict_rename_*() family of functions merge-recursive: add pointer about unduly complex looking code merge-recursive.c | 186 ++++++++++++++++++++++++++-------------------- 1 file changed, 104 insertions(+), 82 deletions(-) range-diff against v2: 1: 4222f174de = 1: 4222f174de merge-recursive: fix miscellaneous grammar error in comment 2: 4ebf93822d ! 2: 284a5fee3d merge-recursive: fix numerous argument alignment issues @@ -33,6 +33,76 @@ { struct path_hashmap_entry *entry; int baselen = base->len; +@@ + */ + if (would_lose_untracked(path)) + return err(o, _("refusing to lose untracked file at '%s'"), +- path); ++ path); + + /* Successful unlink is good.. */ + if (!unlink(path)) +@@ + unlink(path); + if (symlink(lnk, path)) + ret = err(o, _("failed to symlink '%s': %s"), +- path, strerror(errno)); ++ path, strerror(errno)); + free(lnk); + } else + ret = err(o, +@@ + } + + static int find_first_merges(struct object_array *result, const char *path, +- struct commit *a, struct commit *b) ++ struct commit *a, struct commit *b) + { + int i, j; + struct object_array merges = OBJECT_ARRAY_INIT; +@@ + + /* get all revisions that merge commit a */ + xsnprintf(merged_revision, sizeof(merged_revision), "^%s", +- oid_to_hex(&a->object.oid)); ++ oid_to_hex(&a->object.oid)); + init_revisions(&revs, NULL); + rev_opts.submodule = path; + /* FIXME: can't handle linked worktrees in submodules yet */ +@@ + output(o, 2, _("Found a possible merge resolution for the submodule:\n")); + print_commit((struct commit *) merges.objects[0].item); + output(o, 2, _( +- "If this is correct simply add it to the index " +- "for example\n" +- "by using:\n\n" +- " git update-index --cacheinfo 160000 %s \"%s\"\n\n" +- "which will accept this suggestion.\n"), +- oid_to_hex(&merges.objects[0].item->oid), path); ++ "If this is correct simply add it to the index " ++ "for example\n" ++ "by using:\n\n" ++ " git update-index --cacheinfo 160000 %s \"%s\"\n\n" ++ "which will accept this suggestion.\n"), ++ oid_to_hex(&merges.objects[0].item->oid), path); + break; + + default: +@@ + result->clean = (merge_status == 0); + } else if (S_ISGITLINK(a->mode)) { + result->clean = merge_submodule(o, &result->oid, +- one->path, +- &one->oid, +- &a->oid, +- &b->oid); ++ one->path, ++ &one->oid, ++ &a->oid, ++ &b->oid); + } else if (S_ISLNK(a->mode)) { + switch (o->recursive_variant) { + case MERGE_RECURSIVE_NORMAL: @@ } --: ---------- > 3: 6bae2a267f merge-recursive: align labels with their respective code blocks 3: 585759f07a = 4: aecf1267d8 merge-recursive: clarify the rename_dir/RENAME_DIR meaning 4: 3cfb8b01b8 = 5: f7637bef12 merge-recursive: rename conflict_rename_*() family of functions 5: d2a24f5b38 ! 6: ffeb3ef585 merge-recursive: add pointer about unduly complex looking code @@ -3,10 +3,11 @@ merge-recursive: add pointer about unduly complex looking code handle_change_delete() has a block of code displaying one of four nearly - identical messages. Each contains about half a dozen variable interpolations, - which use nearly identical variables as well. Someone trying to parse this - may be slowed down trying to parse the differences and why they are here; help - them out by adding a comment explaining the differences. + identical messages. Each contains about half a dozen variable + interpolations, which use nearly identical variables as well. Someone + trying to parse this may be slowed down trying to parse the differences + and why they are here; help them out by adding a comment explaining the + differences. Further, point out that this code structure isn't collapsed into something more concise and readable for the programmer, because we want to keep full -- 2.18.0.rc1.6.gffeb3ef585