test-revlog-ancestry.py
88 lines
| 1.9 KiB
| text/x-python
|
PythonLexer
/ tests / test-revlog-ancestry.py
Robert Stanca
|
r28764 | from __future__ import absolute_import, print_function | ||
Stefano Tortarolo
|
r6872 | import os | ||
Robert Stanca
|
r28763 | from mercurial import ( | ||
hg, | ||||
merge, | ||||
Yuya Nishihara
|
r28842 | ui as uimod, | ||
Robert Stanca
|
r28763 | ) | ||
Stefano Tortarolo
|
r6872 | |||
Yuya Nishihara
|
r30559 | u = uimod.ui.load() | ||
Stefano Tortarolo
|
r6872 | |||
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): | ||||
Augie Fackler
|
r27344 | merge.update(repo, rev, False, True) | ||
Stefano Tortarolo
|
r6872 | |||
def merge_(rev): | ||||
Augie Fackler
|
r27344 | merge.update(repo, rev, True, False) | ||
Stefano Tortarolo
|
r6872 | |||
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 | ||||
Robert Stanca
|
r28764 | print('Ancestors of 5') | ||
Bryan O'Sullivan
|
r16866 | for r in repo.changelog.ancestors([5]): | ||
Robert Stanca
|
r28764 | print(r, end=' ') | ||
Stefano Tortarolo
|
r6872 | |||
Robert Stanca
|
r28764 | print('\nAncestors of 6 and 5') | ||
Bryan O'Sullivan
|
r16866 | for r in repo.changelog.ancestors([6, 5]): | ||
Robert Stanca
|
r28764 | print(r, end=' ') | ||
Stefano Tortarolo
|
r6872 | |||
Robert Stanca
|
r28764 | print('\nAncestors of 5 and 4') | ||
Bryan O'Sullivan
|
r16866 | for r in repo.changelog.ancestors([5, 4]): | ||
Robert Stanca
|
r28764 | print(r, end=' ') | ||
Stefano Tortarolo
|
r6872 | |||
Robert Stanca
|
r28764 | print('\nAncestors of 7, stop at 6') | ||
Joshua Redstone
|
r16868 | for r in repo.changelog.ancestors([7], 6): | ||
Robert Stanca
|
r28764 | print(r, end=' ') | ||
Joshua Redstone
|
r16868 | |||
Robert Stanca
|
r28764 | print('\nAncestors of 7, including revs') | ||
Siddharth Agarwal
|
r18081 | for r in repo.changelog.ancestors([7], inclusive=True): | ||
Robert Stanca
|
r28764 | print(r, end=' ') | ||
Siddharth Agarwal
|
r18081 | |||
Robert Stanca
|
r28764 | print('\nAncestors of 7, 5 and 3, including revs') | ||
Siddharth Agarwal
|
r18081 | for r in repo.changelog.ancestors([7, 5, 3], inclusive=True): | ||
Robert Stanca
|
r28764 | print(r, end=' ') | ||
Siddharth Agarwal
|
r18081 | |||
Stefano Tortarolo
|
r6872 | # Descendants | ||
Robert Stanca
|
r28764 | print('\n\nDescendants of 5') | ||
Bryan O'Sullivan
|
r16867 | for r in repo.changelog.descendants([5]): | ||
Robert Stanca
|
r28764 | print(r, end=' ') | ||
Stefano Tortarolo
|
r6872 | |||
Robert Stanca
|
r28764 | print('\nDescendants of 5 and 3') | ||
Bryan O'Sullivan
|
r16867 | for r in repo.changelog.descendants([5, 3]): | ||
Robert Stanca
|
r28764 | print(r, end=' ') | ||
Stefano Tortarolo
|
r6872 | |||
Robert Stanca
|
r28764 | print('\nDescendants of 5 and 4') | ||
print(*repo.changelog.descendants([5, 4]), sep=' ') | ||||