Mercurial > hg
view tests/test-revlog-ancestry.py @ 19111:6439d78e14fb stable
bookmarks: resolve divergent bookmark when moving across a branch
This patch resolves a single divergent bookmark if a divergent bookmark exists
in the target revision and it current bookmark is not an ancestor of the target
revision, else it would already be handled by the previous patch in this
series.
Test coverage is added.
author | Sean Farley <sean.michael.farley@gmail.com> |
---|---|
date | Tue, 30 Apr 2013 21:12:49 -0500 |
parents | f88c60e740a1 |
children | 43c00ca887d1 |
line wrap: on
line source
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): 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, 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]): print r, print '\nAncestors of 6 and 5' for r in repo.changelog.ancestors([6, 5]): print r, print '\nAncestors of 5 and 4' for r in repo.changelog.ancestors([5, 4]): print r, print '\nAncestors of 7, stop at 6' for r in repo.changelog.ancestors([7], 6): print r, 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, # Descendants print '\n\nDescendants of 5' for r in repo.changelog.descendants([5]): print r, print '\nDescendants of 5 and 3' for r in repo.changelog.descendants([5, 3]): print r, print '\nDescendants of 5 and 4' for r in repo.changelog.descendants([5, 4]): print r,