test-revlog-ancestry.py
73 lines
| 1.4 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' | ||||
for r in repo.changelog.ancestors(5): | ||||
Dirkjan Ochtman
|
r6923 | print r, | ||
Stefano Tortarolo
|
r6872 | |||
print '\nAncestors of 6 and 5' | ||||
for r in repo.changelog.ancestors(6, 5): | ||||
Dirkjan Ochtman
|
r6923 | print r, | ||
Stefano Tortarolo
|
r6872 | |||
print '\nAncestors of 5 and 4' | ||||
for r in repo.changelog.ancestors(5, 4): | ||||
Dirkjan Ochtman
|
r6923 | print r, | ||
Stefano Tortarolo
|
r6872 | |||
# Descendants | ||||
print '\n\nDescendants of 5' | ||||
for r in repo.changelog.descendants(5): | ||||
Dirkjan Ochtman
|
r6923 | print r, | ||
Stefano Tortarolo
|
r6872 | |||
print '\nDescendants of 5 and 3' | ||||
for r in repo.changelog.descendants(5, 3): | ||||
Dirkjan Ochtman
|
r6923 | print r, | ||
Stefano Tortarolo
|
r6872 | |||
print '\nDescendants of 5 and 4' | ||||
for r in repo.changelog.descendants(5, 4): | ||||
Dirkjan Ochtman
|
r6923 | print r, | ||
Stefano Tortarolo
|
r6872 | |||