Skip to content

Commit

Permalink
builtin-am: check for valid committer ident
Browse files Browse the repository at this point in the history
When commit_tree() is called, if the user does not have an explicit
committer ident configured, it will attempt to construct a default
committer ident based on the user's and system's info (e.g. gecos field,
hostname etc.) However, if a default committer ident is unable to be
constructed, commit_tree() will die(), but at this point of git-am's
execution, there will already be changes made to the index and work
tree.

This can be confusing to new users, and as such since d64e6b0 (Keep
Porcelainish from failing by broken ident after making changes.,
2006-02-18) git-am.sh will check to see if the committer ident has been
configured, or a default one can be constructed, before even starting to
apply patches.

Re-implement this in builtin/am.c.

Signed-off-by: Paul Tan <pyokagan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Paul Tan authored and Junio C Hamano committed Aug 5, 2015
1 parent c2676cd commit 5e4f9cf
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions builtin/am.c
Original file line number Diff line number Diff line change
Expand Up @@ -2246,6 +2246,9 @@ int cmd_am(int argc, const char **argv, const char *prefix)
fprintf_ln(stderr, _("The -b/--binary option has been a no-op for long time, and\n"
"it will be removed. Please do not use it anymore."));

/* Ensure a valid committer ident can be constructed */
git_committer_info(IDENT_STRICT);

if (read_index_preload(&the_index, NULL) < 0)
die(_("failed to read the index"));

Expand Down

0 comments on commit 5e4f9cf

Please sign in to comment.