Mercurial > hg
view tests/test-revlog-ancestry.py @ 35085:ae7ad53d3c8d
fsmonitor: only access inner dirstate map if it is available
As part of the dirstate refactor, fsmonitor was updated to directly access the
inner map of the dirstatemap object.
Dirstatemap reimplementations may not use a map like this, so only access it if
it is there.
Differential Revision: https://phab.mercurial-scm.org/D1346
author | Mark Thomas <mbthomas@fb.com> |
---|---|
date | Wed, 15 Nov 2017 01:07:42 -0800 |
parents | d83ca854fa21 |
children | 14d2371216ba |
line wrap: on
line source
from __future__ import absolute_import, print_function import os from mercurial import ( hg, merge, ui as uimod, ) u = uimod.ui.load() 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): f = open(name, 'w') f.write('%s\n' % name) f.close() repo[None].add([name]) commit(name, time) def update(rev): merge.update(repo, rev, False, True) def merge_(rev): merge.update(repo, rev, True, 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]): print(r, end=' ') print('\nAncestors of 6 and 5') for r in repo.changelog.ancestors([6, 5]): print(r, end=' ') print('\nAncestors of 5 and 4') for r in repo.changelog.ancestors([5, 4]): print(r, end=' ') print('\nAncestors of 7, stop at 6') for r in repo.changelog.ancestors([7], 6): print(r, end=' ') print('\nAncestors of 7, including revs') for r in repo.changelog.ancestors([7], inclusive=True): print(r, end=' ') print('\nAncestors of 7, 5 and 3, including revs') for r in repo.changelog.ancestors([7, 5, 3], inclusive=True): print(r, end=' ') # Descendants print('\n\nDescendants of 5') for r in repo.changelog.descendants([5]): print(r, end=' ') print('\nDescendants of 5 and 3') for r in repo.changelog.descendants([5, 3]): print(r, end=' ') print('\nDescendants of 5 and 4') print(*repo.changelog.descendants([5, 4]), sep=' ')