Re: gitk-1.0 released
From: Ingo Molnar <hidden>
Date: 2016-06-15 22:41:57
* Paul Mackerras [off-list ref] wrote:
quoted
(and the biggest missing feature of GIT right now is author + last-commit annotated file viewing which could be integrated into gitk a'ka BK's revtool: selecting a given line of the file would bring one to that commit, etc.)Yes, indeed. I'll have to think about how to do it in a responsive fashion, since getting the necessary information involves reading all the commits and all the tree objects back to the beginning of time, AFAICS. [...]
i guess so. A possible solution seems to be to read every object starting at the oldest one (assuming it's possible to get a list of object IDs that are predecessors), and to split the oldest object up into 'line' objects, attaching the (same) object ID to every line. Then the algorithm would go forward in time and would process every diff from that point on, and would add/remove line objects, attaching the new object IDs as new lines get added. The resulting set of lines then contain all the metadata needed (== object ID they originate from). i dont think other SCMs can do this much faster: you need to go back to the last (still relevant) version and have to process the deltas from that point on. Delta-based formats would be somewhat faster and easier to process, but probably not that much faster in terms of IO overhead. Ingo