lp:~gagern/trac-bzr/noancestry

Created by Martin von Gagern and last modified

Obtaining the full ancestry of a revision is an expensive operation and should be avoided wherever feasible.
Parts of this branch have already been merged into trunk, while other solutions are too experimental yet.

Get this branch:
bzr branch lp:~gagern/trac-bzr/noancestry
Only Martin von Gagern can upload to this branch. If you are Martin von Gagern please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Martin von Gagern
Project:
Trac-Bzr
Status:
Experimental

Recent revisions

88. By Martin von Gagern

Experimental revno calculation for BzrDirNode based on lefthand history.

This experimental modification reproduces pretty much the algorithm from
BzrVersionedNode.get_history: iterate through lefthand history, looking for
changesets (or in this case the latest changeset) touching a given
directory. This gets rid of get_ancestry in the get_content_revision
method.

With large subtrees which have been modified recently this algorithm will
perform much better. On the other hand, with small directories that haven't
been modified in a long time, this iteration over changesets will probably
be much more expensive than the old approach.

The resulting revision numbers will be different as well. Where the old
approach yielded the (probably dotted) revno of the last child modification
according to some topologicaly sorted but otherwise arbitrary ancestry, this
new approach uses only lefthand history and will therefore always yield
mainline revision numbers if starting from a mainline revision. This
contrasts with the revision numbers for files, which are still dotted ones.

87. By Martin von Gagern

Base short_rev on truncated dotted_revno.

This avoids get_ancestry in BzrRepository.short_rev and also carries more
detailed information than the previous approach did. On the downside, there
is no visual indication of shortened revnos, so if someone copies such a
short rev, instead of simply clicking on the (long rev) link, the revision
might be wrong. I chose to sacrifice such truncation indication for more
digits from the actual dotted revno.

86. By Martin von Gagern

Avoid get_ancestry in BzrRepository.rev_older_than

85. By Martin von Gagern

Avoid get_ancestry in BzrRepository.string_rev

84. By Martin von Gagern

Split trac components.

This way the different components can be enabled and disabled individually.
So people could enable the repository but disable the wiki macro, or disable
the properties renderer to get the properties rendered as simple text.

83. By Martin von Gagern

Use linear lefthand history. LP #487713.

82. By Martin von Gagern

Render parent links in Trac 0.11. LP #488151.

81. By Martin von Gagern

Fix and improve Branches macro. LP #484640.

80. By Martin von Gagern

Fix get_changes and clean up

79. By Martin von Gagern

Allow for null: and current: revisions also on versioned branches. LP #488662

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:trac-bzr
This branch contains Public information 
Everyone can see this information.