Junio C Hamano <junkio@xxxxxxx> wrote: > Shawn Pearce <spearce@xxxxxxxxxxx> writes: > > > This is all well and good but its sort of useless without the diffcore > > being able to lookup what SHA1 was valid on a given branch at a given > > point in time. :-) > > > > I'm thinking about extending the 'extended SHA1' syntax to accept > > a date (or date expression) as a suffix: > > > > HEAD@'2 hours ago' > > HEAD@'2006-04-20' > > HEAD@'2006-04-20 14:12' > > > > etc... This would be merged into get_sha1 (sha1_name.c) so its > > usable pretty much anywhere. Does this seem reasonable? If so > > I'll work up a patch for it. > > HEAD? > > Are you going to hook into symbolic-ref as well to track branch > switching? I hadn't planned on it. I was going to resolve the symref HEAD down to the real ref (e.g. refs/heads/sp/ref-log) and then do the date range searching on the real branch. I didn't think it was interesting to track what HEAD is. But I think it would be very common for the user to use HEAD rather than their actual branch ref names when forming an expression. [snip] > The time-warp format would make sense for individual branches, > like refs/heads/master, though. > > sha1_name.c and sha1_file.c were supposed to be real core, but > get_sha1() is looking more and more Porcelainish these days, and > I do not have much problem with being able to say "tip of this > branch, two hours ago". > > I am not sure about the syntax though. We would want to be able > to say "start from the commit that was at the tip of 'master' > branch two days ago, grab its tree and look at arch/sparc64 > directory", so things like > > "master@2006-05-14 14:12" > "master@2006-05-14 14:12^{tree}" > "master@two days ago:arch/sparc64" > > would need to be supported. Yea, I realize that. I'm currently looking at get_sha1_1 and how I can put the date resolution in before the ^, ~ and :. :-) -- Shawn. - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html