diff options
author | Junio C Hamano <gitster@pobox.com> | 2012-07-30 13:03:40 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-07-30 13:04:18 -0700 |
commit | 80ffb7570f86fb8b671048a374f3c7990c45a27f (patch) | |
tree | 0dcefafb4f8df01ccf1aaa3c345541b22d5dc1df | |
parent | e6dfbcf12b0e70897818cb36903de0625931a5c6 (diff) | |
parent | 44b85e89d70da5ee7fc688d4a9c021f6a419b363 (diff) | |
download | git-80ffb7570f86fb8b671048a374f3c7990c45a27f.tar.gz git-80ffb7570f86fb8b671048a374f3c7990c45a27f.tar.xz |
Merge branch 'jc/maint-filter-branch-epoch-date' into maint
In 1.7.9 era, we taught "git rebase" about the raw timestamp format
but we did not teach the same trick to "filter-branch", which rolled
a similar logic on its own.
* jc/maint-filter-branch-epoch-date:
t7003: add test to filter a branch with a commit at epoch
date.c: Fix off by one error in object-header date parsing
filter-branch: do not forget the '@' prefix to force git-timestamp
-rw-r--r-- | date.c | 2 | ||||
-rwxr-xr-x | git-filter-branch.sh | 2 | ||||
-rwxr-xr-x | t/t7003-filter-branch.sh | 3 | ||||
-rw-r--r-- | t/test-lib-functions.sh | 13 |
4 files changed, 15 insertions, 5 deletions
@@ -624,7 +624,7 @@ static int match_object_header_date(const char *date, unsigned long *timestamp, unsigned long stamp; int ofs; - if (*date < '0' || '9' <= *date) + if (*date < '0' || '9' < *date) return -1; stamp = strtoul(date, &end, 10); if (*end != ' ' || stamp == ULONG_MAX || (end[1] != '+' && end[1] != '-')) diff --git a/git-filter-branch.sh b/git-filter-branch.sh index add2c0247..178e45305 100755 --- a/git-filter-branch.sh +++ b/git-filter-branch.sh @@ -84,7 +84,7 @@ set_ident () { s/.*/GIT_'$uid'_EMAIL='\''&'\''; export GIT_'$uid'_EMAIL/p g - s/^'$lid' [^<]* <[^>]*> \(.*\)$/\1/ + s/^'$lid' [^<]* <[^>]*> \(.*\)$/@\1/ s/'\''/'\''\'\'\''/g s/.*/GIT_'$uid'_DATE='\''&'\''; export GIT_'$uid'_DATE/p diff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh index e0227730d..4d13e10de 100755 --- a/t/t7003-filter-branch.sh +++ b/t/t7003-filter-branch.sh @@ -5,7 +5,8 @@ test_description='git filter-branch' test_expect_success 'setup' ' test_commit A && - test_commit B && + GIT_COMMITTER_DATE="@0 +0000" GIT_AUTHOR_DATE="@0 +0000" && + test_commit --notick B && git checkout -b branch B && test_commit D && mkdir dir && diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh index 16397691d..80daaca78 100644 --- a/t/test-lib-functions.sh +++ b/t/test-lib-functions.sh @@ -143,10 +143,19 @@ test_pause () { # Both <file> and <contents> default to <message>. test_commit () { - file=${2:-"$1.t"} + notick= && + if test "z$1" = "z--notick" + then + notick=yes + shift + fi && + file=${2:-"$1.t"} && echo "${3-$1}" > "$file" && git add "$file" && - test_tick && + if test -z "$notick" + then + test_tick + fi && git commit -m "$1" && git tag "$1" } |