merge with mainline.
authorVadim Gelfer <vadim.gelfer@gmail.com>
Mon, 08 May 2006 14:20:37 -0700
changeset 2228 8b106ff5b8a9
parent 2227 4f072bb06e89 (diff)
parent 2223 b72562060e45 (current diff)
child 2229 0ff326c2b286
merge with mainline.
--- a/hgext/notify.py
+++ b/hgext/notify.py
@@ -210,6 +210,7 @@ class notifier(object):
             msg['Message-Id'] = ('<hg.%s.%s.%s@%s>' %
                                  (short(node), int(time.time()),
                                   hash(self.repo.root), socket.getfqdn()))
+        msg['To'] = self.subs
 
         msgtext = msg.as_string(0)
         if self.ui.configbool('notify', 'test', True):
@@ -225,7 +226,8 @@ class notifier(object):
         if maxdiff == 0:
             return
         fp = templater.stringio()
-        commands.dodiff(fp, self.ui, self.repo, node,
+        prev = self.repo.changelog.parents(node)[0]
+        commands.dodiff(fp, self.ui, self.repo, prev,
                         self.repo.changelog.tip())
         difflines = fp.getvalue().splitlines(1)
         if maxdiff > 0 and len(difflines) > maxdiff:
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -2232,7 +2232,7 @@ def rename(ui, repo, *pats, **opts):
     return errs
 
 def revert(ui, repo, *pats, **opts):
-    """revert modified files or dirs to their states as of some revision
+    """revert files or dirs to their states as of some revision
 
     With no revision specified, revert the named files or directories
     to the contents they had in the parent of the working directory.
@@ -2361,6 +2361,35 @@ def revert(ui, repo, *pats, **opts):
     repo.dirstate.update(remove[0], 'r')
     return r
 
+def rollback(ui, repo):
+    """roll back the last transaction in this repository
+
+    Roll back the last transaction in this repository, restoring the
+    project to its state prior to the transaction.
+
+    Transactions are used to encapsulate the effects of all commands
+    that create new changesets or propagate existing changesets into a
+    repository. For example, the following commands are transactional,
+    and their effects can be rolled back:
+
+      commit
+      import
+      pull
+      push (with this repository as destination)
+      unbundle
+
+    This command should be used with care. There is only one level of
+    rollback, and there is no way to undo a rollback.
+
+    This command is not intended for use on public repositories. Once
+    changes are visible for pull by other users, rolling a transaction
+    back locally is ineffective (someone else may already have pulled
+    the changes). Furthermore, a race is possible with readers of the
+    repository; for example an in-progress pull from the repository
+    may fail if a rollback is performed.
+    """
+    repo.undo()
+
 def root(ui, repo):
     """print the root (top) of the current working dir
 
@@ -2676,19 +2705,12 @@ def unbundle(ui, repo, fname, **opts):
     return postincoming(ui, repo, modheads, opts['update'])
 
 def undo(ui, repo):
-    """undo the last commit or pull
-
-    Roll back the last pull or commit transaction on the
-    repository, restoring the project to its earlier state.
-
-    This command should be used with care. There is only one level of
-    undo and there is no redo.
-
-    This command is not intended for use on public repositories. Once
-    a change is visible for pull by other users, undoing it locally is
-    ineffective. Furthemore a race is possible with readers of the
-    repository, for example an ongoing pull from the repository will
-    fail and rollback.
+    """undo the last commit or pull (DEPRECATED)
+
+    (DEPRECATED)
+    This command is now deprecated and will be removed in a future
+    release. Please use the rollback command instead.  For usage
+    instructions, see the rollback command.
     """
     repo.undo()
 
@@ -3018,6 +3040,7 @@ table = {
           ('I', 'include', [], _('include names matching given patterns')),
           ('X', 'exclude', [], _('exclude names matching given patterns'))],
          _('hg revert [-r REV] [NAME]...')),
+    "rollback": (rollback, [], _('hg rollback')),
     "root": (root, [], _('hg root')),
     "^serve":
         (serve,
--- a/notes.txt
+++ b/notes.txt
@@ -121,7 +121,7 @@ changeset entry gets added last. We keep
 of each file touched and its length prior to the transaction. On
 abort, we simply truncate each file to its prior length. This is one
 of the nice properties of the append-only structure of the revlogs.
-We can also reuse this journal for "undo".
+We can also reuse this journal for "rollback".
 
 Merging between repositories:
 
--- a/tests/test-help.out
+++ b/tests/test-help.out
@@ -14,7 +14,7 @@ basic commands (use "hg help" for the fu
  pull       pull changes from the specified source
  push       push changes to the specified destination
  remove     remove the specified files on the next commit
- revert     revert modified files or dirs to their states as of some revision
+ revert     revert files or dirs to their states as of some revision
  serve      export the repository via HTTP
  status     show changed files in the working directory
  update     update or merge working directory
@@ -30,7 +30,7 @@ basic commands (use "hg help" for the fu
  pull       pull changes from the specified source
  push       push changes to the specified destination
  remove     remove the specified files on the next commit
- revert     revert modified files or dirs to their states as of some revision
+ revert     revert files or dirs to their states as of some revision
  serve      export the repository via HTTP
  status     show changed files in the working directory
  update     update or merge working directory
@@ -68,7 +68,8 @@ list of commands (use "hg help -v" to sh
  recover    roll back an interrupted transaction
  remove     remove the specified files on the next commit
  rename     rename files; equivalent of copy + remove
- revert     revert modified files or dirs to their states as of some revision
+ revert     revert files or dirs to their states as of some revision
+ rollback   roll back the last transaction in this repository
  root       print the root (top) of the current working dir
  serve      export the repository via HTTP
  status     show changed files in the working directory
@@ -76,7 +77,7 @@ list of commands (use "hg help -v" to sh
  tags       list repository tags
  tip        show the tip revision
  unbundle   apply a changegroup file
- undo       undo the last commit or pull
+ undo       undo the last commit or pull (DEPRECATED)
  update     update or merge working directory
  verify     verify the integrity of the repository
  version    output version and copyright information
@@ -110,7 +111,8 @@ list of commands (use "hg help -v" to sh
  recover    roll back an interrupted transaction
  remove     remove the specified files on the next commit
  rename     rename files; equivalent of copy + remove
- revert     revert modified files or dirs to their states as of some revision
+ revert     revert files or dirs to their states as of some revision
+ rollback   roll back the last transaction in this repository
  root       print the root (top) of the current working dir
  serve      export the repository via HTTP
  status     show changed files in the working directory
@@ -118,7 +120,7 @@ list of commands (use "hg help -v" to sh
  tags       list repository tags
  tip        show the tip revision
  unbundle   apply a changegroup file
- undo       undo the last commit or pull
+ undo       undo the last commit or pull (DEPRECATED)
  update     update or merge working directory
  verify     verify the integrity of the repository
  version    output version and copyright information
@@ -226,7 +228,7 @@ basic commands (use "hg help" for the fu
  pull       pull changes from the specified source
  push       push changes to the specified destination
  remove     remove the specified files on the next commit
- revert     revert modified files or dirs to their states as of some revision
+ revert     revert files or dirs to their states as of some revision
  serve      export the repository via HTTP
  status     show changed files in the working directory
  update     update or merge working directory
@@ -247,7 +249,7 @@ basic commands (use "hg help" for the fu
  pull       pull changes from the specified source
  push       push changes to the specified destination
  remove     remove the specified files on the next commit
- revert     revert modified files or dirs to their states as of some revision
+ revert     revert files or dirs to their states as of some revision
  serve      export the repository via HTTP
  status     show changed files in the working directory
  update     update or merge working directory
--- a/tests/test-hook
+++ b/tests/test-hook
@@ -81,7 +81,7 @@ echo '[hooks]' > ../a/.hg/hgrc
 echo 'preoutgoing = echo preoutgoing hook: s=$HG_SOURCE' >> ../a/.hg/hgrc
 echo 'outgoing = echo outgoing hook: n=$HG_NODE s=$HG_SOURCE' >> ../a/.hg/hgrc
 hg pull ../a
-hg undo
+hg rollback
 
 # preoutgoing hook can prevent outgoing changes
 echo 'preoutgoing.forbid = echo preoutgoing.forbid hook; exit 1' >> ../a/.hg/hgrc
rename from tests/test-undo
rename to tests/test-rollback
--- a/tests/test-undo
+++ b/tests/test-rollback
@@ -9,7 +9,7 @@ hg commit -m "test" -d "1000000 0"
 hg verify
 hg parents
 hg status
-hg undo
+hg rollback
 hg verify
 hg parents
 hg status
rename from tests/test-undo.out
rename to tests/test-rollback.out