aboutsummaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorMartin von Zweigbergk <martinvonz@gmail.com>2012-08-28 23:15:54 -0700
committerJunio C Hamano <gitster@pobox.com>2012-08-30 12:26:50 -0700
commitca92e59e30b503ff8861b6cd4d431d38738a7ee8 (patch)
treed253aef4dc21bb77348d3deef3e7982e58454221 /t
parent0ce2e396ee9fb0fa07e8381b338e49859dbf03db (diff)
downloadgit-ca92e59e30b503ff8861b6cd4d431d38738a7ee8.tar.gz
git-ca92e59e30b503ff8861b6cd4d431d38738a7ee8.tar.xz
teach log --no-walk=unsorted, which avoids sorting
When 'git log' is passed the --no-walk option, no revision walk takes place, naturally. Perhaps somewhat surprisingly, however, the provided revisions still get sorted by commit date. So e.g 'git log --no-walk HEAD HEAD~1' and 'git log --no-walk HEAD~1 HEAD' give the same result (unless the two revisions share the commit date, in which case they will retain the order given on the command line). As the commit that introduced --no-walk (8e64006 (Teach revision machinery about --no-walk, 2007-07-24)) points out, the sorting is intentional, to allow things like git log --abbrev-commit --pretty=oneline --decorate --all --no-walk to show all refs in order by commit date. But there are also other cases where the sorting is not wanted, such as <command producing revisions in order> | git log --oneline --no-walk --stdin To accomodate both cases, leave the decision of whether or not to sort up to the caller, by allowing --no-walk={sorted,unsorted}, defaulting to 'sorted' for backward-compatibility reasons. Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rwxr-xr-xt/t4202-log.sh10
1 files changed, 10 insertions, 0 deletions
diff --git a/t/t4202-log.sh b/t/t4202-log.sh
index 71be59d44..bd8335580 100755
--- a/t/t4202-log.sh
+++ b/t/t4202-log.sh
@@ -178,11 +178,21 @@ test_expect_success 'git log --no-walk <commits> sorts by commit time' '
test_cmp expect actual
'
+test_expect_success 'git log --no-walk=sorted <commits> sorts by commit time' '
+ git log --no-walk=sorted --oneline 5d31159 804a787 394ef78 > actual &&
+ test_cmp expect actual
+'
+
cat > expect << EOF
5d31159 fourth
804a787 sixth
394ef78 fifth
EOF
+test_expect_success 'git log --no-walk=unsorted <commits> leaves list of commits as given' '
+ git log --no-walk=unsorted --oneline 5d31159 804a787 394ef78 > actual &&
+ test_cmp expect actual
+'
+
test_expect_success 'git show <commits> leaves list of commits as given' '
git show --oneline -s 5d31159 804a787 394ef78 > actual &&
test_cmp expect actual