##// END OF EJS Templates
revisionbranchcache: fall back to slow path if starting readonly (issue4531)...
revisionbranchcache: fall back to slow path if starting readonly (issue4531) Transitioning to Mercurial versions with revision branch cache could be slow as long as all operations were readonly (revset queries) and the cache would be populated but not written back. Instead, fall back to using the consistently slow path when readonly and the cache doesn't exist yet. That avoids the overhead of populating the cache without writing it back. If not readonly, it will still populate all missing entries initially. That avoids repeated writing of the cache file with small updates, and it also makes sure a fully populated cache available for the readonly operations.

File last commit:

r18081:f88c60e7 default
r24159:5b4ed033 3.3.1 stable
Show More
test-revlog-ancestry.py
85 lines | 1.7 KiB | text/x-python | PythonLexer
/ tests / test-revlog-ancestry.py
Stefano Tortarolo
Add ancestors and descendants to revlog...
r6872 import os
from mercurial import hg, ui, merge
u = ui.ui()
repo = hg.repository(u, 'test1', create=1)
os.chdir('test1')
def commit(text, time):
repo.commit(text=text, date="%d 0" % time)
def addcommit(name, time):
Alejandro Santos
compat: use open() instead of file() everywhere
r9031 f = open(name, 'w')
Stefano Tortarolo
Add ancestors and descendants to revlog...
r6872 f.write('%s\n' % name)
f.close()
Dirkjan Ochtman
move working dir/dirstate methods from localrepo to workingctx
r11303 repo[None].add([name])
Stefano Tortarolo
Add ancestors and descendants to revlog...
r6872 commit(name, time)
def update(rev):
merge.update(repo, rev, False, True, False)
def merge_(rev):
merge.update(repo, rev, True, False, False)
if __name__ == '__main__':
addcommit("A", 0)
addcommit("B", 1)
update(0)
addcommit("C", 2)
merge_(1)
commit("D", 3)
update(2)
addcommit("E", 4)
addcommit("F", 5)
update(3)
addcommit("G", 6)
merge_(5)
commit("H", 7)
update(5)
addcommit("I", 8)
# Ancestors
print 'Ancestors of 5'
Bryan O'Sullivan
revlog: ancestors(*revs) becomes ancestors(revs) (API)...
r16866 for r in repo.changelog.ancestors([5]):
Dirkjan Ochtman
strip trailing whitespace, replace tabs by spaces
r6923 print r,
Stefano Tortarolo
Add ancestors and descendants to revlog...
r6872
print '\nAncestors of 6 and 5'
Bryan O'Sullivan
revlog: ancestors(*revs) becomes ancestors(revs) (API)...
r16866 for r in repo.changelog.ancestors([6, 5]):
Dirkjan Ochtman
strip trailing whitespace, replace tabs by spaces
r6923 print r,
Stefano Tortarolo
Add ancestors and descendants to revlog...
r6872
print '\nAncestors of 5 and 4'
Bryan O'Sullivan
revlog: ancestors(*revs) becomes ancestors(revs) (API)...
r16866 for r in repo.changelog.ancestors([5, 4]):
Dirkjan Ochtman
strip trailing whitespace, replace tabs by spaces
r6923 print r,
Stefano Tortarolo
Add ancestors and descendants to revlog...
r6872
Joshua Redstone
revlog: add optional stoprev arg to revlog.ancestors()...
r16868 print '\nAncestors of 7, stop at 6'
for r in repo.changelog.ancestors([7], 6):
print r,
Siddharth Agarwal
revlog.ancestors: add support for including revs...
r18081 print '\nAncestors of 7, including revs'
for r in repo.changelog.ancestors([7], inclusive=True):
print r,
print '\nAncestors of 7, 5 and 3, including revs'
for r in repo.changelog.ancestors([7, 5, 3], inclusive=True):
print r,
Stefano Tortarolo
Add ancestors and descendants to revlog...
r6872 # Descendants
print '\n\nDescendants of 5'
Bryan O'Sullivan
revlog: descendants(*revs) becomes descendants(revs) (API)...
r16867 for r in repo.changelog.descendants([5]):
Dirkjan Ochtman
strip trailing whitespace, replace tabs by spaces
r6923 print r,
Stefano Tortarolo
Add ancestors and descendants to revlog...
r6872
print '\nDescendants of 5 and 3'
Bryan O'Sullivan
revlog: descendants(*revs) becomes descendants(revs) (API)...
r16867 for r in repo.changelog.descendants([5, 3]):
Dirkjan Ochtman
strip trailing whitespace, replace tabs by spaces
r6923 print r,
Stefano Tortarolo
Add ancestors and descendants to revlog...
r6872
print '\nDescendants of 5 and 4'
Bryan O'Sullivan
revlog: descendants(*revs) becomes descendants(revs) (API)...
r16867 for r in repo.changelog.descendants([5, 4]):
Dirkjan Ochtman
strip trailing whitespace, replace tabs by spaces
r6923 print r,
Stefano Tortarolo
Add ancestors and descendants to revlog...
r6872