Skip to content

Commit

Permalink
reject @{-1} not at beginning of object name
Browse files Browse the repository at this point in the history
Something like foo@{-1} is nonsensical, as the @{-N} syntax
is reserved for "the Nth last branch", and is not an actual
reflog selector. We should not feed such nonsense to
approxidate at all.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Jeff King authored and Junio C Hamano committed Jan 28, 2010
1 parent d46a830 commit 12a258c
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
4 changes: 4 additions & 0 deletions sha1_name.c
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,10 @@ static int get_sha1_basic(const char *str, int len, unsigned char *sha1)
unsigned long co_time;
int co_tz, co_cnt;

/* a @{-N} placed anywhere except the start is an error */
if (str[at+2] == '-')
return -1;

/* Is it asking for N-th entry, or approxidate? */
for (i = nth = 0; 0 <= nth && i < reflog_len; i++) {
char ch = str[at+2+i];
Expand Down
2 changes: 1 addition & 1 deletion t/t1508-at-combinations.sh
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ check "@{u}" upstream-two
check "@{u}@{1}" upstream-one
check "@{-1}@{u}" master-two
check "@{-1}@{u}@{1}" master-one
fail nonsense "@{u}@{-1}"
nonsense "@{u}@{-1}"
nonsense "@{1}@{u}"

test_done

0 comments on commit 12a258c

Please sign in to comment.