[RFC] browsing history API
Johan Rydberg
jrydberg at gnu.org
Tue May 23 08:15:30 BST 2006
Robert Collins <robertc at robertcollins.net> writes:
> VersionedFile is *not* the history of changes to a file id. Its a record
> of the versions of the file.
Agreed.
> In our current implementation only the inventory, with the last-modified
> field, can say when a file was modified : the VersionedFile graph and
> the revisions that modified a file will intersect, but neither is a
> subset of the other in the general case. (Reparents are not listed in
> the versioned-file graph, and changes in other branches should not be in
> the modifying revisions list from the point of view of 'log' - which
> wants only the left-most parents according to the revision graph,
> intersected with the versioned file graph.).
I've run into this problem a few days ago, when hacking on ViewVC.
How exactly do one go about to get revisions that are the intersection
between branch available per-file revisions and repository per-file
revisions, in a quick manner? (ie, exclude file revisions that are not
referenced by the branch). Iterating through the revisions, starting
at the last-modified revision, seems kinda slow. But I'm afraid there
is no other way.
You state that 'log' only wants the intersected graph between the
left-most revision graph and the versioned file graph. But that will
exclude merged revisions. So I suppose it must be the intersection
between the _whole_ revision graph and the versioned file graph.
Correct?
~j
More information about the bazaar
mailing list