Patchwork [4,of,4,v2] rebase: show status information with current changeset while rebasing

login
register
mail settings
Submitter Mads Kiilerich
Date Dec. 2, 2014, 4:13 a.m.
Message ID <241ad1c95c60d5e6ece1.1417493629@localhost.localdomain>
Download mbox | patch
Permalink /patch/6940/
State Changes Requested
Headers show

Comments

Mads Kiilerich - Dec. 2, 2014, 4:13 a.m.
# HG changeset patch
# User Mads Kiilerich <mads@kiilerich.com>
# Date 1349990522 -7200
#      Thu Oct 11 23:22:02 2012 +0200
# Node ID 241ad1c95c60d5e6ece1f6adf0a7f8543146c237
# Parent  63e92a66482bb5af8b9bdd95dfb0fff500eef582
rebase: show status information with current changeset while rebasing

This helps the user by giving some context when resolving conflicts while
rebasing. It also makes it more clear what happens when rebased empty
changesets are skipped and disappears.

Simpe Mercurial commands are usually quiet, but rebase is not simple and can be
dangerous, especially if getting lost in the merges. It is thus justified that
this command is more verbose.

Revisions and hashes are shown for original changesets as that is how they were
known and how they appear while merging. (The hash might disappear and the
revision point at something else once the original changesets has been
successfully rebased and stripped.)

Rebased changesets are only shown with hashes as their revision usually changes
as soon as the original changesets are stripped. The hash is however stable.
Matt Mackall - Dec. 4, 2014, 12:12 a.m.
On Tue, 2014-12-02 at 05:13 +0100, Mads Kiilerich wrote:
> # HG changeset patch
> # User Mads Kiilerich <mads@kiilerich.com>
> # Date 1349990522 -7200
> #      Thu Oct 11 23:22:02 2012 +0200
> # Node ID 241ad1c95c60d5e6ece1f6adf0a7f8543146c237
> # Parent  63e92a66482bb5af8b9bdd95dfb0fff500eef582
> rebase: show status information with current changeset while rebasing

I've queued the first three here, thanks. I guess I'm ok with the idea
in this patch, but I think you should make it more exactly mirror what's
happening in graft:

- no indents
- empty rebases and skips are warnings
- use revs (yeah yeah, I know)

Then, if we decide that something can be improved in the graft/rebase
messaging (like using nodes), fix them both. I'd like to get graft and
rebase to be more similar and share more internals.

Also, the mq message probably deserves to be a debug or note.
Mads Kiilerich - Dec. 9, 2014, 3:11 a.m.
On 12/04/2014 01:12 AM, Matt Mackall wrote:
> On Tue, 2014-12-02 at 05:13 +0100, Mads Kiilerich wrote:
>> # HG changeset patch
>> # User Mads Kiilerich <mads@kiilerich.com>
>> # Date 1349990522 -7200
>> #      Thu Oct 11 23:22:02 2012 +0200
>> # Node ID 241ad1c95c60d5e6ece1f6adf0a7f8543146c237
>> # Parent  63e92a66482bb5af8b9bdd95dfb0fff500eef582
>> rebase: show status information with current changeset while rebasing
> I've queued the first three here, thanks. I guess I'm ok with the idea
> in this patch, but I think you should make it more exactly mirror what's
> happening in graft:
>
> - no indents
> - empty rebases and skips are warnings
> - use revs (yeah yeah, I know)
>
> Then, if we decide that something can be improved in the graft/rebase
> messaging (like using nodes), fix them both. I'd like to get graft and
> rebase to be more similar and share more internals.

I agree on the direction of consolidating these two.

Rebase is however also more complete than graft. Rebase do for example 
(for good or bad) not just skip merges. I would thus suggest that we 
first focus on improving rebase, then on reusing it in graft.

Rebase is also so fancy that it use "real" progress with percentage 
progress and current task ... which however probably doesn't combine 
well with also having a "backlog" that can give more of an overview.

/Mads

Patch

diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -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)
@@ -403,12 +409,26 @@  def rebase(ui, repo, **opts):
                 # Update the state
                 if newnode is not None:
                     state[rev] = repo[newnode].rev()
+                    ui.debug(' rebased %d:%s as %s\n' %
+                             (rev, short(node), short(newnode)))
                 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'))
@@ -691,7 +711,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:
diff --git a/tests/test-bookmarks-rebase.t b/tests/test-bookmarks-rebase.t
--- a/tests/test-bookmarks-rebase.t
+++ b/tests/test-bookmarks-rebase.t
@@ -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
diff --git a/tests/test-histedit-obsolete.t b/tests/test-histedit-obsolete.t
--- a/tests/test-histedit-obsolete.t
+++ b/tests/test-histedit-obsolete.t
@@ -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
diff --git a/tests/test-largefiles-update.t b/tests/test-largefiles-update.t
--- a/tests/test-largefiles-update.t
+++ b/tests/test-largefiles-update.t
@@ -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
 
diff --git a/tests/test-largefiles.t b/tests/test-largefiles.t
--- a/tests/test-largefiles.t
+++ b/tests/test-largefiles.t
@@ -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
diff --git a/tests/test-rebase-abort.t b/tests/test-rebase-abort.t
--- a/tests/test-rebase-abort.t
+++ b/tests/test-rebase-abort.t
@@ -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')
diff --git a/tests/test-rebase-bookmarks.t b/tests/test-rebase-bookmarks.t
--- a/tests/test-rebase-bookmarks.t
+++ b/tests/test-rebase-bookmarks.t
@@ -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)
diff --git a/tests/test-rebase-cache.t b/tests/test-rebase-cache.t
--- a/tests/test-rebase-cache.t
+++ b/tests/test-rebase-cache.t
@@ -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)
diff --git a/tests/test-rebase-check-restore.t b/tests/test-rebase-check-restore.t
--- a/tests/test-rebase-check-restore.t
+++ b/tests/test-rebase-check-restore.t
@@ -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
diff --git a/tests/test-rebase-collapse.t b/tests/test-rebase-collapse.t
--- a/tests/test-rebase-collapse.t
+++ b/tests/test-rebase-collapse.t
@@ -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
diff --git a/tests/test-rebase-conflicts.t b/tests/test-rebase-conflicts.t
--- a/tests/test-rebase-conflicts.t
+++ b/tests/test-rebase-conflicts.t
@@ -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
diff --git a/tests/test-rebase-detach.t b/tests/test-rebase-detach.t
--- a/tests/test-rebase-detach.t
+++ b/tests/test-rebase-detach.t
@@ -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'
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
@@ -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')
diff --git a/tests/test-rebase-issue-noparam-single-rev.t b/tests/test-rebase-issue-noparam-single-rev.t
--- a/tests/test-rebase-issue-noparam-single-rev.t
+++ b/tests/test-rebase-issue-noparam-single-rev.t
@@ -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
diff --git a/tests/test-rebase-mq-skip.t b/tests/test-rebase-mq-skip.t
--- a/tests/test-rebase-mq-skip.t
+++ b/tests/test-rebase-mq-skip.t
@@ -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
diff --git a/tests/test-rebase-mq.t b/tests/test-rebase-mq.t
--- a/tests/test-rebase-mq.t
+++ b/tests/test-rebase-mq.t
@@ -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'
diff --git a/tests/test-rebase-named-branches.t b/tests/test-rebase-named-branches.t
--- a/tests/test-rebase-named-branches.t
+++ b/tests/test-rebase-named-branches.t
@@ -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
diff --git a/tests/test-rebase-newancestor.t b/tests/test-rebase-newancestor.t
--- a/tests/test-rebase-newancestor.t
+++ b/tests/test-rebase-newancestor.t
@@ -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,8 +127,13 @@  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"
   saved backup bundle to $TESTTMP/ancestor-merge/.hg/strip-backup/1d1a643d390e-backup.hg (glob)
   $ hg tglog
   o  6: 'dev: merge default'
@@ -149,8 +156,13 @@  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"
   saved backup bundle to $TESTTMP/ancestor-merge-2/.hg/strip-backup/ec2c14fb2984-backup.hg (glob)
   $ hg tglog
   o  7: 'dev: merge default'
@@ -222,6 +234,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 +246,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 +277,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
diff --git a/tests/test-rebase-obsolete.t b/tests/test-rebase-obsolete.t
--- a/tests/test-rebase-obsolete.t
+++ b/tests/test-rebase-obsolete.t
@@ -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
   |
diff --git a/tests/test-rebase-parameters.t b/tests/test-rebase-parameters.t
--- a/tests/test-rebase-parameters.t
+++ b/tests/test-rebase-parameters.t
@@ -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
diff --git a/tests/test-rebase-pull.t b/tests/test-rebase-pull.t
--- a/tests/test-rebase-pull.t
+++ b/tests/test-rebase-pull.t
@@ -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'
diff --git a/tests/test-rebase-rename.t b/tests/test-rebase-rename.t
--- a/tests/test-rebase-rename.t
+++ b/tests/test-rebase-rename.t
@@ -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
diff --git a/tests/test-rebase-scenario-global.t b/tests/test-rebase-scenario-global.t
--- a/tests/test-rebase-scenario-global.t
+++ b/tests/test-rebase-scenario-global.t
@@ -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)
diff --git a/tests/test-shelve.t b/tests/test-shelve.t
--- a/tests/test-shelve.t
+++ b/tests/test-shelve.t
@@ -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