sha1_name.c: add support for disambiguating other types
authorJunio C Hamano <gitster@pobox.com>
Tue, 3 Jul 2012 06:35:05 +0000 (23:35 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 9 Jul 2012 23:42:22 +0000 (16:42 -0700)
commitdaba53aeaf6565b4bbdd6783c659480453ec3c5e
treec4d4c9ef0161760d0ffb2f051b683fd3f50d8db7
parentd5f6b1d756a29255efedee3cb6e8526aedcfeb00
sha1_name.c: add support for disambiguating other types

This teaches the revision parser that in "$name:$path" (used for a
blob object name), "$name" must be a tree-ish.

There are many more places where we know what types of objects are
called for.  This patch adds support for "commit", "treeish", "tree",
and "blob", which could be used in the following contexts:

 - "git apply --build-fake-ancestor" reads the "index" lines from
   the patch; they must name blob objects (not even "blob-ish");

 - "git commit-tree" reads a tree object name (not "tree-ish"), and
   zero or more commit object names (not "committish");

 - "git reset $rev" wants a committish; "git reset $rev -- $path"
   wants a treeish.

They will come in later patches in the series.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
cache.h
sha1_name.c
t/t1512-rev-parse-disambiguation.sh