Re: [RFC] get_sha1() shorthands for blob/tree objects
- From
Junio C Hamano <junkio@cox.net>
- Date
- Apr 19, 2006, 04:02 UTC
- Message-ID
- <7v8xq2ciws.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <Pine.LNX.4.64.0604181836400.3701@g5.osdl.org>
Linus Torvalds <torvalds@osdl.org> writes:
Show 22 quoted lines
> Actually, it's not ambiguous. Just take the named file. If you want to > diff it against HEAD:<named-file>, you should just say so. > > Now, if you _really_ want to be difficult, there's a third option: to diff > it against the named file as named in the index. "git diff" does have the > "--cached" option that would make that case unambiguous too, of course. > > Ie: > > (a) diff against the current HEAD: > > git diff v0.99.6:git-commit-script HEAD:git-commit.sh > > (b) diff against the current index contents for "git-commit.sh": > > git diff --cached v0.99.6:git-commit-script git-commit.sh > > (c) diff against a random file (which may not even be in the index): > > git diff v0.99.6:git-commit-script git-commit.sh > > are all sensible operations, and unambiguous.
A small fry in the ointment. What should the parts that are output with --name-only say for such a diff?
Blob references like v0.99.6:git-commit-script are resolved by the extended SHA1 interpreter, and all what the caller of setup_revisions() can see and feed the diff machinery with has are their object names. Something like this is a possibility, but is ugly.
diff --git a/a2455b0... b/01c73bd...
index a2455b0..01c73bd 100644
--- a/a2455b0...
+++ b/01c73bd...
@@ -1,118 +1,509 @@
#!/bin/sh
#
# Copyright (c) 2005 Linus Torvalds
+# Copyright (c) 2006 Junio C Hamano
+
+USAGE='[-a] [-s] [-v] [--no-verify] [-m <message>...
+SUBDIRECTORY_OK=Yes
...