D2728: rebase: also include commit of collapsed commits in single transaction
This revision was automatically updated to reflect the committed changes. Closed by commit rHG67e18654a9eb: rebase: also include commit of collapsed commits in single transaction (authored by martinvonz, committed by ). REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D2728?vs=6768=6984 REVISION DETAIL https://phab.mercurial-scm.org/D2728 AFFECTED FILES hgext/rebase.py tests/test-rebase-transaction.t CHANGE DETAILS diff --git a/tests/test-rebase-transaction.t b/tests/test-rebase-transaction.t --- a/tests/test-rebase-transaction.t +++ b/tests/test-rebase-transaction.t @@ -29,11 +29,9 @@ > |/ > A > EOF -- We should only see two status stored messages. One from the start, one from -- the end. +- We should only see one status stored message. It comes from the start. $ hg rebase --debug -b D -d Z | grep 'status stored' rebase status stored - rebase status stored $ hg tglog o 5: D | @@ -64,7 +62,7 @@ > A > EOF - We should only see two status stored messages. One from the start, one from -- the end. +- cmdutil.commitforceeditor() which forces tr.writepending() $ hg rebase --collapse --debug -b D -d Z | grep 'status stored' rebase status stored rebase status stored @@ -162,12 +160,14 @@ rebasing 1:112478962961 "B" (B) rebasing 3:26805aba1e60 "C" (C) rebasing 5:f585351a92f8 "D" (D tip) + transaction abort! + rollback completed abort: edit failed: false exited with status 1 [255] $ hg tglog o 5: D | - | @ 4: Z + | o 4: Z | | o | 3: C | | @@ -178,9 +178,9 @@ o 0: A $ hg rebase --continue - already rebased 1:112478962961 "B" (B) as e9b22a392ce0 - already rebased 3:26805aba1e60 "C" (C) as e9b22a392ce0 - already rebased 5:f585351a92f8 "D" (D tip) as e9b22a392ce0 + rebasing 1:112478962961 "B" (B) + rebasing 3:26805aba1e60 "C" (C) + rebasing 5:f585351a92f8 "D" (D tip) saved backup bundle to $TESTTMP/collapse-cancel-editor/.hg/strip-backup/112478962961-cb2a9b47-rebase.hg $ hg tglog o 3: Collapsed revision diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -573,16 +573,12 @@ keepbranches=self.keepbranchesf, date=self.date, wctx=self.wctx) else: -dsguard = None -if ui.configbool('rebase', 'singletransaction'): -dsguard = dirstateguard.dirstateguard(repo, 'rebase') -with util.acceptintervention(dsguard): -newnode = concludenode(repo, revtoreuse, p1, self.external, -commitmsg=commitmsg, -extrafn=_makeextrafn(self.extrafns), -editor=editor, -keepbranches=self.keepbranchesf, -date=self.date) +newnode = concludenode(repo, revtoreuse, p1, self.external, +commitmsg=commitmsg, +extrafn=_makeextrafn(self.extrafns), +editor=editor, +keepbranches=self.keepbranchesf, +date=self.date) if newnode is not None: newrev = repo[newnode].rev() for oldrev in self.state: @@ -864,8 +860,7 @@ dsguard = dirstateguard.dirstateguard(repo, 'rebase') with util.acceptintervention(dsguard): rbsrt._performrebase(tr) - -rbsrt._finishrebase() +rbsrt._finishrebase() def _definedestmap(ui, repo, rbsrt, destf=None, srcf=None, basef=None, revf=None, destspace=None): To: martinvonz, #hg-reviewers, durham, quark, yuja Cc: mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D2728: rebase: also include commit of collapsed commits in single transaction
martinvonz added a comment. This is now ready for review again REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D2728 To: martinvonz, #hg-reviewers, durham, quark Cc: mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D2728: rebase: also include commit of collapsed commits in single transaction
martinvonz updated this revision to Diff 6768. martinvonz edited the summary of this revision. REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D2728?vs=6734=6768 REVISION DETAIL https://phab.mercurial-scm.org/D2728 AFFECTED FILES hgext/rebase.py tests/test-rebase-transaction.t CHANGE DETAILS diff --git a/tests/test-rebase-transaction.t b/tests/test-rebase-transaction.t --- a/tests/test-rebase-transaction.t +++ b/tests/test-rebase-transaction.t @@ -29,11 +29,9 @@ > |/ > A > EOF -- We should only see two status stored messages. One from the start, one from -- the end. +- We should only see one status stored message. It comes from the start. $ hg rebase --debug -b D -d Z | grep 'status stored' rebase status stored - rebase status stored $ hg tglog o 5: D | @@ -64,7 +62,7 @@ > A > EOF - We should only see two status stored messages. One from the start, one from -- the end. +- cmdutil.commitforceeditor() which forces tr.writepending() $ hg rebase --collapse --debug -b D -d Z | grep 'status stored' rebase status stored rebase status stored @@ -162,12 +160,14 @@ rebasing 1:112478962961 "B" (B) rebasing 3:26805aba1e60 "C" (C) rebasing 5:f585351a92f8 "D" (D tip) + transaction abort! + rollback completed abort: edit failed: false exited with status 1 [255] $ hg tglog o 5: D | - | @ 4: Z + | o 4: Z | | o | 3: C | | @@ -178,9 +178,9 @@ o 0: A $ hg rebase --continue - already rebased 1:112478962961 "B" (B) as e9b22a392ce0 - already rebased 3:26805aba1e60 "C" (C) as e9b22a392ce0 - already rebased 5:f585351a92f8 "D" (D tip) as e9b22a392ce0 + rebasing 1:112478962961 "B" (B) + rebasing 3:26805aba1e60 "C" (C) + rebasing 5:f585351a92f8 "D" (D tip) saved backup bundle to $TESTTMP/collapse-cancel-editor/.hg/strip-backup/112478962961-cb2a9b47-rebase.hg $ hg tglog o 3: Collapsed revision diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -573,16 +573,12 @@ keepbranches=self.keepbranchesf, date=self.date, wctx=self.wctx) else: -dsguard = None -if ui.configbool('rebase', 'singletransaction'): -dsguard = dirstateguard.dirstateguard(repo, 'rebase') -with util.acceptintervention(dsguard): -newnode = concludenode(repo, revtoreuse, p1, self.external, -commitmsg=commitmsg, -extrafn=_makeextrafn(self.extrafns), -editor=editor, -keepbranches=self.keepbranchesf, -date=self.date) +newnode = concludenode(repo, revtoreuse, p1, self.external, +commitmsg=commitmsg, +extrafn=_makeextrafn(self.extrafns), +editor=editor, +keepbranches=self.keepbranchesf, +date=self.date) if newnode is not None: newrev = repo[newnode].rev() for oldrev in self.state: @@ -864,8 +860,7 @@ dsguard = dirstateguard.dirstateguard(repo, 'rebase') with util.acceptintervention(dsguard): rbsrt._performrebase(tr) - -rbsrt._finishrebase() +rbsrt._finishrebase() def _definedestmap(ui, repo, rbsrt, destf=None, srcf=None, basef=None, revf=None, destspace=None): To: martinvonz, #hg-reviewers, durham, quark Cc: mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D2728: rebase: also include commit of collapsed commits in single transaction
martinvonz planned changes to this revision. martinvonz added a comment. Please don't queue yet. I'm going to add tests. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D2728 To: martinvonz, #hg-reviewers, durham, quark Cc: mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
D2728: rebase: also include commit of collapsed commits in single transaction
martinvonz created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY When rebase.singletransaction is set, we still used to create a second transaction when committing with --collapse. It's simpler to create a single transaction. I don't see a reason to create that second transaction, and neither do the test cases. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D2728 AFFECTED FILES hgext/rebase.py tests/test-rebase-transaction.t CHANGE DETAILS diff --git a/tests/test-rebase-transaction.t b/tests/test-rebase-transaction.t --- a/tests/test-rebase-transaction.t +++ b/tests/test-rebase-transaction.t @@ -32,7 +32,6 @@ - the end. $ hg rebase --debug -b D -d Z | grep 'status stored' rebase status stored - rebase status stored $ hg tglog o 5: D | diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -573,16 +573,12 @@ keepbranches=self.keepbranchesf, date=self.date, wctx=self.wctx) else: -dsguard = None -if ui.configbool('rebase', 'singletransaction'): -dsguard = dirstateguard.dirstateguard(repo, 'rebase') -with util.acceptintervention(dsguard): -newnode = concludenode(repo, revtoreuse, p1, self.external, -commitmsg=commitmsg, -extrafn=_makeextrafn(self.extrafns), -editor=editor, -keepbranches=self.keepbranchesf, -date=self.date) +newnode = concludenode(repo, revtoreuse, p1, self.external, +commitmsg=commitmsg, +extrafn=_makeextrafn(self.extrafns), +editor=editor, +keepbranches=self.keepbranchesf, +date=self.date) if newnode is not None: newrev = repo[newnode].rev() for oldrev in self.state: @@ -864,8 +860,7 @@ dsguard = dirstateguard.dirstateguard(repo, 'rebase') with util.acceptintervention(dsguard): rbsrt._performrebase(tr) - -rbsrt._finishrebase() +rbsrt._finishrebase() def _definedestmap(ui, repo, rbsrt, destf=None, srcf=None, basef=None, revf=None, destspace=None): To: martinvonz, #hg-reviewers Cc: mercurial-devel ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel