Jakub Narebski [off-list ref] writes:
Currently, due to artifact of git-diff argument parsing you can get diff
of two arbitrary blobs given by their sha1 id, e.g.
git diff ab8050ceb4e43522e858768cc2c02fcb91839370 fd05278808d458602587bb024a48726018d30926
Just FYI, it is pretty much by design not artifact to allow
something like this:
git diff master:Makefile next:Makefile
Junio C Hamano wrote:
Jakub Narebski [off-list ref] writes:
quoted
Currently, due to artifact of git-diff argument parsing you can get diff
of two arbitrary blobs given by their sha1 id, e.g.
git diff ab8050ceb4e43522e858768cc2c02fcb91839370 fd05278808d458602587bb024a48726018d30926
Just FYI, it is pretty much by design not artifact to allow
something like this:
git diff master:Makefile next:Makefile
Which we could get using
git diff master next -- Makefile
Currently ('next' branch) git-diff manpage talks only about comparing trees.
* When no <ent> is given, the working tree and the index file is compared,
using git-diff-files.
* When one <ent> is given, the working tree and the named tree is compared,
using git-diff-index. The option --cached can be given to compare the index
file and the named tree.
* When two <ent>s are given, these two trees are compared using
git-diff-tree.
And the only way to compare blobs is by giving directly or indirectly
(like above) sha1 of the blobs, i.e. only the third case is supported.
git-diff doesn't understand :<stage>:<filename> and :<filename> for
accessing index version of blob (git-cat-file for example understands
it). Note: <filename> in <revision>:<filename> and <stage>:<filename>
must be wrt GIT_DIR.
It is also no way to specify working tree version of file (blob). We
could use ::<filename> for that, I think...
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git