Merge branch 'mv/commit-date'
* mv/commit-date: Document date formats accepted by parse_date() builtin-commit: add --date option
This commit is contained in:
26
Documentation/date-formats.txt
Normal file
26
Documentation/date-formats.txt
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
DATE FORMATS
|
||||||
|
------------
|
||||||
|
|
||||||
|
The GIT_AUTHOR_DATE, GIT_COMMITTER_DATE environment variables
|
||||||
|
ifdef::git-commit[]
|
||||||
|
and the `--date` option
|
||||||
|
endif::git-commit[]
|
||||||
|
support the following date formats:
|
||||||
|
|
||||||
|
Git internal format::
|
||||||
|
It is `<unix timestamp> <timezone offset>`, where `<unix
|
||||||
|
timestamp>` is the number of seconds since the UNIX epoch.
|
||||||
|
`<timezone offset>` is a positive or negative offset from UTC.
|
||||||
|
For example CET (which is 2 hours ahead UTC) is `+0200`.
|
||||||
|
|
||||||
|
RFC 2822::
|
||||||
|
The standard email format as described by RFC 2822, for example
|
||||||
|
`Thu, 07 Apr 2005 22:13:13 +0200`.
|
||||||
|
|
||||||
|
ISO 8601::
|
||||||
|
Time and date specified by the ISO 8601 standard, for example
|
||||||
|
`2005-04-07T22:13:13`. The parser accepts a space instead of the
|
||||||
|
`T` character as well.
|
||||||
|
+
|
||||||
|
NOTE: In addition, the date part is accepted in the following formats:
|
||||||
|
`YYYY.MM.DD`, `MM/DD/YYYY` and `DD.MM.YYYY`.
|
@ -73,6 +73,7 @@ A commit comment is read from stdin. If a changelog
|
|||||||
entry is not provided via "<" redirection, 'git-commit-tree' will just wait
|
entry is not provided via "<" redirection, 'git-commit-tree' will just wait
|
||||||
for one to be entered and terminated with ^D.
|
for one to be entered and terminated with ^D.
|
||||||
|
|
||||||
|
include::date-formats.txt[]
|
||||||
|
|
||||||
Diagnostics
|
Diagnostics
|
||||||
-----------
|
-----------
|
||||||
|
@ -11,7 +11,7 @@ SYNOPSIS
|
|||||||
'git commit' [-a | --interactive] [-s] [-v] [-u<mode>] [--amend] [--dry-run]
|
'git commit' [-a | --interactive] [-s] [-v] [-u<mode>] [--amend] [--dry-run]
|
||||||
[(-c | -C) <commit>] [-F <file> | -m <msg>] [--reset-author]
|
[(-c | -C) <commit>] [-F <file> | -m <msg>] [--reset-author]
|
||||||
[--allow-empty] [--no-verify] [-e] [--author=<author>]
|
[--allow-empty] [--no-verify] [-e] [--author=<author>]
|
||||||
[--cleanup=<mode>] [--] [[-i | -o ]<file>...]
|
[--date=<date>] [--cleanup=<mode>] [--] [[-i | -o ]<file>...]
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
@ -99,6 +99,9 @@ OPTIONS
|
|||||||
an existing commit that matches the given string and its author
|
an existing commit that matches the given string and its author
|
||||||
name is used.
|
name is used.
|
||||||
|
|
||||||
|
--date=<date>::
|
||||||
|
Override the author date used in the commit.
|
||||||
|
|
||||||
-m <msg>::
|
-m <msg>::
|
||||||
--message=<msg>::
|
--message=<msg>::
|
||||||
Use the given <msg> as the commit message.
|
Use the given <msg> as the commit message.
|
||||||
@ -231,6 +234,8 @@ specified.
|
|||||||
these files are also staged for the next commit on top
|
these files are also staged for the next commit on top
|
||||||
of what have been staged before.
|
of what have been staged before.
|
||||||
|
|
||||||
|
:git-commit: 1
|
||||||
|
include::date-formats.txt[]
|
||||||
|
|
||||||
EXAMPLES
|
EXAMPLES
|
||||||
--------
|
--------
|
||||||
|
@ -53,7 +53,7 @@ static char *edit_message, *use_message;
|
|||||||
static char *author_name, *author_email, *author_date;
|
static char *author_name, *author_email, *author_date;
|
||||||
static int all, edit_flag, also, interactive, only, amend, signoff;
|
static int all, edit_flag, also, interactive, only, amend, signoff;
|
||||||
static int quiet, verbose, no_verify, allow_empty, dry_run, renew_authorship;
|
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
|
* The default commit message cleanup mode will remove the lines
|
||||||
* beginning with # (shell comments) and leading and trailing
|
* beginning with # (shell comments) and leading and trailing
|
||||||
@ -98,6 +98,7 @@ static struct option builtin_commit_options[] = {
|
|||||||
OPT_GROUP("Commit message options"),
|
OPT_GROUP("Commit message options"),
|
||||||
OPT_FILENAME('F', "file", &logfile, "read log from file"),
|
OPT_FILENAME('F', "file", &logfile, "read log from file"),
|
||||||
OPT_STRING(0, "author", &force_author, "AUTHOR", "override author for commit"),
|
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_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', "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"),
|
OPT_STRING('C', "reuse-message", &use_message, "COMMIT", "reuse message from specified commit"),
|
||||||
@ -441,6 +442,9 @@ static void determine_author_info(void)
|
|||||||
email = xstrndup(lb + 2, rb - (lb + 2));
|
email = xstrndup(lb + 2, rb - (lb + 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (force_date)
|
||||||
|
date = force_date;
|
||||||
|
|
||||||
author_name = name;
|
author_name = name;
|
||||||
author_email = email;
|
author_email = email;
|
||||||
author_date = date;
|
author_date = date;
|
||||||
|
@ -211,6 +211,21 @@ test_expect_success 'amend commit to fix author' '
|
|||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
|
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)' '
|
test_expect_success 'sign off (1)' '
|
||||||
|
|
||||||
echo 1 >positive &&
|
echo 1 >positive &&
|
||||||
|
Reference in New Issue
Block a user