rebase: also include commit of collapsed commits in single transaction
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.
Note that in the affected .t file, the test that uses --collapse still
appears to create two transactions (it prints "rebase status stored"
twice). However, only a single transaction is actually created and the
second printout comes from cmdutil.commitforceeditor() that explicitly
calls tr.writepending().
Also note the that we now roll back any commits if the user closes the
commit message editor with an error code (or leaves the message
empty). That might be unfortunate, but it's consistent with how we
behave in the --no-collapse case (if the user passed --edit). If we
want to change that, I think it should be done consistently in a
separate patch.
Differential Revision: https://phab.mercurial-scm.org/D2728
$ hg init a
$ cd a
$ echo 123 > a
$ hg add a
$ hg commit -m "a" -u a
$ cd ..
$ hg init b
$ cd b
$ echo 321 > b
$ hg add b
$ hg commit -m "b" -u b
$ hg pull ../a
pulling from ../a
searching for changes
abort: repository is unrelated
[255]
$ hg pull -f ../a
pulling from ../a
searching for changes
warning: repository is unrelated
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
new changesets 9a79c33a9db3
(run 'hg heads' to see heads, 'hg merge' to merge)
$ hg heads
changeset: 1:9a79c33a9db3
tag: tip
parent: -1:000000000000
user: a
date: Thu Jan 01 00:00:00 1970 +0000
summary: a
changeset: 0:01f8062b2de5
user: b
date: Thu Jan 01 00:00:00 1970 +0000
summary: b
$ cd ..