summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: b809d9c)
raw | patch | inline | side by side (parent: b809d9c)
author | Miklos Vajna <vmiklos@frugalware.org> | |
Wed, 2 Dec 2009 22:16:18 +0000 (23:16 +0100) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Thu, 3 Dec 2009 20:41:22 +0000 (12:41 -0800) |
This is like --author: allow a user to specify a given date without
using the GIT_AUTHOR_DATE environment variable.
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
using the GIT_AUTHOR_DATE environment variable.
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-commit.txt | patch | blob | history | |
builtin-commit.c | patch | blob | history | |
t/t7501-commit.sh | patch | blob | history |
index d227cec9ba566caa098c36e8c91b19a8a27fcae5..c37c21e4e3e5ced40fbbd7675bd41f8da7454de5 100644 (file)
'git commit' [-a | --interactive] [-s] [-v] [-u<mode>] [--amend] [--dry-run]
[(-c | -C) <commit>] [-F <file> | -m <msg>] [--reset-author]
[--allow-empty] [--no-verify] [-e] [--author=<author>]
- [--cleanup=<mode>] [--] [[-i | -o ]<file>...]
+ [--date=<date>] [--cleanup=<mode>] [--] [[-i | -o ]<file>...]
DESCRIPTION
-----------
an existing commit that matches the given string and its author
name is used.
+--date=<date>::
+ Override the author date used in the commit.
+
-m <msg>::
--message=<msg>::
Use the given <msg> as the commit message.
diff --git a/builtin-commit.c b/builtin-commit.c
index e93a647c59f1f52a4b0eb92b6c84fd9cec0aad6a..9a1264aaf879ed87816dc02b0008651a458e63e1 100644 (file)
--- a/builtin-commit.c
+++ b/builtin-commit.c
static char *author_name, *author_email, *author_date;
static int all, edit_flag, also, interactive, only, amend, signoff;
static int quiet, verbose, no_verify, allow_empty, dry_run, renew_authorship;
-static char *untracked_files_arg;
+static char *untracked_files_arg, *force_date;
/*
* The default commit message cleanup mode will remove the lines
* beginning with # (shell comments) and leading and trailing
OPT_FILENAME('F', "file", &logfile, "read log from file"),
OPT_STRING(0, "author", &force_author, "AUTHOR", "override author for commit"),
+ OPT_STRING(0, "date", &force_date, "DATE", "override date for commit"),
OPT_CALLBACK('m', "message", &message, "MESSAGE", "specify commit message", opt_parse_m),
OPT_STRING('c', "reedit-message", &edit_message, "COMMIT", "reuse and edit message from specified commit"),
OPT_STRING('C', "reuse-message", &use_message, "COMMIT", "reuse message from specified commit"),
email = xstrndup(lb + 2, rb - (lb + 2));
}
+ if (force_date)
+ date = force_date;
+
author_name = name;
author_email = email;
author_date = date;
diff --git a/t/t7501-commit.sh b/t/t7501-commit.sh
index a603f6d21a61df197256ea91bfb38c1f4e45c5e8..a5297012410271f64398124da6e4c7dd8eec3154 100755 (executable)
--- a/t/t7501-commit.sh
+++ b/t/t7501-commit.sh
'
+test_expect_success 'amend commit to fix date' '
+
+ test_tick &&
+ newtick=$GIT_AUTHOR_DATE &&
+ git reset --hard &&
+ git cat-file -p HEAD |
+ sed -e "s/author.*/author $author $newtick/" \
+ -e "s/^\(committer.*> \).*$/\1$GIT_COMMITTER_DATE/" > \
+ expected &&
+ git commit --amend --date="$newtick" &&
+ git cat-file -p HEAD > current &&
+ test_cmp expected current
+
+'
+
test_expect_success 'sign off (1)' '
echo 1 >positive &&