On Fri, 19 Oct 2007, Linus Torvalds wrote:Btw, I knew I had wanted this in the past, but I had forgotten why. I now remembered. The thing is, sometimes you want an expression for "all the parents of X". We don't have that, and again, the current internal implementation of sha1_name.c makes it essentially impossible to do within that interface (ie you can do it on *top* of that interface in revision.c, but it cannot be a general SHA1 expression). So wouldn't it be nice to have a "commit^*" expression to go with "commit^" and "commit^2" etc? One that would name all the parents. It's useful, for example, for saying that you still want to see that commit, but not any of its parents: git log commit^*.. could basically work to show that commit (and all subsequent commits), but not the commits leading up to it. Right now, you can't easily say that in the git "sha1 expression algebra". There are some other cases where you'd like to have things expand to more than one commit. We currently do those with special flags, like --all, but in many ways it would be really nice to be able to do SHA1 operations on them. If we were to make the SHA1 arithmetic able to handle multiple SHA1's (instead of just one), I could see us being able to do things like git diff {master,pu}:Makefile as a way of saying git diff master:Makefile pu:Makefile which already works - simply because we could make the ":name" be able to operate on multiple commit SHA1's and turn them into multiple blob (or tree) SHA1's. (The above may not sound very useful, but git diff {ORIG_HEAD...MERGE_HEAD}:file would essentially expand to "base version of file", ORIG_HEAD:file and MERGE_HEAD:file, and we could fairly easily teach diff to do a nice three-way diff for things like this! So it does have potential to be a reasonably powerful model) Linus - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
| Linus Torvalds | Re: [REPORT] cfs-v4 vs sd-0.44 |
| Mariusz Kozlowski | [PATCH 02] kmalloc + memset conversion to kzalloc |
| Andi Kleen | [PATCH] [16/22] x86: Move swsusp __pa() dependent code to arch portion |
| Vegard Nossum | [RFC][PATCH] bitfields API |
git: | |
| Carl Worth | [PATCH] commit: Steer new users toward "git commit -a" rather than update-index |
| Wincent Colaiuta | Re: [ANNOUNCE] GIT 1.5.4 |
| Junio C Hamano | Re: Decompression speed: zip vs lzo |
| Nicolas Pitre | Re: cloning the kernel - why long time in "Resolving 313037 deltas" |
| Alexey Suslikov | OT: OpenBSD on Asus eeePC |
| Bertram Scharpf | First install: Grub doesn't find partitions |
| GVG GVG | ssh_exchange_identification: Connection closed by remote host |
| bsd_news | LC_COLLATE and PostgreSQL |
| David Miller | [PATCH]: Fix networking scatterlist regressions. |
| Indan Zupancic | Re: Realtek 8111C transmit timed out |
| Ilpo Järvinen | [RFC PATCH 6/8] [NET]: uninline skb_trim, de-bloats |
| Patrick McHardy | Re: [NETFILTER]: Introduce nf_inet_address |
