Hi, On Mon, 25 Dec 2006, Junio C Hamano wrote: > Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > > >> Also I highly doubt visualization based on parents information rewritten > >> to match the reflog order is of _any_ use. By rewriting the parenthood, > >> you are losing the topology and your visualization is no better than > >> what "tac .git/logs/$ref" would give. > > > > Okay, but if they are _not_ rewritten, we can reuse the log machinery to > > show the revisions in "upstream..master@{2.hours.ago}", but in the order > > they came into the local repository. > > Shawn's code was about showing where the tip of the branch was, > and I think you are talking about something entirely different, > which I would address later. If I read Shawn's mail correctly, it is not only about the tip. > The most valuable parts of the revision walking code are about ancestry > traversal and history simplification with pathspec, neither of which > makes much sense to use when "walking" reflog. Sorry to be a PITA here, but I think that it _would_ make sense. Quite often I ask myself "That feature in this file used to work. When and how was it changed?" Right now, I use git-log with path simplification, but with reflog walking, I could ask in a more specific way! > But it _also_ makes sense to use reflog when the primary thing we are > interested in seeing is not how the tip jumped around, but seeing how > the branch acquired commits, which I think is what you are suggesting. > What we would want to have is a sort order different from the existing > topo or date, which is "reflog order". I think it should not be a different sort order. As you pointed out yourself, a "git reset --hard HEAD^" removes the assumption of the commit list being a DAG. Rather, I think about introducing a "get_parents(revs, commit)" function in revision.c, which takes reflog information rather than commit->parents if "--walk-reflogs" is passed to setup_revisions(). I hope to have a proof of concept later today. Ciao, Dscho - To unsubscribe from this list: 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