@@ -18,7 +18,7 @@ from mercurial import hg, util, repair,
from mercurial import extensions, patch, scmutil, phases, obsolete, error
from mercurial import copies
from mercurial.commands import templateopts
-from mercurial.node import nullrev
+from mercurial.node import nullrev, short
from mercurial.lock import release
from mercurial.i18n import _
import os, errno
@@ -366,9 +366,15 @@ def rebase(ui, repo, **opts):
total = len(sortedstate)
pos = 0
for rev in sortedstate:
+ node = repo[rev].node()
+ desc = '"%s"' % repo[rev].description().split('\n', 1)[0]
+ l = repo.nodetags(node) + repo.nodebookmarks(node)
+ if l:
+ desc += ' (%s)' % ' '.join(l)
+ ui.status(_('rebasing %d:%s %s\n') % (rev, short(node), desc))
pos += 1
if state[rev] == -1:
- ui.progress(_("rebasing"), pos, ("%d:%s" % (rev, repo[rev])),
+ ui.progress(_("rebasing"), pos, ("%d:%s" % (rev, short(node))),
_('changesets'), total)
p1, p2 = defineparents(repo, rev, target, state,
targetancestors)
@@ -402,13 +408,28 @@ def rebase(ui, repo, **opts):
newrev = None
# Update the state
if newrev is not None:
- state[rev] = repo[newrev].rev()
+ r = repo[newrev].rev()
+ state[rev] = r
+ ui.debug(' rebased %d:%s as %s\n' %
+ (rev, short(node), short(newrev)))
else:
- if not collapsef:
- ui.note(_('no changes, revision %d skipped\n') % rev)
- ui.debug('next revision set to %s\n' % p1)
+ if collapsef:
+ ui.status(_(' ignoring empty changeset %d:%s while '
+ 'collapsing\n') % (rev, short(node)))
+ else:
+ ui.status(_(' ignoring empty rebase of %d:%s\n') %
+ (rev, short(node)))
skipped.add(rev)
+ ui.debug(' next revision set to %s\n' % p1)
state[rev] = p1
+ elif state[rev] == nullmerge:
+ ui.status(_(' skipping null merge of %d:%s\n') %
+ (rev, short(node)))
+ elif state[rev] == revignored:
+ ui.status(_(' skipping ignored %d:%s\n') % (rev, short(node)))
+ else:
+ ui.status(_(' skipping %d:%s already rebased to %s\n') %
+ (rev, short(node), repo[state[rev]]))
ui.progress(_('rebasing'), None)
ui.note(_('rebase merging completed\n'))
@@ -686,7 +707,8 @@ def updatemq(repo, state, skipped, **opt
for rev in sorted(mqrebase, reverse=True):
if rev not in skipped:
name, isgit = mqrebase[rev]
- repo.ui.debug('import mq patch %d (%s)\n' % (state[rev], name))
+ repo.ui.status(_('updating mq patch %d (%s)\n') %
+ (state[rev], name))
mq.qimport(repo, (), patchname=name, git=isgit,
rev=[str(state[rev])])
else:
@@ -37,6 +37,9 @@ bookmark list
rebase
$ hg rebase -s two -d one
+ rebasing 2:db815d6d32e6 "2"
+ skipping null merge of 2:db815d6d32e6
+ rebasing 3:2ae46b1d99a7 "3" (tip two)
saved backup bundle to $TESTTMP/.hg/strip-backup/*-backup.hg (glob)
$ hg log
@@ -146,6 +146,9 @@ Test that rewriting leaving instability
stabilise
$ hg rebase -r 'unstable()' -d .
+ rebasing 6:b346ab9a313d "c"
+ skipping null merge of 6:b346ab9a313d
+ rebasing 9:c13eb81022ca "f"
$ hg up tip -q
Test dropping of changeset on the top of the stack
@@ -207,6 +207,8 @@ automated commit like rebase/transplant
$ hg commit -m '#4'
$ hg rebase -s 1 -d 2 --keep
+ rebasing 1:72518492caa6 "#1"
+ rebasing 4:07d6153b5c04 "#4" (tip)
#if windows
$ hg status -A large1
large1: * (glob)
@@ -495,6 +497,7 @@ it is aborted by conflict.
$ hg rebase -s 1 -d 3 --keep --config ui.interactive=True <<EOF
> o
> EOF
+ rebasing 1:72518492caa6 "#1"
largefile large1 has a merge conflict
ancestor was 4669e532d5b2c093a78eca010077e708a071bb64
keep (l)ocal e5bb990443d6a92aaf7223813720f7566c9dd05b or
@@ -518,6 +521,8 @@ the 1st commit of resuming.
$ hg rebase --continue --config ui.interactive=True <<EOF
> c
> EOF
+ rebasing 1:72518492caa6 "#1"
+ rebasing 4:07d6153b5c04 "#4"
local changed .hglf/large1 which remote deleted
use (c)hanged version or (d)elete? c
@@ -1173,6 +1173,7 @@ rebased or not.
adding file changes
added 1 changesets with 2 changes to 2 files (+1 heads)
0 largefiles cached
+ rebasing 8:f574fb32bb45 "modify normal file largefile in repo d"
Invoking status precommit hook
M sub/normal4
M sub2/large6
@@ -1230,6 +1231,7 @@ rebased or not.
added 1 changesets with 2 changes to 2 files (+1 heads)
(run 'hg heads' to see heads, 'hg merge' to merge)
$ hg rebase
+ rebasing 8:f574fb32bb45 "modify normal file largefile in repo d"
Invoking status precommit hook
M sub/normal4
M sub2/large6
@@ -61,6 +61,8 @@
Conflicting rebase:
$ hg rebase -s 3 -d 2
+ rebasing 3:3163e20567cc "L1"
+ rebasing 4:46f0b057b5c0 "L2" (tip)
merging common
warning: conflicts during merge.
merging common incomplete! (edit conflicts, then use 'hg resolve --mark')
@@ -89,6 +91,8 @@ forgotten) by Mercurial earlier than 2.7
earlier than 2.7 by renaming ".hg/rebasestate" temporarily.
$ hg rebase -s 3 -d 2
+ rebasing 3:3163e20567cc "L1"
+ rebasing 4:46f0b057b5c0 "L2" (tip)
merging common
warning: conflicts during merge.
merging common incomplete! (edit conflicts, then use 'hg resolve --mark')
@@ -157,6 +161,9 @@ Rebase and abort without generating new
o 0:public 'A'
$ hg rebase -b 4 -d 2
+ rebasing 3:a6484957d6b9 "B bis"
+ ignoring empty rebase of 3:a6484957d6b9
+ rebasing 4:145842775fec "C1" (tip)
merging c
warning: conflicts during merge.
merging c incomplete! (edit conflicts, then use 'hg resolve --mark')
@@ -216,6 +223,9 @@ rebase abort should not leave working co
$ hg rebase -d master -r foo
+ rebasing 1:d2ae7f538514 "b"
+ skipping null merge of 1:d2ae7f538514
+ rebasing 3:6c0f977a22d8 "C" (tip foo)
merging c
warning: conflicts during merge.
merging c incomplete! (edit conflicts, then use 'hg resolve --mark')
@@ -74,6 +74,9 @@ Test deleting divergent bookmarks from d
o 0: 'A' bookmarks: Y@diverge
$ hg rebase -s Y -d 3
+ rebasing 1:6c81ed0049f8 "B" (X)
+ skipping null merge of 1:6c81ed0049f8
+ rebasing 2:49cb3485fa0c "C" (Y Z)
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -95,6 +98,7 @@ Do not try to keep active but deleted di
$ hg book W@diverge
$ hg rebase -s W -d .
+ rebasing 3:41acb9dca9eb "D" (tip W)
saved backup bundle to $TESTTMP/a4/.hg/strip-backup/*-backup.hg (glob)
$ hg bookmarks
@@ -112,6 +116,8 @@ Keep bookmarks to the correct rebased ch
$ hg up -q Z
$ hg rebase -s 1 -d 3
+ rebasing 1:6c81ed0049f8 "B" (X)
+ rebasing 2:49cb3485fa0c "C" (Y Z)
saved backup bundle to $TESTTMP/a2/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -133,6 +139,8 @@ Keep active bookmark on the correct chan
$ hg up -q X
$ hg rebase -d W
+ rebasing 1:6c81ed0049f8 "B" (X)
+ rebasing 2:49cb3485fa0c "C" (Y Z)
saved backup bundle to $TESTTMP/a3/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -162,6 +170,7 @@ rebase --continue with bookmarks present
$ hg up 3
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg rebase
+ rebasing 3:3d5fa227f4b5 "C" (Y Z)
merging c
warning: conflicts during merge.
merging c incomplete! (edit conflicts, then use 'hg resolve --mark')
@@ -171,6 +180,7 @@ rebase --continue with bookmarks present
$ hg resolve --mark c
(no more unresolved files)
$ hg rebase --continue
+ rebasing 3:3d5fa227f4b5 "C" (Y Z)
saved backup bundle to $TESTTMP/a3/.hg/strip-backup/3d5fa227f4b5-backup.hg (glob)
$ hg tglog
@ 4: 'C' bookmarks: Y Z
@@ -198,4 +208,7 @@ as --rev arguments (issue3950)
$ hg book bisect
$ hg update -q Y
$ hg rebase -r '"bisect"^^::"bisect"^' -r bisect -d Z
+ rebasing 5:345c90f326a4 "bisect"
+ rebasing 6:f677a2907404 "bisect2"
+ rebasing 7:325c16001345 "bisect3" (tip bisect)
saved backup bundle to $TESTTMP/a3/.hg/strip-backup/345c90f326a4-backup.hg (glob)
@@ -105,6 +105,12 @@ Rebase part of branch2 (5-6) onto branch
0: 'A'
$ hg rebase -s 5 -d 8
+ rebasing 1:63379ac49655 "branch1"
+ skipping null merge of 1:63379ac49655
+ rebasing 2:0a03079c47fd "B"
+ skipping null merge of 2:0a03079c47fd
+ rebasing 5:635859577d0b "D"
+ rebasing 6:5097051d331d "E"
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
$ hg branches
@@ -166,6 +172,9 @@ Rebase head of branch3 (8) onto branch2
o 0: 'A'
$ hg rebase -s 8 -d 6
+ rebasing 7:653b9feb4616 "branch3"
+ skipping null merge of 7:653b9feb4616
+ rebasing 8:4666b71e8e32 "F" (tip)
saved backup bundle to $TESTTMP/a2/.hg/strip-backup/*-backup.hg (glob)
$ hg branches
@@ -230,6 +239,9 @@ Rebase entire branch3 (7-8) onto branch2
o 0: 'A'
$ hg rebase -s 7 -d 6
+ rebasing 7:653b9feb4616 "branch3"
+ ignoring empty rebase of 7:653b9feb4616
+ rebasing 8:4666b71e8e32 "F" (tip)
saved backup bundle to $TESTTMP/a3/.hg/strip-backup/*-backup.hg (glob)
$ hg branches
@@ -475,6 +487,8 @@ Turn most changeset public
> true
> EOF
$ HGEDITOR="sh $TESTTMP/checkeditform.sh" hg rebase --dest 7 --source 5 -e
+ rebasing 5:361a99976cc9 "F"
HGEDITFORM=rebase.merge
+ rebasing 8:326cfedc031c "I" (tip)
HGEDITFORM=rebase.normal
saved backup bundle to $TESTTMP/a3/c4/.hg/strip-backup/*-backup.hg (glob)
@@ -65,6 +65,8 @@ Rebasing B onto E - check keep: and phas
o 0:draft 'A'
$ hg rebase -s 1 -d 4 --keep
+ rebasing 1:27547f69f254 "B"
+ rebasing 2:965c486023db "C"
merging A
warning: conflicts during merge.
merging A incomplete! (edit conflicts, then use 'hg resolve --mark')
@@ -78,6 +80,9 @@ Solve the conflict and go on:
$ hg resolve -m A
(no more unresolved files)
$ hg rebase --continue
+ rebasing 1:27547f69f254 "B"
+ skipping 1:27547f69f254 already rebased to 45396c49d53b
+ rebasing 2:965c486023db "C"
$ hg tglog
o 7:secret 'C'
@@ -119,6 +124,7 @@ Rebase F onto E - check keepbranches:
o 0:draft 'A'
$ hg rebase -s 5 -d 4 --keepbranches
+ rebasing 5:01e6ebbd8272 "F" (tip)
merging A
warning: conflicts during merge.
merging A incomplete! (edit conflicts, then use 'hg resolve --mark')
@@ -132,6 +138,7 @@ Solve the conflict and go on:
$ hg resolve -m A
(no more unresolved files)
$ hg rebase --continue
+ rebasing 5:01e6ebbd8272 "F" (tip)
saved backup bundle to $TESTTMP/a2/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -59,6 +59,12 @@ Rebasing B onto H and collapsing changes
> echo "edited manually" >> \$1
> EOF
$ HGEDITOR="sh $TESTTMP/editor.sh" hg rebase --collapse --keepbranches -e
+ rebasing 1:42ccdea3bb16 "B"
+ ignoring empty changeset 1:42ccdea3bb16 while collapsing
+ rebasing 2:5fddd98957c8 "C"
+ ignoring empty changeset 2:5fddd98957c8 while collapsing
+ rebasing 3:32af7686d403 "D"
+ ignoring empty changeset 3:32af7686d403 while collapsing
==== before editing
Collapsed revision
* B
@@ -113,6 +119,10 @@ Rebasing E onto H:
$ hg phase --force --secret 6
$ hg rebase --source 4 --collapse
+ rebasing 4:9520eea781bc "E"
+ ignoring empty changeset 4:9520eea781bc while collapsing
+ rebasing 6:eea13746799a "G"
+ ignoring empty changeset 6:eea13746799a while collapsing
saved backup bundle to $TESTTMP/a2/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -153,6 +163,10 @@ Rebasing G onto H with custom message:
> true
> EOF
$ HGEDITOR="sh $TESTTMP/checkeditform.sh" hg rebase --source 4 --collapse -m 'custom message' -e
+ rebasing 4:9520eea781bc "E"
+ ignoring empty changeset 4:9520eea781bc while collapsing
+ rebasing 6:eea13746799a "G"
+ ignoring empty changeset 6:eea13746799a while collapsing
HGEDITFORM=rebase.collapse
saved backup bundle to $TESTTMP/a3/.hg/strip-backup/*-backup.hg (glob)
@@ -261,6 +275,14 @@ Rebase and collapse - more than one exte
Rebase and collapse - E onto H:
$ hg rebase -s 4 --collapse # root (4) is not a merge
+ rebasing 1:27547f69f254 "B"
+ skipping null merge of 1:27547f69f254
+ rebasing 4:8a5212ebc852 "E"
+ ignoring empty changeset 4:8a5212ebc852 while collapsing
+ rebasing 5:7f219660301f "F"
+ ignoring empty changeset 5:7f219660301f while collapsing
+ rebasing 6:c772a8b2dc17 "G"
+ ignoring empty changeset 6:c772a8b2dc17 while collapsing
saved backup bundle to $TESTTMP/b1/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -409,7 +431,17 @@ Rebase and collapse - E onto I:
$ cd c1
$ hg rebase -s 4 --collapse # root (4) is not a merge
+ rebasing 1:27547f69f254 "B"
+ skipping null merge of 1:27547f69f254
+ rebasing 4:8a5212ebc852 "E"
+ ignoring empty changeset 4:8a5212ebc852 while collapsing
+ rebasing 5:dca5924bb570 "F"
merging E
+ ignoring empty changeset 5:dca5924bb570 while collapsing
+ rebasing 6:55a44ad28289 "G"
+ ignoring empty changeset 6:55a44ad28289 while collapsing
+ rebasing 7:417d3b648079 "H"
+ ignoring empty changeset 7:417d3b648079 while collapsing
saved backup bundle to $TESTTMP/c1/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -499,6 +531,14 @@ Rebase and collapse - B onto F:
$ cd d1
$ hg rebase -s 1 --collapse
+ rebasing 1:27547f69f254 "B"
+ ignoring empty changeset 1:27547f69f254 while collapsing
+ rebasing 2:f838bfaca5c7 "C"
+ ignoring empty changeset 2:f838bfaca5c7 while collapsing
+ rebasing 3:7bbcd6078bcc "D"
+ ignoring empty changeset 3:7bbcd6078bcc while collapsing
+ rebasing 4:0a42590ed746 "E"
+ ignoring empty changeset 4:0a42590ed746 while collapsing
saved backup bundle to $TESTTMP/d1/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -583,6 +623,8 @@ Interactions between collapse and keepbr
o 0: 'A'
$ hg rebase -s 5 -d 4
+ rebasing 5:fbfb97b1089a "E" (tip)
+ ignoring empty rebase of 5:fbfb97b1089a
saved backup bundle to $TESTTMP/e/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@ 4: 'E'
@@ -634,11 +676,15 @@ Rebase, collapse and copies
o 0: 'add'
$ hg rebase --collapse -d 1
+ rebasing 2:6e7340ee38c0 "move1"
merging a and d to d
merging b and e to e
merging c and f to f
+ ignoring empty changeset 2:6e7340ee38c0 while collapsing
+ rebasing 3:338e84e2e558 "move2" (tip)
merging f and c to c
merging e and g to g
+ ignoring empty changeset 3:338e84e2e558 while collapsing
saved backup bundle to $TESTTMP/copies/.hg/strip-backup/*-backup.hg (glob)
$ hg st
$ hg st --copies --change tip
@@ -678,6 +724,10 @@ Test collapsing a middle revision in-pla
Test collapsing in place
$ hg rebase --collapse -b . -d 0
+ rebasing 1:1352765a01d4 "change"
+ ignoring empty changeset 1:1352765a01d4 while collapsing
+ rebasing 2:64b456429f67 "Collapsed revision" (tip)
+ ignoring empty changeset 2:64b456429f67 while collapsing
saved backup bundle to $TESTTMP/copies/.hg/strip-backup/*-backup.hg (glob)
$ hg st --change tip --copies
M a
@@ -768,6 +818,10 @@ Test collapsing changes that add then re
adding b
$ hg book foo
$ hg rebase -d 0 -r "1::2" --collapse -m collapsed
+ rebasing 1:6d8d9f24eec3 "a"
+ ignoring empty changeset 1:6d8d9f24eec3 while collapsing
+ rebasing 2:1cc73eca5ecc "b" (tip foo)
+ ignoring empty changeset 2:1cc73eca5ecc while collapsing
saved backup bundle to $TESTTMP/collapseaddremove/.hg/strip-backup/*-backup.hg (glob)
$ hg log -G --template "{rev}: '{desc}' {bookmarks}"
@ 1: 'collapsed' foo
@@ -61,6 +61,8 @@ Try to call --continue:
Conflicting rebase:
$ hg rebase -s 3 -d 2
+ rebasing 3:3163e20567cc "L1"
+ rebasing 4:46f0b057b5c0 "L2"
merging common
warning: conflicts during merge.
merging common incomplete! (edit conflicts, then use 'hg resolve --mark')
@@ -70,6 +72,9 @@ Conflicting rebase:
Try to continue without solving the conflict:
$ hg rebase --continue
+ rebasing 3:3163e20567cc "L1"
+ skipping 3:3163e20567cc already rebased to 3e046f2ecedb
+ rebasing 4:46f0b057b5c0 "L2"
abort: unresolved merge conflicts (see hg help resolve)
[255]
@@ -79,6 +84,10 @@ Conclude rebase:
$ hg resolve -m common
(no more unresolved files)
$ hg rebase --continue
+ rebasing 3:3163e20567cc "L1"
+ skipping 3:3163e20567cc already rebased to 3e046f2ecedb
+ rebasing 4:46f0b057b5c0 "L2"
+ rebasing 5:8029388f38dc "L3" (mybook)
saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -212,6 +221,15 @@ Check that the right ancestors is used w
$ hg rebase -s9 -d2 --debug # use debug to really check merge base used
rebase onto 2 starting from e31216eec445
+ rebasing 3:8a951942e016 "added f2.txt"
+ skipping null merge of 3:8a951942e016
+ rebasing 4:12e8ec6bb010 "created f2 branch"
+ skipping null merge of 4:12e8ec6bb010
+ rebasing 6:400110238667 "changed f2 on f2"
+ skipping null merge of 6:400110238667
+ rebasing 8:8e4e2c1a07ae "bad merge"
+ skipping null merge of 8:8e4e2c1a07ae
+ rebasing 9:e31216eec445 "more changes to f1"
rebasing: 9:e31216eec445 5/6 changesets (83.33%)
future parents are 2 and -1
rebase status stored
@@ -235,6 +253,8 @@ Check that the right ancestors is used w
getting f1.txt
updating: f1.txt 1/1 files (100.00%)
f1.txt
+ rebased 9:e31216eec445 as 19c888675e13
+ rebasing 10:2f2496ddf49d "merge" (tip)
rebasing: 10:2f2496ddf49d 6/6 changesets (100.00%)
future parents are 11 and 7
rebase status stored
@@ -249,6 +269,7 @@ Check that the right ancestors is used w
getting f1.txt
updating: f1.txt 1/1 files (100.00%)
f1.txt
+ rebased 10:2f2496ddf49d as 2a7f09cac94c
rebase merging completed
update back to initial working directory parent
resolving manifests
@@ -48,6 +48,11 @@ Rebasing D onto H detaching from C:
$ hg phase --force --secret 3
$ hg rebase -s 3 -d 7
+ rebasing 1:42ccdea3bb16 "B"
+ skipping null merge of 1:42ccdea3bb16
+ rebasing 2:5fddd98957c8 "C"
+ skipping null merge of 2:5fddd98957c8
+ rebasing 3:32af7686d403 "D"
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
$ hg log -G --template "{rev}:{phase} '{desc}' {branches}\n"
@@ -99,6 +104,10 @@ Rebasing C onto H detaching from B:
o 0: 'A'
$ hg rebase -s 2 -d 7
+ rebasing 1:42ccdea3bb16 "B"
+ skipping null merge of 1:42ccdea3bb16
+ rebasing 2:5fddd98957c8 "C"
+ rebasing 3:32af7686d403 "D"
saved backup bundle to $TESTTMP/a2/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -151,6 +160,9 @@ Rebasing B onto H using detach (same as
o 0: 'A'
$ hg rebase -s 1 -d 7
+ rebasing 1:42ccdea3bb16 "B"
+ rebasing 2:5fddd98957c8 "C"
+ rebasing 3:32af7686d403 "D"
saved backup bundle to $TESTTMP/a3/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -205,6 +217,12 @@ Rebasing C onto H detaching from B and c
o 0: 'A'
$ hg rebase --collapse -s 2 -d 7
+ rebasing 1:42ccdea3bb16 "B"
+ skipping null merge of 1:42ccdea3bb16
+ rebasing 2:5fddd98957c8 "C"
+ ignoring empty changeset 2:5fddd98957c8 while collapsing
+ rebasing 3:32af7686d403 "D"
+ ignoring empty changeset 3:32af7686d403 while collapsing
saved backup bundle to $TESTTMP/a4/.hg/strip-backup/*-backup.hg (glob)
$ hg log -G --template "{rev}:{phase} '{desc}' {branches}\n"
@@ -264,6 +282,11 @@ Rebasing across null as ancestor
o 0: 'A'
$ hg rebase -s 1 -d tip
+ rebasing 0:cd010b8cd998 "A"
+ skipping null merge of 0:cd010b8cd998
+ rebasing 1:42ccdea3bb16 "B"
+ rebasing 2:5fddd98957c8 "C"
+ rebasing 3:32af7686d403 "D"
saved backup bundle to $TESTTMP/a5/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -287,6 +310,10 @@ Rebasing across null as ancestor
$ hg rebase -d 5 -s 7
+ rebasing 6:706a12c9739a "B"
+ skipping null merge of 6:706a12c9739a
+ rebasing 7:13547172c9c0 "C"
+ rebasing 8:4e27a76c371a "D" (tip)
saved backup bundle to $TESTTMP/a5/.hg/strip-backup/13547172c9c0-backup.hg (glob)
$ hg tglog
o 8: 'D'
@@ -325,6 +352,16 @@ Verify that target is not selected as ex
$ hg ci -m "J"
$ hg rebase -s 8 -d 7 --collapse --config ui.merge=internal:other
+ rebasing 4:9520eea781bc "E"
+ skipping null merge of 4:9520eea781bc
+ rebasing 6:eea13746799a "G"
+ skipping null merge of 6:eea13746799a
+ rebasing 8:9790e768172d "I"
+ ignoring empty changeset 8:9790e768172d while collapsing
+ rebasing 9:5d7b11f5fb97 "Merge"
+ ignoring empty changeset 9:5d7b11f5fb97 while collapsing
+ rebasing 10:9427d4d5af81 "J" (tip)
+ ignoring empty changeset 10:9427d4d5af81 while collapsing
saved backup bundle to $TESTTMP/a6/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -368,6 +405,13 @@ Ensure --continue restores a correct sta
adding H
$ hg phase --force --secret 8
$ hg rebase -s 8 -d 7 --config ui.merge=internal:fail
+ rebasing 1:42ccdea3bb16 "B"
+ skipping null merge of 1:42ccdea3bb16
+ rebasing 2:5fddd98957c8 "C"
+ skipping null merge of 2:5fddd98957c8
+ rebasing 3:32af7686d403 "D"
+ skipping null merge of 3:32af7686d403
+ rebasing 8:6215fafa5447 "H2" (tip)
merging H
warning: conflicts during merge.
merging H incomplete! (edit conflicts, then use 'hg resolve --mark')
@@ -376,6 +420,14 @@ Ensure --continue restores a correct sta
$ hg resolve --all -t internal:local
(no more unresolved files)
$ hg rebase -c
+ rebasing 1:42ccdea3bb16 "B"
+ skipping null merge of 1:42ccdea3bb16
+ rebasing 2:5fddd98957c8 "C"
+ skipping null merge of 2:5fddd98957c8
+ rebasing 3:32af7686d403 "D"
+ skipping null merge of 3:32af7686d403
+ rebasing 8:6215fafa5447 "H2" (tip)
+ ignoring empty rebase of 8:6215fafa5447
saved backup bundle to $TESTTMP/a7/.hg/strip-backup/6215fafa5447-backup.hg (glob)
$ hg log -G --template "{rev}:{phase} '{desc}' {branches}\n"
@ 7:draft 'H'
@@ -57,6 +57,8 @@ Changes during an interruption - continu
Rebasing B onto E:
$ hg rebase -s 1 -d 4
+ rebasing 1:27547f69f254 "B"
+ rebasing 2:965c486023db "C"
merging A
warning: conflicts during merge.
merging A incomplete! (edit conflicts, then use 'hg resolve --mark')
@@ -93,6 +95,9 @@ Force this commit onto secret phase
Resume the rebasing:
$ hg rebase --continue
+ rebasing 1:27547f69f254 "B"
+ skipping 1:27547f69f254 already rebased to 45396c49d53b
+ rebasing 2:965c486023db "C"
merging A
warning: conflicts during merge.
merging A incomplete! (edit conflicts, then use 'hg resolve --mark')
@@ -107,6 +112,9 @@ Solve the conflict and go on:
(no more unresolved files)
$ hg rebase --continue
+ rebasing 1:27547f69f254 "B"
+ skipping 1:27547f69f254 already rebased to 45396c49d53b
+ rebasing 2:965c486023db "C"
warning: new changesets detected on source branch, not stripping
$ hg tglogp
@@ -148,6 +156,8 @@ Changes during an interruption - abort:
Rebasing B onto E:
$ hg rebase -s 1 -d 4
+ rebasing 1:27547f69f254 "B"
+ rebasing 2:965c486023db "C"
merging A
warning: conflicts during merge.
merging A incomplete! (edit conflicts, then use 'hg resolve --mark')
@@ -219,6 +229,8 @@ Changes during an interruption - abort (
Rebasing B onto E:
$ hg rebase -s 1 -d 4
+ rebasing 1:27547f69f254 "B"
+ rebasing 2:965c486023db "C"
merging A
warning: conflicts during merge.
merging A incomplete! (edit conflicts, then use 'hg resolve --mark')
@@ -52,6 +52,7 @@ Rebase with no arguments - single revisi
$ hg up -q -C 2
$ hg rebase
+ rebasing 2:87c180a611f2 "l1"
saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -110,6 +111,8 @@ Rebase with no arguments - single revisi
$ hg up -q -C 3
$ hg rebase
+ rebasing 2:87c180a611f2 "l1"
+ rebasing 3:1ac923b736ef "l2"
saved backup bundle to $TESTTMP/b/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -50,6 +50,10 @@ already has one local mq patch
$ hg up -q -C qtip
$ hg rebase
+ rebasing 2:* "P0" (p0.patch qbase) (glob)
+ rebasing 3:* "P1" (p1.patch qtip) (glob)
+ ignoring empty rebase of 3:* (glob)
+ updating mq patch 5 (p0.patch)
saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -107,6 +111,12 @@ already has one local mq patch
$ hg up -q qtip
$ HGMERGE=internal:fail hg rebase
+ rebasing 1:b4bffa6e4776 "r1" (1.diff qbase)
+ ignoring empty rebase of 1:b4bffa6e4776
+ rebasing 2:c0fd129beb01 "r2" (2.diff)
+ rebasing 3:6ff5b8feed8e "r3" (3.diff)
+ ignoring empty rebase of 3:6ff5b8feed8e
+ rebasing 4:094320fec554 "r4" (4.diff)
unresolved conflicts (see hg resolve, then hg rebase --continue)
[1]
@@ -114,6 +124,19 @@ already has one local mq patch
(no more unresolved files)
$ hg rebase --continue
+ rebasing 1:b4bffa6e4776 "r1" (1.diff qbase)
+ skipping 1:b4bffa6e4776 already rebased to 057f55ff8f44
+ rebasing 2:c0fd129beb01 "r2" (2.diff)
+ skipping 2:c0fd129beb01 already rebased to 1660ab13ce9a
+ rebasing 3:6ff5b8feed8e "r3" (3.diff)
+ skipping 3:6ff5b8feed8e already rebased to 1660ab13ce9a
+ rebasing 4:094320fec554 "r4" (4.diff)
+ ignoring empty rebase of 4:094320fec554
+ rebasing 5:681a378595ba "r5" (5.diff)
+ rebasing 6:512a1f24768b "r6" (6.diff qtip)
+ ignoring empty rebase of 6:512a1f24768b
+ updating mq patch 14 (5.diff)
+ updating mq patch 13 (2.diff)
saved backup bundle to $TESTTMP/b/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -59,6 +59,7 @@ Rebase - same thing, but mq patch is def
Rebase - generate a conflict:
$ hg rebase -s 2 -d 1
+ rebasing 2:* "P0" (f.patch qbase) (glob)
merging f
warning: conflicts during merge.
merging f incomplete! (edit conflicts, then use 'hg resolve --mark')
@@ -71,6 +72,8 @@ Fix the 1st conflict:
$ hg resolve -m f
(no more unresolved files)
$ hg rebase -c
+ rebasing 2:* "P0" (f.patch qbase) (glob)
+ rebasing 3:* "P1" (f2.patch qtip tip) (glob)
merging f
warning: conflicts during merge.
merging f incomplete! (edit conflicts, then use 'hg resolve --mark')
@@ -83,6 +86,11 @@ Fix the 2nd conflict:
$ hg resolve -m f
(no more unresolved files)
$ hg rebase -c
+ rebasing 2:* "P0" (f.patch qbase) (glob)
+ skipping 2:* already rebased to * (glob)
+ rebasing 3:* "P1" (f2.patch qtip) (glob)
+ updating mq patch 5 (f2.patch)
+ updating mq patch 4 (f.patch)
saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -194,6 +202,10 @@ Adding one git-style patch and one norma
Rebase the applied mq patches:
$ hg rebase -s 2 -d 1
+ rebasing 2:* "P0 (git)" (f_git.patch qbase) (glob)
+ rebasing 3:* "P1" (f.patch qtip tip) (glob)
+ updating mq patch 5 (f.patch)
+ updating mq patch 4 (f_git.patch)
saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob)
$ hg qci -m 'save patch state'
@@ -69,6 +69,10 @@
Branch name containing a dash (issue3181)
$ hg rebase -b dev-two -d dev-one --keepbranches
+ rebasing 5:24b6387c8c8c "F"
+ rebasing 6:eea13746799a "G"
+ rebasing 7:02de42196ebe "H"
+ rebasing 9:cb039b7cae8e "dev-two named branch" (tip)
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -93,6 +97,18 @@ Branch name containing a dash (issue3181
o 0: 'A'
$ hg rebase -s dev-one -d 0 --keepbranches
+ rebasing 1:42ccdea3bb16 "B"
+ skipping null merge of 1:42ccdea3bb16
+ rebasing 2:5fddd98957c8 "C"
+ skipping null merge of 2:5fddd98957c8
+ rebasing 3:32af7686d403 "D"
+ skipping null merge of 3:32af7686d403
+ rebasing 5:643fc9128048 "dev-one named branch"
+ ignoring empty rebase of 5:643fc9128048
+ rebasing 6:24de4aff8e28 "F"
+ rebasing 7:4b988a958030 "G"
+ rebasing 8:31d0e4ba75e6 "H"
+ rebasing 9:9e70cd31750f "dev-two named branch" (tip)
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -143,6 +159,10 @@ Branch name containing a dash (issue3181
o 0: 'A'
$ hg rebase -b 'max(branch("dev-two"))' -d dev-one --keepbranches
+ rebasing 5:77854864208c "F"
+ rebasing 6:63b4f9c788a1 "G"
+ rebasing 7:87861e68abd3 "H"
+ rebasing 8:ec00d4e0efca "dev-two named branch"
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -167,6 +187,18 @@ Branch name containing a dash (issue3181
o 0: 'A'
$ hg rebase -s 'max(branch("dev-one"))' -d 0 --keepbranches
+ rebasing 1:42ccdea3bb16 "B"
+ skipping null merge of 1:42ccdea3bb16
+ rebasing 2:5fddd98957c8 "C"
+ skipping null merge of 2:5fddd98957c8
+ rebasing 3:32af7686d403 "D"
+ skipping null merge of 3:32af7686d403
+ rebasing 5:643fc9128048 "dev-one named branch"
+ ignoring empty rebase of 5:643fc9128048
+ rebasing 6:05584c618d45 "F"
+ rebasing 7:471695f5257d "G"
+ rebasing 8:8382a539a2df "H"
+ rebasing 9:11f718458b32 "dev-two named branch" (tip)
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -192,6 +224,9 @@ Branch name containing a dash (issue3181
Rebasing descendant onto ancestor across different named branches
$ hg rebase -s 1 -d 8 --keepbranches
+ rebasing 1:42ccdea3bb16 "B"
+ rebasing 2:5fddd98957c8 "C"
+ rebasing 3:32af7686d403 "D"
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -218,6 +253,10 @@ Rebasing descendant onto ancestor across
[255]
$ hg rebase -s 5 -d 4
+ rebasing 5:32d3b0de7f37 "dev-two named branch"
+ rebasing 6:580fcd9fd48f "B"
+ rebasing 7:32aba0402ed2 "C"
+ rebasing 8:e4787b575338 "D" (tip)
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -248,6 +287,11 @@ Reopen branch by rebase
$ hg ci -m 'close b' --close
$ hg rebase -b 8 -d b
reopening closed branch head ea9de14a36c6
+ rebasing 4:86693275b2ef "H"
+ rebasing 5:2149726d0970 "dev-two named branch"
+ rebasing 6:81e55225e95d "B"
+ rebasing 7:09eda3dc3195 "C"
+ rebasing 8:31298fc9d159 "D"
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
$ cd ..
@@ -302,6 +346,7 @@ rebase 'b1' on top of the tip of the bra
$ cd ../case2
$ hg up -qr 1
$ hg rebase
+ rebasing 1:40039acb7ca5 "b1"
saved backup bundle to $TESTTMP/case2/.hg/strip-backup/40039acb7ca5-backup.hg (glob)
$ hg tglog
@ 3: 'b1' b
@@ -38,7 +38,9 @@
o 0: 'A'
$ hg rebase -s 1 -d 3
+ rebasing 1:0f4f7cb4f549 "B"
merging a
+ rebasing 2:30ae917c0e4f "C"
merging a
saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-backup.hg (glob)
@@ -125,10 +127,16 @@ wrong.
Full rebase all the way back from branching point:
$ hg rebase -r 'only(dev,default)' -d default
+ rebasing 1:1d1a643d390e "dev: create branch"
+ ignoring empty rebase of 1:1d1a643d390e
+ rebasing 2:ec2c14fb2984 "dev: f-dev stuff"
+ rebasing 4:4b019212aaf6 "dev: merge default"
remote changed f-default which local deleted
use (c)hanged version or leave (d)eleted? c
+ rebasing 6:9455ee510502 "dev: merge default"
local changed f-default which remote deleted
use (c)hanged version or (d)elete? c
+ ignoring empty rebase of 6:9455ee510502
saved backup bundle to $TESTTMP/ancestor-merge/.hg/strip-backup/1d1a643d390e-backup.hg (glob)
$ hg tglog
o 5: 'dev: merge default'
@@ -149,10 +157,16 @@ Grafty cherry picking rebasing:
$ hg phase -fdr0:
$ hg rebase -r 'children(only(dev,default))' -d default
+ rebasing 1:1d1a643d390e "dev: create branch"
+ skipping null merge of 1:1d1a643d390e
+ rebasing 2:ec2c14fb2984 "dev: f-dev stuff"
+ rebasing 4:4b019212aaf6 "dev: merge default"
remote changed f-default which local deleted
use (c)hanged version or leave (d)eleted? c
+ rebasing 6:9455ee510502 "dev: merge default"
local changed f-default which remote deleted
use (c)hanged version or (d)elete? c
+ ignoring empty rebase of 6:9455ee510502
saved backup bundle to $TESTTMP/ancestor-merge-2/.hg/strip-backup/ec2c14fb2984-backup.hg (glob)
$ hg tglog
o 6: 'dev: merge default'
@@ -222,6 +236,7 @@ Test order of parents of rebased merged
o 0: 'common'
$ hg rebase -r 4 -d 2
+ rebasing 4:6990226659be "merge p1 3=outside p2 1=ancestor"
saved backup bundle to $TESTTMP/parentorder/.hg/strip-backup/6990226659be-backup.hg (glob)
$ hg tip
changeset: 5:cca50676b1c5
@@ -233,6 +248,7 @@ Test order of parents of rebased merged
summary: merge p1 3=outside p2 1=ancestor
$ hg rebase -r 4 -d 2
+ rebasing 4:a57575f79074 "merge p1 1=ancestor p2 3=outside"
saved backup bundle to $TESTTMP/parentorder/.hg/strip-backup/a57575f79074-backup.hg (glob)
$ hg tip
changeset: 5:f9daf77ffe76
@@ -263,6 +279,7 @@ rebase of merge of ancestors
$ echo 'other change while merging future "rebase ancestors"' > other
$ hg ci -Aqm 'merge rebase ancestors'
$ hg rebase -d 5 -v
+ rebasing 6:4c5f12f25ebe "merge rebase ancestors" (tip)
resolving manifests
removing other
note: merging f9daf77ffe76+ and 4c5f12f25ebe using bids from ancestors a60552eb93fb and f59da8fc0fcf
@@ -56,6 +56,9 @@ simple rebase
$ hg up 32af7686d403
3 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ hg rebase -d eea13746799a
+ rebasing 1:42ccdea3bb16 "B"
+ rebasing 2:5fddd98957c8 "C"
+ rebasing 3:32af7686d403 "D"
$ hg log -G
@ 10:8eeb3c33ad33 D
|
@@ -121,6 +124,11 @@ set.
grafting revision 1
grafting revision 3
$ hg rebase -s 42ccdea3bb16 -d .
+ rebasing 1:42ccdea3bb16 "B"
+ ignoring empty rebase of 1:42ccdea3bb16
+ rebasing 2:5fddd98957c8 "C"
+ rebasing 3:32af7686d403 "D"
+ ignoring empty rebase of 3:32af7686d403
$ hg log -G
o 10:5ae4c968c6ac C
|
@@ -170,6 +178,13 @@ set.
More complex case were part of the rebase set were already rebased
$ hg rebase --rev 'desc(D)' --dest 'desc(H)'
+ rebasing 4:9520eea781bc "E"
+ skipping null merge of 4:9520eea781bc
+ rebasing 6:eea13746799a "G"
+ skipping null merge of 6:eea13746799a
+ rebasing 8:8877864f1edb "B"
+ skipping null merge of 8:8877864f1edb
+ rebasing 9:08483444fef9 "D"
$ hg debugobsolete
42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (*) {'user': 'test'} (glob)
5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (*) {'user': 'test'} (glob)
@@ -195,6 +210,14 @@ More complex case were part of the rebas
o 0:cd010b8cd998 A
$ hg rebase --source 'desc(B)' --dest 'tip'
+ rebasing 4:9520eea781bc "E"
+ skipping null merge of 4:9520eea781bc
+ rebasing 6:eea13746799a "G"
+ skipping null merge of 6:eea13746799a
+ rebasing 8:8877864f1edb "B"
+ rebasing 9:08483444fef9 "D"
+ ignoring empty rebase of 9:08483444fef9
+ rebasing 10:5ae4c968c6ac "C"
$ hg debugobsolete
42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 {cd010b8cd998f3981a5a8115f94f8da4ab506089} (*) {'user': 'test'} (glob)
5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 5ae4c968c6aca831df823664e706c9d4aa34473d 0 (*) {'user': 'test'} (glob)
@@ -247,6 +270,12 @@ collapse rebase
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd collapse
$ hg rebase -s 42ccdea3bb16 -d eea13746799a --collapse
+ rebasing 1:42ccdea3bb16 "B"
+ ignoring empty changeset 1:42ccdea3bb16 while collapsing
+ rebasing 2:5fddd98957c8 "C"
+ ignoring empty changeset 2:5fddd98957c8 while collapsing
+ rebasing 3:32af7686d403 "D"
+ ignoring empty changeset 3:32af7686d403 while collapsing
$ hg log -G
o 8:4dc2197e807b Collapsed revision
|
@@ -299,7 +328,12 @@ not be rebased.
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd hidden
$ hg rebase -s 5fddd98957c8 -d eea13746799a
+ rebasing 1:42ccdea3bb16 "B"
+ skipping null merge of 1:42ccdea3bb16
+ rebasing 2:5fddd98957c8 "C"
+ rebasing 3:32af7686d403 "D"
$ hg rebase -s 42ccdea3bb16 -d 02de42196ebe
+ rebasing 1:42ccdea3bb16 "B"
$ hg log -G
o 10:7c6027df6a99 B
|
@@ -351,6 +385,11 @@ Test that rewriting leaving instability
$ hg log -r 'children(8)'
9:cf44d2f5a9f4 D (no-eol)
$ hg rebase -r 8
+ rebasing 4:9520eea781bc "E"
+ skipping null merge of 4:9520eea781bc
+ rebasing 6:eea13746799a "G"
+ skipping null merge of 6:eea13746799a
+ rebasing 8:e273c5e7d2d2 "C"
$ hg log -G
o 11:0d8f238b634c C
|
@@ -376,6 +415,17 @@ Test multiple root handling
------------------------------------
$ hg rebase --dest 4 --rev '7+11+9'
+ rebasing 5:24b6387c8c8c "F"
+ skipping null merge of 5:24b6387c8c8c
+ rebasing 6:eea13746799a "G"
+ skipping null merge of 6:eea13746799a
+ rebasing 7:02de42196ebe "H"
+ rebasing 8:e273c5e7d2d2 "C"
+ skipping null merge of 8:e273c5e7d2d2
+ rebasing 9:cf44d2f5a9f4 "D"
+ rebasing 10:7c6027df6a99 "B"
+ skipping ignored 10:7c6027df6a99
+ rebasing 11:0d8f238b634c "C" (tip)
$ hg log -G
o 14:1e8370e38cca C
|
@@ -442,6 +492,15 @@ test on rebase dropping a merge
(actual test)
$ hg rebase --dest 6 --rev '((desc(H) + desc(D))::) - desc(M)'
+ rebasing 1:42ccdea3bb16 "B"
+ skipping null merge of 1:42ccdea3bb16
+ rebasing 2:5fddd98957c8 "C"
+ skipping null merge of 2:5fddd98957c8
+ rebasing 3:32af7686d403 "D"
+ rebasing 7:02de42196ebe "H"
+ rebasing 8:53a6a128b2b7 "M"
+ skipping ignored 8:53a6a128b2b7
+ rebasing 9:4bde274eefcf "I" (tip)
$ hg log -G
@ 12:acd174b7ab39 I
|
@@ -120,6 +120,9 @@ Rebase with no arguments (from 3 onto 8)
$ hg up -q -C 3
$ hg rebase
+ rebasing 1:42ccdea3bb16 "B"
+ rebasing 2:5fddd98957c8 "C"
+ rebasing 3:32af7686d403 "D"
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -155,6 +158,9 @@ Rebase with base == '.' => same as no ar
$ cd a2
$ hg rebase --base .
+ rebasing 1:42ccdea3bb16 "B"
+ rebasing 2:5fddd98957c8 "C"
+ rebasing 3:32af7686d403 "D"
saved backup bundle to $TESTTMP/a2/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -185,6 +191,9 @@ Rebase with dest == branch(.) => same as
$ cd a3
$ hg rebase --dest 'branch(.)'
+ rebasing 1:42ccdea3bb16 "B"
+ rebasing 2:5fddd98957c8 "C"
+ rebasing 3:32af7686d403 "D"
saved backup bundle to $TESTTMP/a3/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -215,6 +224,10 @@ Specify only source (from 2 onto 8):
$ cd a4
$ hg rebase --source 'desc("C")'
+ rebasing 1:42ccdea3bb16 "B"
+ skipping null merge of 1:42ccdea3bb16
+ rebasing 2:5fddd98957c8 "C"
+ rebasing 3:32af7686d403 "D"
saved backup bundle to $TESTTMP/a4/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -245,6 +258,9 @@ Specify only dest (from 3 onto 6):
$ cd a5
$ hg rebase --dest 6
+ rebasing 1:42ccdea3bb16 "B"
+ rebasing 2:5fddd98957c8 "C"
+ rebasing 3:32af7686d403 "D"
saved backup bundle to $TESTTMP/a5/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -275,6 +291,9 @@ Specify only base (from 1 onto 8):
$ cd a6
$ hg rebase --base 'desc("D")'
+ rebasing 1:42ccdea3bb16 "B"
+ rebasing 2:5fddd98957c8 "C"
+ rebasing 3:32af7686d403 "D"
saved backup bundle to $TESTTMP/a6/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -305,6 +324,10 @@ Specify source and dest (from 2 onto 7):
$ cd a7
$ hg rebase --source 2 --dest 7
+ rebasing 1:42ccdea3bb16 "B"
+ skipping null merge of 1:42ccdea3bb16
+ rebasing 2:5fddd98957c8 "C"
+ rebasing 3:32af7686d403 "D"
saved backup bundle to $TESTTMP/a7/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -335,6 +358,9 @@ Specify base and dest (from 1 onto 7):
$ cd a8
$ hg rebase --base 3 --dest 7
+ rebasing 1:42ccdea3bb16 "B"
+ rebasing 2:5fddd98957c8 "C"
+ rebasing 3:32af7686d403 "D"
saved backup bundle to $TESTTMP/a8/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -365,6 +391,10 @@ Specify only revs (from 2 onto 8)
$ cd a9
$ hg rebase --rev 'desc("C")::'
+ rebasing 1:42ccdea3bb16 "B"
+ skipping null merge of 1:42ccdea3bb16
+ rebasing 2:5fddd98957c8 "C"
+ rebasing 3:32af7686d403 "D"
saved backup bundle to $TESTTMP/a9/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -413,6 +443,8 @@ Test --tool parameter:
$ cd b1
$ hg rebase -s 2 -d 1 --tool internal:local
+ rebasing 2:e4e3f3546619 "c2b" (tip)
+ ignoring empty rebase of 2:e4e3f3546619
saved backup bundle to $TESTTMP/b1/.hg/strip-backup/*-backup.hg (glob)
$ hg cat c2
@@ -425,6 +457,7 @@ Test --tool parameter:
$ cd b2
$ hg rebase -s 2 -d 1 --tool internal:other
+ rebasing 2:e4e3f3546619 "c2b" (tip)
saved backup bundle to $TESTTMP/b2/.hg/strip-backup/*-backup.hg (glob)
$ hg cat c2
@@ -437,6 +470,7 @@ Test --tool parameter:
$ cd b3
$ hg rebase -s 2 -d 1 --tool internal:fail
+ rebasing 2:e4e3f3546619 "c2b" (tip)
unresolved conflicts (see hg resolve, then hg rebase --continue)
[1]
@@ -457,6 +491,8 @@ Test --tool parameter:
(no more unresolved files)
$ hg rebase -c --tool internal:fail
tool option will be ignored
+ rebasing 2:e4e3f3546619 "c2b" (tip)
+ ignoring empty rebase of 2:e4e3f3546619
saved backup bundle to $TESTTMP/b3/.hg/strip-backup/*-backup.hg (glob)
$ hg rebase -i
@@ -53,6 +53,7 @@ Now b has one revision to be pulled from
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
+ rebasing 2:ff8d69a621f9 "L1"
saved backup bundle to $TESTTMP/b/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -149,6 +150,7 @@ pull --rebase works when a specific revi
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
+ rebasing 3:ff8d69a621f9 "L1"
saved backup bundle to $TESTTMP/c/.hg/strip-backup/ff8d69a621f9-backup.hg (glob)
$ hg tglog
@ 5: 'L1'
@@ -60,6 +60,7 @@ Rename is tracked:
Rebase the revision containing the rename:
$ hg rebase -s 3 -d 2
+ rebasing 3:73a3ee40125d "rename A" (tip)
saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -150,6 +151,7 @@ Copy is tracked:
Rebase the revision containing the copy:
$ hg rebase -s 3 -d 2
+ rebasing 3:0a8162ff18a8 "copy A" (tip)
saved backup bundle to $TESTTMP/b/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -233,6 +235,7 @@ Test rebase across repeating renames:
$ hg rebase -s 4 -d 3
+ rebasing 4:b918d683b091 "Another unrelated change" (tip)
saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-backup.hg (glob)
$ hg diff --stat -c .
@@ -281,6 +284,9 @@ Update back to before we performed copie
Rebase the copies on top of the unrelated change.
$ hg rebase --source 1 --dest 4
+ rebasing 1:79d255d24ad2 "File b created as copy of a and modified"
+ rebasing 2:327f772bc074 "File c created as copy of b and modified"
+ rebasing 3:421b7e82bb85 "File d created as copy of c and modified"
saved backup bundle to $TESTTMP/copy-gets-preserved/.hg/*.hg (glob)
$ hg update 4
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -303,8 +309,14 @@ copy records collapse correctly.
$ hg ci -m 'unrelated commit is unrelated'
created new head
$ hg rebase -s 2 --dest 5 --collapse
+ rebasing 2:68bf06433839 "File b created as copy of a and modified"
+ ignoring empty changeset 2:68bf06433839 while collapsing
+ rebasing 3:af74b229bc02 "File c created as copy of b and modified"
merging b and c to c
+ ignoring empty changeset 3:af74b229bc02 while collapsing
+ rebasing 4:dbb9ba033561 "File d created as copy of c and modified"
merging c and d to d
+ ignoring empty changeset 4:dbb9ba033561 while collapsing
saved backup bundle to $TESTTMP/copy-gets-preserved/.hg/*.hg (glob)
$ hg co tip
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -51,6 +51,11 @@ D onto H - simple rebase:
$ hg status --rev "3^1" --rev 3
A D
$ HGEDITOR=cat hg rebase -s 3 -d 7 --edit
+ rebasing 1:42ccdea3bb16 "B"
+ skipping null merge of 1:42ccdea3bb16
+ rebasing 2:5fddd98957c8 "C"
+ skipping null merge of 2:5fddd98957c8
+ rebasing 3:32af7686d403 "D"
D
@@ -89,6 +94,11 @@ D onto F - intermediate point:
$ cd a2
$ HGEDITOR=cat hg rebase -s 3 -d 5
+ rebasing 1:42ccdea3bb16 "B"
+ skipping null merge of 1:42ccdea3bb16
+ rebasing 2:5fddd98957c8 "C"
+ skipping null merge of 2:5fddd98957c8
+ rebasing 3:32af7686d403 "D"
saved backup bundle to $TESTTMP/a2/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -117,6 +127,9 @@ E onto H - skip of G:
$ cd a3
$ hg rebase -s 4 -d 7
+ rebasing 4:9520eea781bc "E"
+ rebasing 6:eea13746799a "G"
+ ignoring empty rebase of 6:eea13746799a
saved backup bundle to $TESTTMP/a3/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -143,6 +156,10 @@ F onto E - rebase of a branching point (
$ cd a4
$ hg rebase -s 5 -d 4
+ rebasing 5:24b6387c8c8c "F"
+ rebasing 6:eea13746799a "G"
+ ignoring empty rebase of 6:eea13746799a
+ rebasing 7:02de42196ebe "H" (tip)
saved backup bundle to $TESTTMP/a4/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -169,6 +186,7 @@ G onto H - merged revision having a pare
$ cd a5
$ hg rebase -s 6 -d 7
+ rebasing 6:eea13746799a "G"
saved backup bundle to $TESTTMP/a5/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -197,6 +215,9 @@ F onto B - G maintains E as parent:
$ cd a6
$ hg rebase -s 5 -d 1
+ rebasing 5:24b6387c8c8c "F"
+ rebasing 6:eea13746799a "G"
+ rebasing 7:02de42196ebe "H" (tip)
saved backup bundle to $TESTTMP/a6/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
@@ -239,6 +260,7 @@ F onto G - rebase onto a descendant:
G onto B - merge revision with both parents not in ancestors of target:
$ hg rebase -s 6 -d 1
+ rebasing 6:eea13746799a "G"
abort: cannot use revision 6 as base, result would have 3 parents
[255]
@@ -266,6 +288,10 @@ F onto G - rebase onto a descendant:
C onto A - rebase onto an ancestor:
$ hg rebase -d 0 -s 2
+ rebasing 1:42ccdea3bb16 "B"
+ skipping null merge of 1:42ccdea3bb16
+ rebasing 2:5fddd98957c8 "C"
+ rebasing 3:32af7686d403 "D"
saved backup bundle to $TESTTMP/a7/.hg/strip-backup/5fddd98957c8-backup.hg (glob)
$ hg tglog
o 7: 'D'
@@ -297,28 +323,47 @@ Check rebasing public changeset
[255]
$ hg rebase -d 5 -b 6 --keep
+ rebasing 6:e1c4361dd923 "C"
+ rebasing 7:c9659aac0000 "D" (tip)
Check rebasing mutable changeset
Source phase greater or equal to destination phase: new changeset get the phase of source:
$ hg rebase -s9 -d0
+ rebasing 3:24b6387c8c8c "F"
+ skipping null merge of 3:24b6387c8c8c
+ rebasing 5:02de42196ebe "H"
+ skipping null merge of 5:02de42196ebe
+ rebasing 8:6d4f22462821 "C"
+ skipping null merge of 8:6d4f22462821
+ rebasing 9:2b23e52411f4 "D" (tip)
saved backup bundle to $TESTTMP/a7/.hg/strip-backup/2b23e52411f4-backup.hg (glob)
$ hg log --template "{phase}\n" -r 9
draft
$ hg rebase -s9 -d1
+ rebasing 9:2cb10d0cfc6c "D" (tip)
saved backup bundle to $TESTTMP/a7/.hg/strip-backup/2cb10d0cfc6c-backup.hg (glob)
$ hg log --template "{phase}\n" -r 9
draft
$ hg phase --force --secret 9
$ hg rebase -s9 -d0
+ rebasing 1:42ccdea3bb16 "B"
+ skipping null merge of 1:42ccdea3bb16
+ rebasing 9:c5b12b67163a "D" (tip)
saved backup bundle to $TESTTMP/a7/.hg/strip-backup/c5b12b67163a-backup.hg (glob)
$ hg log --template "{phase}\n" -r 9
secret
$ hg rebase -s9 -d1
+ rebasing 9:2a0524f868ac "D" (tip)
saved backup bundle to $TESTTMP/a7/.hg/strip-backup/2a0524f868ac-backup.hg (glob)
$ hg log --template "{phase}\n" -r 9
secret
Source phase lower than destination phase: new changeset get the phase of destination:
$ hg rebase -s8 -d9
+ rebasing 3:24b6387c8c8c "F"
+ skipping null merge of 3:24b6387c8c8c
+ rebasing 5:02de42196ebe "H"
+ skipping null merge of 5:02de42196ebe
+ rebasing 8:6d4f22462821 "C"
saved backup bundle to $TESTTMP/a7/.hg/strip-backup/6d4f22462821-backup.hg (glob)
$ hg log --template "{phase}\n" -r 'rev(9)'
secret
@@ -371,6 +416,11 @@ Source on have two descendant heads but
(use --keep to keep original changesets)
[255]
$ hg rebase -r '2::8' -d 1 --keep
+ rebasing 2:c9e50f6cdc55 "C"
+ rebasing 3:ffd453c31098 "D"
+ rebasing 6:3d8a618087a7 "G"
+ rebasing 7:72434a4e60b0 "H"
+ rebasing 8:479ddb54a924 "I" (tip)
$ hg tglog
o 13: 'I'
|
@@ -412,6 +462,12 @@ Base on have one descendant heads we ask
(use --keep to keep original changesets)
[255]
$ hg rebase -r '3::8' -d 1 --keep
+ rebasing 2:c9e50f6cdc55 "C"
+ skipping null merge of 2:c9e50f6cdc55
+ rebasing 3:ffd453c31098 "D"
+ rebasing 6:3d8a618087a7 "G"
+ rebasing 7:72434a4e60b0 "H"
+ rebasing 8:479ddb54a924 "I" (tip)
$ hg tglog
o 12: 'I'
|
@@ -451,6 +507,11 @@ rebase subset
(use --keep to keep original changesets)
[255]
$ hg rebase -r '3::7' -d 1 --keep
+ rebasing 2:c9e50f6cdc55 "C"
+ skipping null merge of 2:c9e50f6cdc55
+ rebasing 3:ffd453c31098 "D"
+ rebasing 6:3d8a618087a7 "G"
+ rebasing 7:72434a4e60b0 "H"
$ hg tglog
o 11: 'H'
|
@@ -488,6 +549,13 @@ rebase subset with multiple head
(use --keep to keep original changesets)
[255]
$ hg rebase -r '3::(7+5)' -d 1 --keep
+ rebasing 2:c9e50f6cdc55 "C"
+ skipping null merge of 2:c9e50f6cdc55
+ rebasing 3:ffd453c31098 "D"
+ rebasing 4:c01897464e7f "E"
+ rebasing 5:41bfcc75ed73 "F"
+ rebasing 6:3d8a618087a7 "G"
+ rebasing 7:72434a4e60b0 "H"
$ hg tglog
o 13: 'H'
|
@@ -527,6 +595,11 @@ rebase on ancestor with revset
$ hg clone -q -u . ah ah5
$ cd ah5
$ hg rebase -r '6::' -d 2
+ rebasing 3:ffd453c31098 "D"
+ skipping null merge of 3:ffd453c31098
+ rebasing 6:3d8a618087a7 "G"
+ rebasing 7:72434a4e60b0 "H"
+ rebasing 8:479ddb54a924 "I" (tip)
saved backup bundle to $TESTTMP/ah5/.hg/strip-backup/3d8a618087a7-backup.hg (glob)
$ hg tglog
o 8: 'I'
@@ -557,6 +630,15 @@ We would expect heads are I, F if it was
$ hg clone -q -u . ah ah6
$ cd ah6
$ hg rebase -r '(4+6)::' -d 1
+ rebasing 2:c9e50f6cdc55 "C"
+ skipping null merge of 2:c9e50f6cdc55
+ rebasing 3:ffd453c31098 "D"
+ skipping null merge of 3:ffd453c31098
+ rebasing 4:c01897464e7f "E"
+ rebasing 5:41bfcc75ed73 "F"
+ rebasing 6:3d8a618087a7 "G"
+ rebasing 7:72434a4e60b0 "H"
+ rebasing 8:479ddb54a924 "I" (tip)
saved backup bundle to $TESTTMP/ah6/.hg/strip-backup/3d8a618087a7-backup.hg (glob)
$ hg tglog
o 8: 'I'
@@ -624,6 +706,12 @@ each root have a different common ancest
(actual test)
$ hg rebase --dest 'desc(G)' --rev 'desc(K) + desc(I)'
+ rebasing 7:02de42196ebe "H"
+ skipping null merge of 7:02de42196ebe
+ rebasing 8:e7ec4e813ba6 "I"
+ rebasing 9:1301922eeb0c "J"
+ skipping null merge of 9:1301922eeb0c
+ rebasing 10:23a4ace37988 "K" (tip)
saved backup bundle to $TESTTMP/a8/.hg/strip-backup/23a4ace37988-backup.hg (glob)
$ hg log --rev 'children(desc(G))'
changeset: 9:adb617877056
@@ -686,4 +774,6 @@ Test that rebase is not confused by $CWD
$ hg add subfile
$ hg commit -m 'second source with subdir'
$ hg rebase -b . -d 1 --traceback
+ rebasing 2:779a07b1b7a0 "first source commit"
+ rebasing 3:a7d6f3a00bf3 "second source with subdir" (tip)
saved backup bundle to $TESTTMP/cwd-vanish/.hg/strip-backup/779a07b1b7a0-backup.hg (glob)
@@ -110,6 +110,7 @@ local edits should not prevent a shelved
unshelving change 'default-01'
temporarily committing pending changes (restore with 'hg unshelve --abort')
rebasing shelved changes
+ rebasing 4:4702e8911fe0 "changes to '[mq]: second.patch'" (tip)
merging a/a
$ hg revert --all -q
@@ -202,6 +203,7 @@ force a conflicted merge to occur
unshelving change 'default'
temporarily committing pending changes (restore with 'hg unshelve --abort')
rebasing shelved changes
+ rebasing 5:4702e8911fe0 "changes to '[mq]: second.patch'" (tip)
merging a/a
warning: conflicts during merge.
merging a/a incomplete! (edit conflicts, then use 'hg resolve --mark')
@@ -312,6 +314,7 @@ attempt to continue
[255]
$ hg unshelve -c
+ rebasing 5:4702e8911fe0 "changes to '[mq]: second.patch'" (tip)
unshelve of 'default' complete
ensure the repo is as we hope
@@ -382,7 +385,9 @@ if we resolve a conflict while unshelvin
unshelving change 'default'
temporarily committing pending changes (restore with 'hg unshelve --abort')
rebasing shelved changes
+ rebasing 6:c5e6910e7601 "changes to 'second'" (tip)
merging a/a
+ ignoring empty rebase of 6:c5e6910e7601
$ hg parents -q
4:33f7f61e6c5e
$ hg shelve -l
@@ -461,11 +466,15 @@ shelve should leave dirstate clean (issu
shelved as default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg rebase -d 1 --config extensions.rebase=
+ rebasing 2:323bfa07f744 "xyz" (tip)
merging x
saved backup bundle to $TESTTMP/shelverebase/.hg/strip-backup/323bfa07f744-backup.hg (glob)
$ hg unshelve
unshelving change 'default'
rebasing shelved changes
+ rebasing 3:323bfa07f744 "xyz"
+ skipping null merge of 3:323bfa07f744
+ rebasing 4:b8fefe789ed0 "changes to 'xyz'" (tip)
$ hg status
M z
@@ -492,6 +501,9 @@ shelve should only unshelve pending chan
$ hg unshelve
unshelving change 'default'
rebasing shelved changes
+ rebasing 2:d5e255ef74f8 "c"
+ skipping null merge of 2:d5e255ef74f8
+ rebasing 3:0cae6656c016 "changes to 'c'" (tip)
$ hg status
A d
@@ -505,6 +517,9 @@ unshelve should work on an ancestor of t
$ hg unshelve
unshelving change 'default'
rebasing shelved changes
+ rebasing 1:0e067c57feba "b"
+ skipping null merge of 1:0e067c57feba
+ rebasing 3:be58f65f55fb "changes to 'b'" (tip)
$ hg status
A d
@@ -602,6 +617,7 @@ unshelve and conflicts with tracked and
unshelving change 'default'
temporarily committing pending changes (restore with 'hg unshelve --abort')
rebasing shelved changes
+ rebasing 5:23b29cada8ba "changes to 'commit stuff'" (tip)
merging f
warning: conflicts during merge.
merging f incomplete! (edit conflicts, then use 'hg resolve --mark')
@@ -641,6 +657,7 @@ unshelve and conflicts with tracked and
unshelving change 'default'
temporarily committing pending changes (restore with 'hg unshelve --abort')
rebasing shelved changes
+ rebasing 5:23b29cada8ba "changes to 'commit stuff'" (tip)
$ hg st
M a
A f
@@ -656,6 +673,7 @@ unshelve and conflicts with tracked and
$ hg unshelve
unshelving change 'default'
rebasing shelved changes
+ rebasing 5:23b29cada8ba "changes to 'commit stuff'" (tip)
merging f
warning: conflicts during merge.
merging f incomplete! (edit conflicts, then use 'hg resolve --mark')
@@ -697,6 +715,7 @@ Recreate some conflict again
$ hg unshelve
unshelving change 'default'
rebasing shelved changes
+ rebasing 5:4b555fdb4e96 "changes to 'second'" (tip)
merging a/a
warning: conflicts during merge.
merging a/a incomplete! (edit conflicts, then use 'hg resolve --mark')
@@ -711,6 +730,8 @@ is a no-op), works (issue4398)
$ hg resolve -m a/a
(no more unresolved files)
$ hg unshelve -c
+ rebasing 5:4b555fdb4e96 "changes to 'second'" (tip)
+ ignoring empty rebase of 5:4b555fdb4e96
unshelve of 'default' complete
$ hg diff
$ hg status