summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2016-08-10 12:33:17 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2016-08-10 12:33:17 -0700
commit24fbe004904f95ea07f22fea4e4c02a632149d73 (patch)
treef2caff74a5ef0d89df2c170ea5784847addbfd40
parentSync with maint (diff)
parentam: reset cached ident date for each patch (diff)
downloadtgif-24fbe004904f95ea07f22fea4e4c02a632149d73.tar.xz
Merge branch 'jk/reset-ident-time-per-commit'
Not-so-recent rewrite of "git am" that started making internal calls into the commit machinery had an unintended regression, in that no matter how many seconds it took to apply many patches, the resulting committer timestamp for the resulting commits were all the same. * jk/reset-ident-time-per-commit: am: reset cached ident date for each patch
-rw-r--r--builtin/am.c2
-rw-r--r--cache.h1
-rw-r--r--ident.c5
3 files changed, 8 insertions, 0 deletions
diff --git a/builtin/am.c b/builtin/am.c
index b77bf11ace..8aa9b5b936 100644
--- a/builtin/am.c
+++ b/builtin/am.c
@@ -1840,6 +1840,8 @@ static void am_run(struct am_state *state, int resume)
const char *mail = am_path(state, msgnum(state));
int apply_status;
+ reset_ident_date();
+
if (!file_exists(mail))
goto next;
diff --git a/cache.h b/cache.h
index 7c8051be0a..95a0bd397a 100644
--- a/cache.h
+++ b/cache.h
@@ -1270,6 +1270,7 @@ extern const char *ident_default_email(void);
extern const char *git_editor(void);
extern const char *git_pager(int stdout_is_tty);
extern int git_ident_config(const char *, const char *, void *);
+extern void reset_ident_date(void);
struct ident_split {
const char *name_begin;
diff --git a/ident.c b/ident.c
index 139c5289d0..e20a772dde 100644
--- a/ident.c
+++ b/ident.c
@@ -184,6 +184,11 @@ static const char *ident_default_date(void)
return git_default_date.buf;
}
+void reset_ident_date(void)
+{
+ strbuf_reset(&git_default_date);
+}
+
static int crud(unsigned char c)
{
return c <= 32 ||