Mercurial > hg
view tests/test-revlog-ancestry.py @ 29774:a7f8939641aa
merge: use labels in prompts to the user
Now that we persist the labels, we can consistently use the labels in
prompts for the user without risk of confusion. This changes a huge amount
of command output:
This means that merge prompts like:
no tool found to merge a
keep (l)ocal, take (o)ther, or leave (u)nresolved? u
and
remote changed a which local deleted
use (c)hanged version, leave (d)eleted, or leave (u)nresolved? c
become:
no tool found to merge a
keep (l)ocal [working copy], take (o)ther [destination], or leave (u)nresolved? u
and
remote [source] changed a which local [dest] deleted
use (c)hanged version, leave (d)eleted, or leave (u)nresolved? c
where "working copy" and "destination" were supplied by the command that
requested the merge as labels for conflict markers, and thus should be
human-friendly.
author | Simon Farnsworth <simonfar@fb.com> |
---|---|
date | Fri, 12 Aug 2016 06:01:42 -0700 |
parents | d466facc5a6e |
children | d83ca854fa21 |
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() 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=' ')