From: Paul Mackerras Date: Sat, 14 May 2005 07:47:31 GMT Subject: Re: Regarding gitk Message-ID: <17029.44307.356844.438027@cargo.ozlabs.ibm.com> In-Reply-To: <20050513051923.GA15116@htj.dyndns.org> Hi Tejun, > First of all, thanks a lot for gitk. I was working on something using > graphviz/pygtk to do about the same thing for a couple of weeks (and got > pretty far with it) but ditched it as gitk seemed much better. I really > love how gitk shows the commit graph. :-) Yes, I was pleased with how it turned out. > As I don't wanna ditch any more of my time, it would be great if you > let me know what you're currently working on, so that I can coordinate > with you. Here are the things I have on mind. > > * integrate two-way diff view w/ diff map into gitk from mgdiff. I guess mgdiff and dirdiff do very similar things, although dirdiff can display the diffs between up to 5 trees (limited mainly by the number of easily distinguishable colors between red and green). Doing 3-way diffs is useful for most merges (diffing the output vs. the inputs) and for diffing two arbitrary commits (diffing the two vs. the nearest common ancestor). I recently changed dirdiff to be able to diff git commits with each other or the working directory, and I was intending to add a way to invoke that from gitk. > * show the current cache and working files at the head of graph Interesting idea. I had mostly been thinking of gitk in terms of the way I use it, which is to help me follow what others are doing rather than looking at what I have done. > * demand-load commits as the user scrolls down the graph It would be nice to at least be a bit asynchronous, so that the graph is drawn as the commits are read, rather than having to wait for all the commits are read before anything is drawn. I need to hack git-rev-tree, I guess. > I wrote a commit viewing utility (gitkdiff) modified from mgdiff two > weeks ago so I'm quite familiar with mgdiff source, and implemented > demand-loading of commits in my own project in python, but writing a > separate c utility with the same algorithm wouldn't take that much time. Does that algorithm let you say "commits reachable from A but not from B" like git-rev-tree does? Regards, Paul.