Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2020-10-23 10:26:30 +0300
committerJunio C Hamano <gitster@pobox.com>2020-10-26 19:59:57 +0300
commit2020451c5bcc5289b8e6f25c7092d4fdb702257a (patch)
tree6bf7b3c23638f7b8581d79fd26a551b41899ab01 /sequencer.c
parent5f35edd9d7ebca17f205b338d340cc6ce214644a (diff)
am, sequencer: stop parsing our own committer ident
For the --committer-date-is-author-date option of git-am and git-rebase, we format the committer ident, then re-parse it to find the name and email, and then feed those back to fmt_ident(). We can simplify this by handling it all at the time of the fmt_ident() call. We pass in the appropriate getenv() results, and if they're not present, then our WANT_COMMITTER_IDENT flag tells fmt_ident() to fill in the appropriate value from the config. Which is exactly what git_committer_ident() was doing under the hood. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'sequencer.c')
-rw-r--r--sequencer.c28
1 files changed, 2 insertions, 26 deletions
diff --git a/sequencer.c b/sequencer.c
index 9dcd3db3ef..452c571d99 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -304,8 +304,6 @@ int sequencer_remove_state(struct replay_opts *opts)
}
}
- free(opts->committer_name);
- free(opts->committer_email);
free(opts->gpg_sign);
free(opts->strategy);
for (i = 0; i < opts->xopts_nr; i++)
@@ -1458,8 +1456,8 @@ static int try_to_commit(struct repository *r,
} else {
reset_ident_date();
}
- committer = fmt_ident(opts->committer_name,
- opts->committer_email,
+ committer = fmt_ident(getenv("GIT_COMMITTER_NAME"),
+ getenv("GIT_COMMITTER_EMAIL"),
WANT_COMMITTER_IDENT,
opts->ignore_date ? NULL : date.buf,
IDENT_STRICT);
@@ -4358,22 +4356,6 @@ static int commit_staged_changes(struct repository *r,
return 0;
}
-static int init_committer(struct replay_opts *opts)
-{
- struct ident_split id;
- const char *committer;
-
- committer = git_committer_info(IDENT_STRICT);
- if (split_ident_line(&id, committer, strlen(committer)) < 0)
- return error(_("invalid committer '%s'"), committer);
- opts->committer_name =
- xmemdupz(id.name_begin, id.name_end - id.name_begin);
- opts->committer_email =
- xmemdupz(id.mail_begin, id.mail_end - id.mail_begin);
-
- return 0;
-}
-
int sequencer_continue(struct repository *r, struct replay_opts *opts)
{
struct todo_list todo_list = TODO_LIST_INIT;
@@ -4385,9 +4367,6 @@ int sequencer_continue(struct repository *r, struct replay_opts *opts)
if (read_populate_opts(opts))
return -1;
if (is_rebase_i(opts)) {
- if (opts->committer_date_is_author_date && init_committer(opts))
- return -1;
-
if ((res = read_populate_todo(r, &todo_list, opts)))
goto release_todo_list;
@@ -5264,9 +5243,6 @@ int complete_action(struct repository *r, struct replay_opts *opts, unsigned fla
res = -1;
- if (opts->committer_date_is_author_date && init_committer(opts))
- goto cleanup;
-
if (checkout_onto(r, opts, onto_name, &oid, orig_head))
goto cleanup;