rebase: remove some redundant setting of dirstate parents
Since we're now setting the dirstate parents to its correct values
from the beginning (right after `merge.update()`), we usually don't
need to set them again before committing. The only case we need to
care about is when committing collapsed commits. So we can remove the
`setparents()` calls just before committing and add one only for the
collapse case.
Differential Revision: https://phab.mercurial-scm.org/D7828
--- a/hgext/rebase.py Fri Jan 10 14:22:20 2020 -0800
+++ b/hgext/rebase.py Fri Jan 10 21:40:01 2020 -0800
@@ -697,6 +697,7 @@
editor = cmdutil.getcommiteditor(edit=editopt, editform=editform)
revtoreuse = max(self.state)
+ self.wctx.setparents(repo[p1].node(), repo[self.external].node())
newnode = self._concludenode(
revtoreuse, p1, self.external, editor, commitmsg=commitmsg
)
@@ -1433,7 +1434,6 @@
if b'branch' in extra:
branch = extra[b'branch']
- wctx.setparents(repo[p1].node(), repo[p2].node())
memctx = wctx.tomemctx(
commitmsg,
date=date,
@@ -1454,8 +1454,6 @@
if not repo.ui.configbool(b'rebase', b'singletransaction'):
dsguard = dirstateguard.dirstateguard(repo, b'rebase')
with dsguard:
- repo.setparents(repo[p1].node(), repo[p2].node())
-
# Commit might fail if unresolved files exist
newnode = repo.commit(
text=commitmsg, user=user, date=date, extra=extra, editor=editor