https://bz.mercurial-scm.org/show_bug.cgi?id=5610
Bug ID: 5610 Summary: rebase transaction with pretxncommit hook regression Product: Mercurial Version: 4.2.1 Hardware: All OS: All Status: UNCONFIRMED Severity: bug Priority: wish Component: Mercurial Assignee: bugzi...@mercurial-scm.org Reporter: henriks...@unity3d.com CC: mercurial-devel@mercurial-scm.org Around cf8ad0e6c0e4, rebase was placed in a single transaction, but it no longer takes failures from e.g. pretxncommit into consideration, essentially breaking `hg rebase --continue` support in this case, unless the hook raises InterventionRequired. Either we should willingly break backcompat with hooks and document that, or relax the exception types caught (I'd be strongly inclined to prefer the latter). Here's a patch to illustrate the behavior: diff --git a/tests/test-rebase-interruptions.t b/tests/test-rebase-interruptions.t --- a/tests/test-rebase-interruptions.t +++ b/tests/test-rebase-interruptions.t @@ -271,4 +271,56 @@ Abort the rebasing: |/ o 0:public 'A' + +Test rebase interrupted by hooks (pretxncommit) + + $ hg up 2 + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ echo F > F + $ hg add F + $ hg ci -m F + $ hg rebase --source 2 --dest 5 --tool internal:other --config 'hooks.pretxncommit=hg log -r $HG_NODE | grep "summary: C"' + rebasing 2:965c486023db "C" + summary: C + rebasing 6:a0b2430ebfb8 "F" (tip) + transaction abort! + rollback completed + abort: pretxncommit hook exited with status 1 + [255] + $ hg tglogp + @ 7:secret 'C' + | + | @ 6:secret 'F' + | | + o | 5:public 'B' + | | + o | 4:public 'E' + | | + o | 3:public 'D' + | | + | o 2:secret 'C' + | | + | o 1:public 'B' + |/ + o 0:public 'A' + + $ hg rebase --continue + already rebased 2:965c486023db "C" as 401ccec5e39f + rebasing 6:a0b2430ebfb8 "F" + saved backup bundle to $TESTTMP/a3/.hg/strip-backup/965c486023db-aa6250e7-backup.hg (glob) + $ hg tglogp + @ 6:secret 'F' + | + o 5:secret 'C' + | + o 4:public 'B' + | + o 3:public 'E' + | + o 2:public 'D' + | + | o 1:public 'B' + |/ + o 0:public 'A' + $ cd .. -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel