summaryrefslogtreecommitdiff
path: root/t/t1505-rev-parse-last.sh
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-01-28 15:00:27 -0800
committerJunio C Hamano <gitster@pobox.com>2009-01-28 15:00:27 -0800
commit8712b3cdb0495f5a56b91cd67e2697412447a886 (patch)
tree98dafb9b4f38617d73ef59c9085e01ee727af729 /t/t1505-rev-parse-last.sh
parentcd956c73a2cce6613a6cd19df6ccb9ff1b08f79a (diff)
parent73ff1a131b340633b2ec2a0e68490de721448f56 (diff)
downloadgit-8712b3cdb0495f5a56b91cd67e2697412447a886.tar.gz
Merge branch 'tr/previous-branch'
* tr/previous-branch: t1505: remove debugging cruft Simplify parsing branch switching events in reflog Introduce for_each_recent_reflog_ent(). interpret_nth_last_branch(): plug small memleak Fix reflog parsing for a malformed branch switching entry Fix parsing of @{-1}@{1} interpret_nth_last_branch(): avoid traversing the reflog twice checkout: implement "-" abbreviation, add docs and tests sha1_name: support @{-N} syntax in get_sha1() sha1_name: tweak @{-N} lookup checkout: implement "@{-N}" shortcut name for N-th last branch Conflicts: sha1_name.c
Diffstat (limited to 't/t1505-rev-parse-last.sh')
-rwxr-xr-xt/t1505-rev-parse-last.sh69
1 files changed, 69 insertions, 0 deletions
diff --git a/t/t1505-rev-parse-last.sh b/t/t1505-rev-parse-last.sh
new file mode 100755
index 0000000000..d709ecf8df
--- /dev/null
+++ b/t/t1505-rev-parse-last.sh
@@ -0,0 +1,69 @@
+#!/bin/sh
+
+test_description='test @{-N} syntax'
+
+. ./test-lib.sh
+
+
+make_commit () {
+ echo "$1" > "$1" &&
+ git add "$1" &&
+ git commit -m "$1"
+}
+
+
+test_expect_success 'setup' '
+
+ make_commit 1 &&
+ git branch side &&
+ make_commit 2 &&
+ make_commit 3 &&
+ git checkout side &&
+ make_commit 4 &&
+ git merge master &&
+ git checkout master
+
+'
+
+# 1 -- 2 -- 3 master
+# \ \
+# \ \
+# --- 4 --- 5 side
+#
+# and 'side' should be the last branch
+
+test_rev_equivalent () {
+
+ git rev-parse "$1" > expect &&
+ git rev-parse "$2" > output &&
+ test_cmp expect output
+
+}
+
+test_expect_success '@{-1} works' '
+ test_rev_equivalent side @{-1}
+'
+
+test_expect_success '@{-1}~2 works' '
+ test_rev_equivalent side~2 @{-1}~2
+'
+
+test_expect_success '@{-1}^2 works' '
+ test_rev_equivalent side^2 @{-1}^2
+'
+
+test_expect_success '@{-1}@{1} works' '
+ test_rev_equivalent side@{1} @{-1}@{1}
+'
+
+test_expect_success '@{-2} works' '
+ test_rev_equivalent master @{-2}
+'
+
+test_expect_success '@{-3} fails' '
+ test_must_fail git rev-parse @{-3}
+'
+
+test_done
+
+