git-svn: fix ls-tree usage with dash-prefixed paths
commitb8fee3a3884b4a18c2f0b5313255dd180c44ab78
authorEric Wong <normalperson@yhbt.net>
Sun, 29 Mar 2009 06:10:45 +0000 (28 23:10 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 30 Mar 2009 02:58:10 +0000 (29 19:58 -0700)
tree38edbbfa750e546dd7e48219c0cbea3d449d185a
parent9d5156496d2d32800df52fa372295c16ab2578f0
git-svn: fix ls-tree usage with dash-prefixed paths

To find the blob object name given a tree and pathname, we were
incorrectly calling "git ls-tree" with a "--" argument followed
by the pathname of the file we wanted to get.

  git ls-tree <TREE> -- --dashed/path/name.c

Unlike many command-line interfaces, the "--" alone does not
symbolize the end of non-option arguments on the command-line.

ls-tree interprets the "--" as a prefix to match against, thus
the entire contents of the --dashed/* hierarchy would be
returned because the "--" matches "--dashed" and every path
under it.

Thanks to Anton Gyllenberg for pointing me toward the
Twisted repository as a real-world example of this case.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-svn.perl