shelve: status messages from unshelve
authorMads Kiilerich <madski@unity3d.com>
Mon, 10 Feb 2014 00:54:27 +0100
changeset 20413 0ac94c0a3a38
parent 20412 e584fc30456b
child 20414 022431336f72
shelve: status messages from unshelve It was hard for the user to know what was going on when unshelving - especially if the user had to resolve conflicts and thus got to see the intermediate states. Seeing that pending changes was gone could scare the user, make him panic, and do stuff that really made him lose data. Merging (both when rebasing and with pending changes) also requires some understanding of where in the process you are and what you are merging. To help the user we now show a couple of status messages (when relevant): temporarily committing pending changes (restore with 'hg unshelve --abort') rebasing shelved changes
hgext/shelve.py
tests/test-shelve.t
--- a/hgext/shelve.py	Mon Feb 10 00:54:12 2014 +0100
+++ b/hgext/shelve.py	Mon Feb 10 00:54:27 2014 +0100
@@ -537,6 +537,8 @@
         # Store pending changes in a commit
         m, a, r, d = repo.status()[:4]
         if m or a or r or d:
+            ui.status(_("temporarily committing pending changes "
+                        "(restore with 'hg unshelve --abort')\n"))
             def commitfunc(ui, repo, message, match, opts):
                 hasmq = util.safehasattr(repo, 'mq')
                 if hasmq:
@@ -572,6 +574,7 @@
         # If the shelve is not immediately on top of the commit
         # we'll be merging with, rebase it to be on top.
         if tmpwctx.node() != shelvectx.parents()[0].node():
+            ui.status(_('rebasing shelved changes\n'))
             try:
                 rebase.rebase(ui, repo, **{
                     'rev' : [shelvectx.rev()],
--- a/tests/test-shelve.t	Mon Feb 10 00:54:12 2014 +0100
+++ b/tests/test-shelve.t	Mon Feb 10 00:54:27 2014 +0100
@@ -100,6 +100,8 @@
   $ printf "z\na\n" > a/a
   $ hg unshelve --keep
   unshelving change 'default-01'
+  temporarily committing pending changes (restore with 'hg unshelve --abort')
+  rebasing shelved changes
   merging a/a
 
   $ hg revert --all -q
@@ -180,6 +182,8 @@
 
   $ hg unshelve
   unshelving change 'default'
+  temporarily committing pending changes (restore with 'hg unshelve --abort')
+  rebasing shelved changes
   merging a/a
   warning: conflicts during merge.
   merging a/a incomplete! (edit conflicts, then use 'hg resolve --mark')
@@ -363,6 +367,8 @@
 
   $ HGMERGE=true hg unshelve
   unshelving change 'default'
+  temporarily committing pending changes (restore with 'hg unshelve --abort')
+  rebasing shelved changes
   merging a/a
   $ hg parents -q
   4:33f7f61e6c5e
@@ -436,6 +442,7 @@
   saved backup bundle to $TESTTMP/shelverebase/.hg/strip-backup/323bfa07f744-backup.hg (glob)
   $ hg unshelve
   unshelving change 'default'
+  rebasing shelved changes
   $ hg status
   M z
 
@@ -461,6 +468,7 @@
   $ hg up -q 1
   $ hg unshelve
   unshelving change 'default'
+  rebasing shelved changes
   $ hg status
   A d
 
@@ -473,6 +481,7 @@
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
   $ hg unshelve
   unshelving change 'default'
+  rebasing shelved changes
   $ hg status
   A d