diff options
author | Matthieu Moy <Matthieu.Moy@imag.fr> | 2010-08-11 10:38:07 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-08-11 10:36:06 -0700 |
commit | e6c111b4c092c0dd24c541b9721f5bc04641dcb0 (patch) | |
tree | 55fd6f65b2479bba7d15dece5fad53a451b6369d /merge-recursive.c | |
parent | 08402b0409bc501deb97cf4388a78ee9f87092c6 (diff) | |
download | git-e6c111b4c092c0dd24c541b9721f5bc04641dcb0.tar.gz |
unpack_trees: group error messages by type
When an error is encountered, it calls add_rejected_file() which either
- directly displays the error message and stops if in plumbing mode
(i.e. if show_all_errors is not initialized at 1)
- or stores it so that it will be displayed at the end with display_error_msgs(),
Storing the files by error type permits to have a list of files for
which there is the same error instead of having a serie of almost
identical errors.
As each bind_overlap error combines a file and an old file, a list cannot be
done, therefore, theses errors are not stored but directly displayed.
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'merge-recursive.c')
-rw-r--r-- | merge-recursive.c | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/merge-recursive.c b/merge-recursive.c index 697d948e85..10392d9661 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -1184,29 +1184,42 @@ void set_porcelain_error_msgs(const char **msgs, const char *cmd) char *tmp; const char *cmd2 = strcmp(cmd, "checkout") ? cmd : "switch branches"; if (advice_commit_before_merge) - msg = "Your local changes to '%%s' would be overwritten by %s. Aborting.\n" + msg = "Your local changes to the following files would be overwritten by %s:\n%%s" "Please, commit your changes or stash them before you can %s."; else - msg = "Your local changes to '%%s' would be overwritten by %s. Aborting."; - tmp = xmalloc(strlen(msg) + strlen(cmd) + strlen(cmd2) - 3); + msg = "Your local changes to the following files would be overwritten by %s:\n%%s"; + tmp = xmalloc(strlen(msg) + strlen(cmd) + strlen(cmd2) - 2); sprintf(tmp, msg, cmd, cmd2); msgs[ERROR_WOULD_OVERWRITE] = tmp; msgs[ERROR_NOT_UPTODATE_FILE] = tmp; msgs[ERROR_NOT_UPTODATE_DIR] = - "Updating '%s' would lose untracked files in it. Aborting."; + "Updating the following directories would lose untracked files in it:\n%s"; if (advice_commit_before_merge) - msg = "Untracked working tree file '%%s' would be %s by %s. Aborting" + msg = "The following untracked working tree files would be %s by %s:\n%%s" "Please move or remove them before you can %s."; else - msg = "Untracked working tree file '%%s' would be %s by %s. Aborting"; + msg = "The following untracked working tree files would be %s by %s:\n%%s"; tmp = xmalloc(strlen(msg) + strlen(cmd) + strlen("removed") + strlen(cmd2) - 4); sprintf(tmp, msg, "removed", cmd, cmd2); msgs[ERROR_WOULD_LOSE_UNTRACKED_REMOVED] = tmp; tmp = xmalloc(strlen(msg) + strlen(cmd) + strlen("overwritten") + strlen(cmd2) - 4); sprintf(tmp, msg, "overwritten", cmd, cmd2); msgs[ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN] = tmp; + + /* + * Special case: ERROR_BIND_OVERLAP refers to a pair of paths, we + * cannot easily display it as a list. + */ + msgs[ERROR_BIND_OVERLAP] = "Entry '%s' overlaps with '%s'. Cannot bind."; + + msgs[ERROR_SPARSE_NOT_UPTODATE_FILE] = + "Cannot update sparse checkout: the following entries are not up-to-date:\n%s"; + msgs[ERROR_WOULD_LOSE_ORPHANED_OVERWRITTEN] = + "The following Working tree files would be overwritten by sparse checkout update:\n%s"; + msgs[ERROR_WOULD_LOSE_ORPHANED_REMOVED] = + "The following Working tree files would be removed by sparse checkout update:\n%s"; } int merge_trees(struct merge_options *o, |