All the tests so far check that @{N} is the same as HEAD@{N} (for
positive N).  However, this is not always the case: write a couple of
tests for this.

Signed-off-by: Ramkumar Ramachandra <>
 t/ | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/t/ b/t/
index eaa5337..29ffd73 100755
--- a/t/
+++ b/t/
@@ -59,4 +59,18 @@ nonsense "@{1}@{u}"
 nonsense "HEAD@{-1}"
 nonsense "@{-1}@{-1}"
+# Document differences between @{N} and HEAD@{N}.  The former resolves
+# HEAD to a branch and looks up the logs for that branch, while the
+# latter looks for the logs of HEAD.
+check "HEAD@{3}" commit old-two
+nonsense "@{3}"
+test_expect_success 'switch to old-branch' '
+       git checkout old-branch
+check HEAD refs/heads/old-branch
+check "HEAD@{1}" commit new-two
+check "@{1}" commit old-one

To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to
More majordomo info at

Reply via email to