Mercurial > hg
comparison hgext/rebase.py @ 42975:43c84b816445
rebase: track new nodes when --keep is set
When --keep is passed with rebase, the new nodes created are not
accessible from templates.
This change enables accessing the newly-created nodes from nodechanges,
just as if --keep was not set.
Differential Revision: https://phab.mercurial-scm.org/D6880
author | Paul Gossman <pgossman@janestreet.com> |
---|---|
date | Wed, 25 Sep 2019 10:59:29 -0400 |
parents | 35ebdbb38efb |
children | 2372284d9457 |
comparison
equal
deleted
inserted
replaced
42974:576fd1c8b20b | 42975:43c84b816445 |
---|---|
1781 for rev, newrev in sorted(state.items()): | 1781 for rev, newrev in sorted(state.items()): |
1782 if newrev >= 0 and newrev != rev: | 1782 if newrev >= 0 and newrev != rev: |
1783 oldnode = tonode(rev) | 1783 oldnode = tonode(rev) |
1784 newnode = collapsedas or tonode(newrev) | 1784 newnode = collapsedas or tonode(newrev) |
1785 moves[oldnode] = newnode | 1785 moves[oldnode] = newnode |
1786 if not keepf: | 1786 succs = None |
1787 succs = None | 1787 if rev in skipped: |
1788 if rev in skipped: | 1788 if stripcleanup or not repo[rev].obsolete(): |
1789 if stripcleanup or not repo[rev].obsolete(): | 1789 succs = () |
1790 succs = () | 1790 elif collapsedas: |
1791 elif collapsedas: | 1791 collapsednodes.append(oldnode) |
1792 collapsednodes.append(oldnode) | 1792 else: |
1793 else: | 1793 succs = (newnode,) |
1794 succs = (newnode,) | 1794 if succs is not None: |
1795 if succs is not None: | 1795 replacements[(oldnode,)] = succs |
1796 replacements[(oldnode,)] = succs | |
1797 if collapsednodes: | 1796 if collapsednodes: |
1798 replacements[tuple(collapsednodes)] = (collapsedas,) | 1797 replacements[tuple(collapsednodes)] = (collapsedas,) |
1799 scmutil.cleanupnodes(repo, replacements, 'rebase', moves, backup=backup) | |
1800 if fm: | 1798 if fm: |
1801 hf = fm.hexfunc | 1799 hf = fm.hexfunc |
1802 fl = fm.formatlist | 1800 fl = fm.formatlist |
1803 fd = fm.formatdict | 1801 fd = fm.formatdict |
1804 changes = {} | 1802 changes = {} |
1805 for oldns, newn in replacements.iteritems(): | 1803 for oldns, newn in replacements.iteritems(): |
1806 for oldn in oldns: | 1804 for oldn in oldns: |
1807 changes[hf(oldn)] = fl([hf(n) for n in newn], name='node') | 1805 changes[hf(oldn)] = fl([hf(n) for n in newn], name='node') |
1808 nodechanges = fd(changes, key="oldnode", value="newnodes") | 1806 nodechanges = fd(changes, key="oldnode", value="newnodes") |
1809 fm.data(nodechanges=nodechanges) | 1807 fm.data(nodechanges=nodechanges) |
1808 if keepf: | |
1809 replacements = {} | |
1810 scmutil.cleanupnodes(repo, replacements, 'rebase', moves, backup=backup) | |
1810 | 1811 |
1811 def pullrebase(orig, ui, repo, *args, **opts): | 1812 def pullrebase(orig, ui, repo, *args, **opts): |
1812 'Call rebase after pull if the latter has been invoked with --rebase' | 1813 'Call rebase after pull if the latter has been invoked with --rebase' |
1813 if opts.get(r'rebase'): | 1814 if opts.get(r'rebase'): |
1814 if ui.configbool('commands', 'rebase.requiredest'): | 1815 if ui.configbool('commands', 'rebase.requiredest'): |