Mercurial > hg
view tests/test-revlog-ancestry.py @ 42143:29569f2db929
bundle2: handle compression in _forwardchunks
_forwardchunks is used to compensate for getbundle protocol deficits.
Since it transparently decodes the payload, it also needs to remove the
corresponding compression parameter in case the server decides to send
one. This the wire protocol part of issue 5990.
Differential Revision: https://phab.mercurial-scm.org/D6182
author | Joerg Sonnenberger <joerg@bec.de> |
---|---|
date | Tue, 02 Apr 2019 19:48:31 +0200 |
parents | b14fdf1fb615 |
children | 2372284d9457 |
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, b'test1', create=1) os.chdir('test1') def commit(text, time): repo.commit(text=text, date=b"%d 0" % time) def addcommit(name, time): f = open(name, 'wb') f.write(b'%s\n' % name) f.close() repo[None].add([name]) commit(name, time) def update(rev): merge.update(repo, rev, branchmerge=False, force=True) def merge_(rev): merge.update(repo, rev, branchmerge=True, force=False) if __name__ == '__main__': addcommit(b"A", 0) addcommit(b"B", 1) update(0) addcommit(b"C", 2) merge_(1) commit(b"D", 3) update(2) addcommit(b"E", 4) addcommit(b"F", 5) update(3) addcommit(b"G", 6) merge_(5) commit(b"H", 7) update(5) addcommit(b"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=' ')