test-revlog-ancestry.py
85 lines
| 1.7 KiB
| text/x-python
|
PythonLexer
/ tests / test-revlog-ancestry.py
Stefano Tortarolo
|
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
|
r9031 | f = open(name, 'w') | ||
Stefano Tortarolo
|
r6872 | f.write('%s\n' % name) | ||
f.close() | ||||
Dirkjan Ochtman
|
r11303 | repo[None].add([name]) | ||
Stefano Tortarolo
|
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
|
r16866 | for r in repo.changelog.ancestors([5]): | ||
Dirkjan Ochtman
|
r6923 | print r, | ||
Stefano Tortarolo
|
r6872 | |||
print '\nAncestors of 6 and 5' | ||||
Bryan O'Sullivan
|
r16866 | for r in repo.changelog.ancestors([6, 5]): | ||
Dirkjan Ochtman
|
r6923 | print r, | ||
Stefano Tortarolo
|
r6872 | |||
print '\nAncestors of 5 and 4' | ||||
Bryan O'Sullivan
|
r16866 | for r in repo.changelog.ancestors([5, 4]): | ||
Dirkjan Ochtman
|
r6923 | print r, | ||
Stefano Tortarolo
|
r6872 | |||
Joshua Redstone
|
r16868 | print '\nAncestors of 7, stop at 6' | ||
for r in repo.changelog.ancestors([7], 6): | ||||
print r, | ||||
Siddharth Agarwal
|
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
|
r6872 | # Descendants | ||
print '\n\nDescendants of 5' | ||||
Bryan O'Sullivan
|
r16867 | for r in repo.changelog.descendants([5]): | ||
Dirkjan Ochtman
|
r6923 | print r, | ||
Stefano Tortarolo
|
r6872 | |||
print '\nDescendants of 5 and 3' | ||||
Bryan O'Sullivan
|
r16867 | for r in repo.changelog.descendants([5, 3]): | ||
Dirkjan Ochtman
|
r6923 | print r, | ||
Stefano Tortarolo
|
r6872 | |||
print '\nDescendants of 5 and 4' | ||||
Bryan O'Sullivan
|
r16867 | for r in repo.changelog.descendants([5, 4]): | ||
Dirkjan Ochtman
|
r6923 | print r, | ||
Stefano Tortarolo
|
r6872 | |||