changeset 15643:4fbd0eeeb52c

merge with i18n
author Matt Mackall <mpm@selenic.com>
date Thu, 15 Dec 2011 14:24:29 -0600
parents e5fd140a4e69 (diff) 7c3bfa8105dc (current diff)
children 43bb9c5ab963
files
diffstat 83 files changed, 470 insertions(+), 316 deletions(-) [+]
line wrap: on
line diff
--- a/contrib/check-code.py	Sat Dec 10 20:48:33 2011 +0200
+++ b/contrib/check-code.py	Thu Dec 15 14:24:29 2011 -0600
@@ -88,7 +88,7 @@
     (r'^(\S|  $ ).*(\S[ \t]+|^[ \t]+)\n', "trailing whitespace on non-output"),
     (uprefix + r'.*\|\s*sed', "use regex test output patterns instead of sed"),
     (uprefix + r'(true|exit 0)', "explicit zero exit unnecessary"),
-    (uprefix + r'.*\$\?', "explicit exit code checks unnecessary"),
+    (uprefix + r'.*(?<!\[)\$\?', "explicit exit code checks unnecessary"),
     (uprefix + r'.*\|\| echo.*(fail|error)',
      "explicit exit code checks unnecessary"),
     (uprefix + r'set -e', "don't use set -e"),
--- a/doc/hg.1.txt	Sat Dec 10 20:48:33 2011 +0200
+++ b/doc/hg.1.txt	Thu Dec 15 14:24:29 2011 -0600
@@ -50,16 +50,6 @@
 Files
 -----
 
-``.hgignore``
-    This file contains regular expressions (one per line) that
-    describe file names that should be ignored by **hg**. For details,
-    see |hgignore(5)|_.
-
-``.hgtags``
-    This file contains changeset hash values and text tag names (one
-    of each separated by spaces) that correspond to tagged versions of
-    the repository contents.
-
 ``/etc/mercurial/hgrc``, ``$HOME/.hgrc``, ``.hg/hgrc``
     This file contains defaults and configuration. Values in
     ``.hg/hgrc`` override those in ``$HOME/.hgrc``, and these override
@@ -67,6 +57,34 @@
     See |hgrc(5)|_ for details of the contents and format of these
     files.
 
+``.hgignore``
+    This file contains regular expressions (one per line) that
+    describe file names that should be ignored by **hg**. For details,
+    see |hgignore(5)|_.
+
+``.hgsub``
+    This file defines the locations of all subrepositories, and
+    tells where the subrepository checkouts came from. For details, see
+    :hg:`help subrepos`.
+
+``.hgsubstate``
+    This file is where Mercurial stores all nested repository states. *NB: This
+    file should not be edited manually.*
+
+``.hgtags``
+    This file contains changeset hash values and text tag names (one
+    of each separated by spaces) that correspond to tagged versions of
+    the repository contents. The file content is encoded using UTF-8.
+
+``.hg/last-message.txt``
+    This file is used by :hg:`commit` to store a backup of the commit message
+    in case the commit fails.
+
+``.hg/localtags``
+    This file can be used to define local tags which are not shared among
+    repositories. The file format is the same as for ``.hgtags``, but it is
+    encoded using the local system encoding.
+    
 Some commands (e.g. revert) produce backup files ending in ``.orig``,
 if the ``.orig`` file already exists and is not tracked by Mercurial,
 it will be overwritten.
--- a/hgext/convert/common.py	Sat Dec 10 20:48:33 2011 +0200
+++ b/hgext/convert/common.py	Thu Dec 15 14:24:29 2011 -0600
@@ -11,6 +11,8 @@
 from mercurial import util
 from mercurial.i18n import _
 
+propertycache = util.propertycache
+
 def encodeargs(args):
     def encodearg(s):
         lines = base64.encodestring(s)
@@ -321,14 +323,12 @@
         self.checkexit(status, ''.join(output))
         return output
 
-    def getargmax(self):
-        if '_argmax' in self.__dict__:
-            return self._argmax
-
+    @propertycache
+    def argmax(self):
         # POSIX requires at least 4096 bytes for ARG_MAX
-        self._argmax = 4096
+        argmax = 4096
         try:
-            self._argmax = os.sysconf("SC_ARG_MAX")
+            argmax = os.sysconf("SC_ARG_MAX")
         except:
             pass
 
@@ -339,13 +339,11 @@
 
         # Since ARG_MAX is for command line _and_ environment, lower our limit
         # (and make happy Windows shells while doing this).
-
-        self._argmax = self._argmax / 2 - 1
-        return self._argmax
+        return argmax / 2 - 1
 
     def limit_arglist(self, arglist, cmd, closestdin, *args, **kwargs):
         cmdlen = len(self._cmdline(cmd, closestdin, *args, **kwargs))
-        limit = self.getargmax() - cmdlen
+        limit = self.argmax - cmdlen
         bytes = 0
         fl = []
         for fn in arglist:
@@ -384,7 +382,7 @@
             return
         for i, line in enumerate(fp):
             try:
-                key, value = line.splitlines()[0].rsplit(' ', 1)
+                key, value = line.splitlines()[0].rstrip().rsplit(' ', 1)
             except ValueError:
                 raise util.Abort(
                     _('syntax error in %s(%d): key/value pair expected')
--- a/hgext/convert/subversion.py	Sat Dec 10 20:48:33 2011 +0200
+++ b/hgext/convert/subversion.py	Thu Dec 15 14:24:29 2011 -0600
@@ -1116,6 +1116,12 @@
         return u"svn:%s@%s" % (self.uuid, rev)
 
     def putcommit(self, files, copies, parents, commit, source, revmap):
+        for parent in parents:
+            try:
+                return self.revid(self.childmap[parent])
+            except KeyError:
+                pass
+
         # Apply changes to working copy
         for f, v in files:
             try:
@@ -1128,11 +1134,6 @@
                     self.copies.append([copies[f], f])
         files = [f[0] for f in files]
 
-        for parent in parents:
-            try:
-                return self.revid(self.childmap[parent])
-            except KeyError:
-                pass
         entries = set(self.delete)
         files = frozenset(files)
         entries.update(self.add_dirs(files.difference(entries)))
--- a/hgext/largefiles/overrides.py	Sat Dec 10 20:48:33 2011 +0200
+++ b/hgext/largefiles/overrides.py	Thu Dec 15 14:24:29 2011 -0600
@@ -635,10 +635,7 @@
     if subrepos:
         for subpath in ctx.substate:
             sub = ctx.sub(subpath)
-            try:
-                sub.archive(repo.ui, archiver, prefix)
-            except TypeError:
-                sub.archive(archiver, prefix)
+            sub.archive(repo.ui, archiver, prefix)
 
     archiver.done()
 
--- a/hgext/largefiles/reposetup.py	Sat Dec 10 20:48:33 2011 +0200
+++ b/hgext/largefiles/reposetup.py	Thu Dec 15 14:24:29 2011 -0600
@@ -10,7 +10,6 @@
 import copy
 import types
 import os
-import re
 
 from mercurial import context, error, manifest, match as match_, node, util
 from mercurial.i18n import _
@@ -54,12 +53,11 @@
                                 self).__contains__(filename):
                             return True
                         return super(lfiles_manifestdict,
-                            self).__contains__(lfutil.shortname+'/' + filename)
+                            self).__contains__(lfutil.standin(filename))
                 class lfiles_ctx(ctx.__class__):
                     def files(self):
                         filenames = super(lfiles_ctx, self).files()
-                        return [re.sub('^\\'+lfutil.shortname+'/', '',
-                                       filename) for filename in filenames]
+                        return [lfutil.splitstandin(f) or f for f in filenames]
                     def manifest(self):
                         man1 = super(lfiles_ctx, self).manifest()
                         man1.__class__ = lfiles_manifestdict
@@ -72,8 +70,7 @@
                             # Adding a null character will cause Mercurial to
                             # identify this as a binary file.
                             result = super(lfiles_ctx, self).filectx(
-                                lfutil.shortname + '/' + path, fileid,
-                                filelog)
+                                lfutil.standin(path), fileid, filelog)
                             olddata = result.data
                             result.data = lambda: olddata() + '\0'
                         return result
@@ -88,12 +85,8 @@
                 clean=False, unknown=False, listsubrepos=False):
             listignored, listclean, listunknown = ignored, clean, unknown
             if not self.lfstatus:
-                try:
-                    return super(lfiles_repo, self).status(node1, node2, match,
-                        listignored, listclean, listunknown, listsubrepos)
-                except TypeError:
-                    return super(lfiles_repo, self).status(node1, node2, match,
-                        listignored, listclean, listunknown)
+                return super(lfiles_repo, self).status(node1, node2, match,
+                    listignored, listclean, listunknown, listsubrepos)
             else:
                 # some calls in this function rely on the old version of status
                 self.lfstatus = False
@@ -127,17 +120,21 @@
                         return lfutil.standin(file)
                     return file
 
+                # Create a function that we can use to override what is
+                # normally the ignore matcher.  We've already checked
+                # for ignored files on the first dirstate walk, and
+                # unecessarily re-checking here causes a huge performance
+                # hit because lfdirstate only knows about largefiles
+                def _ignoreoverride(self):
+                    return False
+
                 m = copy.copy(match)
                 m._files = [tostandin(f) for f in m._files]
 
-                # get ignored, clean, and unknown but remove them
-                # later if they were not asked for
-                try:
-                    result = super(lfiles_repo, self).status(node1, node2, m,
-                        True, True, True, listsubrepos)
-                except TypeError:
-                    result = super(lfiles_repo, self).status(node1, node2, m,
-                        True, True, True)
+                # Get ignored files here even if we weren't asked for them; we
+                # must use the result here for filtering later
+                result = super(lfiles_repo, self).status(node1, node2, m,
+                    True, clean, unknown, listsubrepos)
                 if working:
                     # hold the wlock while we read largefiles and
                     # update the lfdirstate
@@ -148,15 +145,32 @@
                         # The status of these files was already computed using
                         # super's status.
                         lfdirstate = lfutil.openlfdirstate(ui, self)
+                        # Override lfdirstate's ignore matcher to not do
+                        # anything
+                        orig_ignore = lfdirstate._ignore
+                        lfdirstate._ignore = _ignoreoverride
+
                         match._files = [f for f in match._files if f in
                             lfdirstate]
-                        s = lfdirstate.status(match, [], listignored,
-                                listclean, listunknown)
+                        # Don't waste time getting the ignored and unknown
+                        # files again; we already have them
+                        s = lfdirstate.status(match, [], False,
+                                listclean, False)
                         (unsure, modified, added, removed, missing, unknown,
                                 ignored, clean) = s
+                        # Replace the list of ignored and unknown files with
+                        # the previously caclulated lists, and strip out the
+                        # largefiles
+                        lfiles = set(lfdirstate._map)
+                        ignored = set(result[5]).difference(lfiles)
+                        unknown = set(result[4]).difference(lfiles)
                         if parentworking:
                             for lfile in unsure:
-                                if ctx1[lfutil.standin(lfile)].data().strip() \
+                                standin = lfutil.standin(lfile)
+                                if standin not in ctx1:
+                                    # from second parent
+                                    modified.append(lfile)
+                                elif ctx1[standin].data().strip() \
                                         != lfutil.hashfile(self.wjoin(lfile)):
                                     modified.append(lfile)
                                 else:
@@ -177,6 +191,8 @@
                                         clean.append(lfile)
                                 else:
                                     added.append(lfile)
+                        # Replace the original ignore function
+                        lfdirstate._ignore = orig_ignore
                     finally:
                         wlock.release()
 
@@ -192,12 +208,13 @@
                     lfiles = (modified, added, removed, missing, [], [], clean)
                     result = list(result)
                     # Unknown files
+                    unknown = set(unknown).difference(ignored)
                     result[4] = [f for f in unknown
                                  if (repo.dirstate[f] == '?' and
                                      not lfutil.isstandin(f))]
-                    # Ignored files must be ignored by both the dirstate and
-                    # lfdirstate
-                    result[5] = set(ignored).intersection(set(result[5]))
+                    # Ignored files were calculated earlier by the dirstate,
+                    # and we already stripped out the largefiles from the list
+                    result[5] = ignored
                     # combine normal files and largefiles
                     normals = [[fn for fn in filelist
                                 if not lfutil.isstandin(fn)]
--- a/hgext/largefiles/uisetup.py	Sat Dec 10 20:48:33 2011 +0200
+++ b/hgext/largefiles/uisetup.py	Thu Dec 15 14:24:29 2011 -0600
@@ -23,8 +23,9 @@
     entry = extensions.wrapcommand(commands.table, 'add',
                                    overrides.override_add)
     addopt = [('', 'large', None, _('add as largefile')),
-            ('', 'lfsize', '', _('add all files above this size (in megabytes) '
-                                 'as largefiles (default: 10)'))]
+              ('', 'lfsize', '', _('add all files above this size '
+                                   '(in megabytes) as largefiles '
+                                   '(default: 10)'))]
     entry[1].extend(addopt)
 
     entry = extensions.wrapcommand(commands.table, 'addremove',
--- a/hgext/schemes.py	Sat Dec 10 20:48:33 2011 +0200
+++ b/hgext/schemes.py	Thu Dec 15 14:24:29 2011 -0600
@@ -72,9 +72,10 @@
         return hg._peerlookup(url).instance(ui, url, create)
 
 def hasdriveletter(orig, path):
-    for scheme in schemes:
-        if path.startswith(scheme + ':'):
-            return False
+    if path:
+        for scheme in schemes:
+            if path.startswith(scheme + ':'):
+                return False
     return orig(path)
 
 schemes = {
--- a/mercurial/bookmarks.py	Sat Dec 10 20:48:33 2011 +0200
+++ b/mercurial/bookmarks.py	Thu Dec 15 14:24:29 2011 -0600
@@ -128,10 +128,10 @@
 
 def updatecurrentbookmark(repo, oldnode, curbranch):
     try:
-        update(repo, oldnode, repo.branchtags()[curbranch])
+        return update(repo, oldnode, repo.branchtags()[curbranch])
     except KeyError:
         if curbranch == "default": # no default branch!
-            update(repo, oldnode, repo.lookup("tip"))
+            return update(repo, oldnode, repo.lookup("tip"))
         else:
             raise util.Abort(_("branch %s not found") % curbranch)
 
@@ -147,6 +147,7 @@
             update = True
     if update:
         repo._writebookmarks(marks)
+    return update
 
 def listbookmarks(repo):
     # We may try to list bookmarks on a repo type that does not
@@ -155,7 +156,9 @@
 
     d = {}
     for k, v in marks.iteritems():
-        d[k] = hex(v)
+        # don't expose local divergent bookmarks
+        if '@' not in k and not k.endswith('@'):
+            d[k] = hex(v)
     return d
 
 def pushbookmark(repo, key, old, new):
@@ -175,7 +178,7 @@
     finally:
         w.release()
 
-def updatefromremote(ui, repo, remote):
+def updatefromremote(ui, repo, remote, path):
     ui.debug("checking for updated bookmarks\n")
     rb = remote.listkeys('bookmarks')
     changed = False
@@ -192,8 +195,21 @@
                     changed = True
                     ui.status(_("updating bookmark %s\n") % k)
                 else:
-                    ui.warn(_("not updating divergent"
-                                   " bookmark %s\n") % k)
+                    # find a unique @ suffix
+                    for x in range(1, 100):
+                        n = '%s@%d' % (k, x)
+                        if n not in repo._bookmarks:
+                            break
+                    # try to use an @pathalias suffix
+                    # if an @pathalias already exists, we overwrite (update) it
+                    for p, u in ui.configitems("paths"):
+                        if path == u:
+                            n = '%s@%s' % (k, p)
+
+                    repo._bookmarks[n] = cr.node()
+                    changed = True
+                    ui.warn(_("divergent bookmark %s stored as %s\n") % (k, n))
+
     if changed:
         write(repo)
 
--- a/mercurial/commands.py	Sat Dec 10 20:48:33 2011 +0200
+++ b/mercurial/commands.py	Thu Dec 15 14:24:29 2011 -0600
@@ -248,9 +248,11 @@
     if not pats:
         raise util.Abort(_('at least one filename or pattern is required'))
 
+    hexfn = ui.debugflag and hex or short
+
     opmap = [('user', ' ', lambda x: ui.shortuser(x[0].user())),
              ('number', ' ', lambda x: str(x[0].rev())),
-             ('changeset', ' ', lambda x: short(x[0].node())),
+             ('changeset', ' ', lambda x: hexfn(x[0].node())),
              ('date', ' ', getdate),
              ('file', ' ', lambda x: x[0].path()),
              ('line_number', ':', lambda x: str(x[1])),
@@ -726,10 +728,10 @@
              rename=None, inactive=False):
     '''track a line of development with movable markers
 
-    Bookmarks are pointers to certain commits that move when
-    committing. Bookmarks are local. They can be renamed, copied and
-    deleted. It is possible to use bookmark names in :hg:`merge` and
-    :hg:`update` to merge and update respectively to a given bookmark.
+    Bookmarks are pointers to certain commits that move when committing.
+    Bookmarks are local. They can be renamed, copied and deleted. It is
+    possible to use :hg:`merge NAME` to merge from a given bookmark, and
+    :hg:`update NAME` to update to a given bookmark.
 
     You can use :hg:`bookmark NAME` to set a bookmark on the working
     directory's parent revision with the given name. If you specify
@@ -826,6 +828,11 @@
 def branch(ui, repo, label=None, **opts):
     """set or show the current branch name
 
+    .. note::
+       Branch names are permanent and global. Use :hg:`bookmark` to create a
+       light-weight bookmark instead. See :hg:`help glossary` for more
+       information about named branches and bookmarks.
+
     With no argument, show the current branch name. With one argument,
     set the working directory branch name (the branch will not exist
     in the repository until the next commit). Standard practice
@@ -842,11 +849,6 @@
     Use the command :hg:`update` to switch to an existing branch. Use
     :hg:`commit --close-branch` to mark this branch as closed.
 
-    .. note::
-       Branch names are permanent. Use :hg:`bookmark` to create a
-       light-weight bookmark instead. See :hg:`help glossary` for more
-       information about named branches and bookmarks.
-
     Returns 0 on success.
     """
 
@@ -862,6 +864,8 @@
                                  hint=_("use 'hg update' to switch to it"))
         repo.dirstate.setbranch(label)
         ui.status(_('marked working directory as branch %s\n') % label)
+        ui.status(_('(branches are permanent and global, '
+                    'did you want a bookmark?)\n'))
     else:
         ui.write("%s\n" % repo.dirstate.branch())
 
@@ -4042,10 +4046,10 @@
                                    "please merge with an explicit rev")
                                  % branch,
                                  hint=_("run 'hg heads' to see all heads"))
-            msg = _('there is nothing to merge')
-            if parent != repo.lookup(repo[None].branch()):
-                msg = _('%s - use "hg update" instead') % msg
-            raise util.Abort(msg)
+            msg, hint = _('nothing to merge'), None
+            if parent != repo.lookup(branch):
+                hint = _("use 'hg update' instead")
+            raise util.Abort(msg, hint=hint)
 
         if parent not in bheads:
             raise util.Abort(_('working directory not at a head revision'),
@@ -4273,7 +4277,7 @@
             raise util.Abort(err)
 
     modheads = repo.pull(other, heads=revs, force=opts.get('force'))
-    bookmarks.updatefromremote(ui, repo, other)
+    bookmarks.updatefromremote(ui, repo, other, source)
     if checkout:
         checkout = str(repo.changelog.rev(other.lookup(checkout)))
     repo._subtoppath = source
--- a/mercurial/help/config.txt	Sat Dec 10 20:48:33 2011 +0200
+++ b/mercurial/help/config.txt	Thu Dec 15 14:24:29 2011 -0600
@@ -229,7 +229,7 @@
 
 
 ``annotate``
-""""""""
+""""""""""""
 
 Settings used when displaying file annotations. All values are
 Booleans and default to False. See ``diff`` section for related
--- a/mercurial/localrepo.py	Sat Dec 10 20:48:33 2011 +0200
+++ b/mercurial/localrepo.py	Thu Dec 15 14:24:29 2011 -0600
@@ -852,7 +852,6 @@
                         % self.dirstate.branch())
 
             self.dirstate.invalidate()
-            self.destroyed()
             parents = tuple([p.rev() for p in self.parents()])
             if len(parents) > 1:
                 ui.status(_('working directory now based on '
@@ -860,6 +859,7 @@
             else:
                 ui.status(_('working directory now based on '
                             'revision %d\n') % parents)
+        self.destroyed()
         return 0
 
     def invalidatecaches(self):
--- a/mercurial/merge.py	Sat Dec 10 20:48:33 2011 +0200
+++ b/mercurial/merge.py	Thu Dec 15 14:24:29 2011 -0600
@@ -180,8 +180,9 @@
             act("divergent renames", "dr", of, fl)
 
     repo.ui.note(_("resolving manifests\n"))
-    repo.ui.debug(" overwrite %s partial %s\n" % (overwrite, bool(partial)))
-    repo.ui.debug(" ancestor %s local %s remote %s\n" % (pa, p1, p2))
+    repo.ui.debug(" overwrite: %s, partial: %s\n"
+                  % (bool(overwrite), bool(partial)))
+    repo.ui.debug(" ancestor: %s, local: %s, remote: %s\n" % (pa, p1, p2))
 
     m1, m2, ma = p1.manifest(), p2.manifest(), pa.manifest()
     copied = set(copy.values())
@@ -519,11 +520,12 @@
                                    " has no effect"))
             elif pa == p1:
                 if p1.branch() == p2.branch():
-                    raise util.Abort(_("nothing to merge (use 'hg update'"
-                                       " or check 'hg heads')"))
+                    raise util.Abort(_("nothing to merge"),
+                                     hint=_("use 'hg update' "
+                                            "or check 'hg heads'"))
             if not force and (wc.files() or wc.deleted()):
-                raise util.Abort(_("outstanding uncommitted changes "
-                                   "(use 'hg status' to list changes)"))
+                raise util.Abort(_("outstanding uncommitted changes"),
+                                 hint=_("use 'hg status' to list changes"))
             for s in wc.substate:
                 if wc.sub(s).dirty():
                     raise util.Abort(_("outstanding uncommitted changes in "
--- a/mercurial/sshrepo.py	Sat Dec 10 20:48:33 2011 +0200
+++ b/mercurial/sshrepo.py	Thu Dec 15 14:24:29 2011 -0600
@@ -5,6 +5,7 @@
 # This software may be used and distributed according to the terms of the
 # GNU General Public License version 2 or any later version.
 
+import re
 from i18n import _
 import util, error, wireproto
 
@@ -20,6 +21,8 @@
 
 def _serverquote(s):
     '''quote a string for the remote shell ... which we assume is sh'''
+    if re.match('[a-zA-Z0-9@%_+=:,./-]*$', s):
+        return s
     return "'%s'" % s.replace("'", "'\\''")
 
 class sshrepository(wireproto.wirerepository):
--- a/mercurial/subrepo.py	Sat Dec 10 20:48:33 2011 +0200
+++ b/mercurial/subrepo.py	Thu Dec 15 14:24:29 2011 -0600
@@ -484,7 +484,8 @@
                 self._repo.ui.status(_('pulling subrepo %s from %s\n')
                                      % (subrelpath(self), srcurl))
                 self._repo.pull(other)
-            bookmarks.updatefromremote(self._repo.ui, self._repo, other)
+            bookmarks.updatefromremote(self._repo.ui, self._repo, other,
+                                       srcurl)
 
     def get(self, state, overwrite=False):
         self._get(state)
--- a/mercurial/util.py	Sat Dec 10 20:48:33 2011 +0200
+++ b/mercurial/util.py	Thu Dec 15 14:24:29 2011 -0600
@@ -1629,6 +1629,8 @@
         'path'
         >>> str(url('file:///tmp/foo/bar'))
         'file:///tmp/foo/bar'
+        >>> str(url('file:///c:/tmp/foo/bar'))
+        'file:///c:/tmp/foo/bar'
         >>> print url(r'bundle:foo\bar')
         bundle:foo\bar
         """
@@ -1643,8 +1645,11 @@
         s = self.scheme + ':'
         if self.user or self.passwd or self.host:
             s += '//'
-        elif self.scheme and (not self.path or self.path.startswith('/')):
+        elif self.scheme and (not self.path or self.path.startswith('/')
+                              or hasdriveletter(self.path)):
             s += '//'
+            if hasdriveletter(self.path):
+                s += '/'
         if self.user:
             s += urllib.quote(self.user, safe=self._safechars)
         if self.passwd:
@@ -1716,7 +1721,7 @@
     return bool(url(path).scheme)
 
 def hasdriveletter(path):
-    return path[1:2] == ':' and path[0:1].isalpha()
+    return path and path[1:2] == ':' and path[0:1].isalpha()
 
 def urllocalpath(path):
     return url(path, parsequery=False, parsefragment=False).localpath()
--- a/tests/test-acl.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-acl.t	Thu Dec 15 14:24:29 2011 -0600
@@ -1360,6 +1360,7 @@
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg branch foobar
   marked working directory as branch foobar
+  (branches are permanent and global, did you want a bookmark?)
   $ hg commit -m 'create foobar'
   $ echo 'foo contents' > abc.txt
   $ hg add abc.txt
--- a/tests/test-backout.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-backout.t	Thu Dec 15 14:24:29 2011 -0600
@@ -225,11 +225,13 @@
   adding default
   $ hg branch branch1
   marked working directory as branch branch1
+  (branches are permanent and global, did you want a bookmark?)
   $ echo branch1 > file1
   $ hg ci -d '1 0' -Am file1
   adding file1
   $ hg branch branch2
   marked working directory as branch branch2
+  (branches are permanent and global, did you want a bookmark?)
   $ echo branch2 > file2
   $ hg ci -d '2 0' -Am file2
   adding file2
--- a/tests/test-bheads.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-bheads.t	Thu Dec 15 14:24:29 2011 -0600
@@ -20,6 +20,7 @@
   $ hg add a
   $ hg branch a
   marked working directory as branch a
+  (branches are permanent and global, did you want a bookmark?)
   $ hg commit -m "Adding a branch"
   $ heads
   1: Adding a branch (a)
@@ -36,6 +37,7 @@
   $ hg add b
   $ hg branch b
   marked working directory as branch b
+  (branches are permanent and global, did you want a bookmark?)
   $ hg commit -m "Adding b branch"
   $ heads
   2: Adding b branch (b)
@@ -117,6 +119,7 @@
   $ hg add c
   $ hg branch c
   marked working directory as branch c
+  (branches are permanent and global, did you want a bookmark?)
   $ hg commit -m "Adding c branch"
   $ heads
   7: Adding c branch (c)
@@ -287,6 +290,7 @@
 
   $ hg branch b
   marked working directory as branch b
+  (branches are permanent and global, did you want a bookmark?)
   $ echo 1 > b
   $ hg ci -Am "b2: Initial root for branch b"
   adding b
@@ -298,6 +302,7 @@
   $ hg up -q null
   $ hg branch -f b
   marked working directory as branch b
+  (branches are permanent and global, did you want a bookmark?)
   $ echo 1 > bb
   $ hg ci -Am "b4 (NN): new topo root for branch b"
   adding bb
@@ -312,6 +317,7 @@
 
   $ hg branch -f default
   marked working directory as branch default
+  (branches are permanent and global, did you want a bookmark?)
   $ echo 1 > aa
   $ hg ci -Am "a6 (BN): new branch root"
   adding aa
@@ -331,6 +337,7 @@
   $ hg merge -q 3
   $ hg branch -f default
   marked working directory as branch default
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -m "a8 (BB): weird new branch root"
   created new head
 
--- a/tests/test-bookmarks-pushpull.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-bookmarks-pushpull.t	Thu Dec 15 14:24:29 2011 -0600
@@ -110,17 +110,18 @@
      foo                       -1:000000000000
      foobar                    -1:000000000000
 
-  $ hg pull ../a
-  pulling from ../a
+  $ hg pull --config paths.foo=../a foo
+  pulling from $TESTTMP/a
   searching for changes
   adding changesets
   adding manifests
   adding file changes
   added 1 changesets with 1 changes to 1 files (+1 heads)
-  not updating divergent bookmark X
+  divergent bookmark X stored as X@foo
   (run 'hg heads' to see heads, 'hg merge' to merge)
   $ hg book
    * X                         1:9b140be10808
+     X@foo                     2:0d2164f0ce0d
      Y                         0:4e3505fd9583
      foo                       -1:000000000000
      foobar                    -1:000000000000
@@ -175,7 +176,7 @@
   $ hg pull -B Z http://localhost:$HGPORT/
   pulling from http://localhost:$HGPORT/
   no changes found
-  not updating divergent bookmark X
+  divergent bookmark X stored as X@1
   importing bookmark Z
   $ hg clone http://localhost:$HGPORT/ cloned-bookmarks
   requesting all changes
--- a/tests/test-bookmarks.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-bookmarks.t	Thu Dec 15 14:24:29 2011 -0600
@@ -324,6 +324,7 @@
   $ echo y > tobundle/y
   $ hg -R tobundle branch test
   marked working directory as branch test
+  (branches are permanent and global, did you want a bookmark?)
   $ hg -R tobundle add tobundle/y
   $ hg -R tobundle commit -m'y'
   $ hg -R tobundle bundle tobundle.hg
--- a/tests/test-branch-option.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-branch-option.t	Thu Dec 15 14:24:29 2011 -0600
@@ -4,6 +4,7 @@
   $ cd branch
   $ hg branch a
   marked working directory as branch a
+  (branches are permanent and global, did you want a bookmark?)
   $ echo a > foo
   $ hg ci -d '0 0' -Ama
   adding foo
@@ -13,6 +14,7 @@
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg branch c
   marked working directory as branch c
+  (branches are permanent and global, did you want a bookmark?)
   $ echo c > foo
   $ hg ci -d '0 0' -mc
   $ hg tag -l z
@@ -29,18 +31,21 @@
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg branch b
   marked working directory as branch b
+  (branches are permanent and global, did you want a bookmark?)
   $ echo b > foo
   $ hg ci -d '0 0' -mb
   $ hg up 0
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg --encoding utf-8 branch æ
   marked working directory as branch \xc3\xa6 (esc)
+  (branches are permanent and global, did you want a bookmark?)
   $ echo ae1 > foo
   $ hg ci -d '0 0' -mae1
   $ hg up 0
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg --encoding utf-8 branch -f æ
   marked working directory as branch \xc3\xa6 (esc)
+  (branches are permanent and global, did you want a bookmark?)
   $ echo ae2 > foo
   $ hg ci -d '0 0' -mae2
   created new head
@@ -48,6 +53,7 @@
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg branch -f b
   marked working directory as branch b
+  (branches are permanent and global, did you want a bookmark?)
   $ echo b2 > foo
   $ hg ci -d '0 0' -mb2
   created new head
--- a/tests/test-branch-tag-confict.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-branch-tag-confict.t	Thu Dec 15 14:24:29 2011 -0600
@@ -14,6 +14,7 @@
 
   $ hg branch branchortag
   marked working directory as branch branchortag
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -m 'Create a branch with the same name as a tag.'
 
 This is what we have:
--- a/tests/test-branches.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-branches.t	Thu Dec 15 14:24:29 2011 -0600
@@ -8,10 +8,12 @@
   $ hg add a
   $ hg branch a
   marked working directory as branch a
+  (branches are permanent and global, did you want a bookmark?)
   $ hg commit -d '1 0' -m "Adding a branch"
 
   $ hg branch q
   marked working directory as branch q
+  (branches are permanent and global, did you want a bookmark?)
   $ echo 'aa' >a
   $ hg branch -C
   reset working directory to branch a
@@ -23,6 +25,7 @@
   $ hg add b
   $ hg branch b
   marked working directory as branch b
+  (branches are permanent and global, did you want a bookmark?)
   $ hg commit -d '2 0' -m "Adding b branch"
 
   $ echo 'bh1' >bh1
@@ -39,6 +42,7 @@
   $ hg add c
   $ hg branch c
   marked working directory as branch c
+  (branches are permanent and global, did you want a bookmark?)
   $ hg commit -d '5 0' -m "Adding c branch"
 
   $ hg branch tip
@@ -55,6 +59,7 @@
   $ hg add d
   $ hg branch 'a branch name much longer than the default justification used by branches'
   marked working directory as branch a branch name much longer than the default justification used by branches
+  (branches are permanent and global, did you want a bookmark?)
   $ hg commit -d '6 0' -m "Adding d branch"
 
   $ hg branches
--- a/tests/test-clone-update-order.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-clone-update-order.t	Thu Dec 15 14:24:29 2011 -0600
@@ -6,6 +6,7 @@
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
   $ hg branch mine
   marked working directory as branch mine
+  (branches are permanent and global, did you want a bookmark?)
   $ echo hello > world
   $ hg commit -Am hello
   adding world
@@ -13,6 +14,7 @@
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
   $ hg branch other
   marked working directory as branch other
+  (branches are permanent and global, did you want a bookmark?)
   $ echo good > bye
   $ hg commit -Am other
   adding bye
--- a/tests/test-clone.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-clone.t	Thu Dec 15 14:24:29 2011 -0600
@@ -132,6 +132,7 @@
   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
   $ hg branch stable
   marked working directory as branch stable
+  (branches are permanent and global, did you want a bookmark?)
   $ echo some text >a
   $ hg ci -m "starting branch stable"
   $ hg tag ref2
--- a/tests/test-commit-multiple.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-commit-multiple.t	Thu Dec 15 14:24:29 2011 -0600
@@ -31,6 +31,7 @@
 commit bug fixes on bug fix branch
   $ hg branch fixes
   marked working directory as branch fixes
+  (branches are permanent and global, did you want a bookmark?)
   $ echo fix1 > bugfix
   $ echo fix1 >> file1
   $ hg ci -Am"fix 1"
@@ -52,6 +53,7 @@
   1 files updated, 0 files merged, 2 files removed, 0 files unresolved
   $ hg branch release
   marked working directory as branch release
+  (branches are permanent and global, did you want a bookmark?)
   $ hg transplant 2 3
   applying [0-9a-f]{12} (re)
   [0-9a-f]{12} transplanted to [0-9a-f]{12} (re)
--- a/tests/test-convert-clonebranches.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-convert-clonebranches.t	Thu Dec 15 14:24:29 2011 -0600
@@ -15,6 +15,7 @@
   $ hg up -qC 0
   $ hg branch branch0
   marked working directory as branch branch0
+  (branches are permanent and global, did you want a bookmark?)
   $ echo b > b
   $ hg ci -qAm addb
   $ hg up -qC
@@ -52,11 +53,13 @@
   $ cd source
   $ hg branch branch1
   marked working directory as branch branch1
+  (branches are permanent and global, did you want a bookmark?)
   $ echo a > file1
   $ hg ci -qAm c1
   $ hg up -qC mergeab
   $ hg branch branch2
   marked working directory as branch branch2
+  (branches are permanent and global, did you want a bookmark?)
   $ echo a > file2
   $ hg ci -qAm c2
   $ hg merge branch1
@@ -64,6 +67,7 @@
   (branch merge, don't forget to commit)
   $ hg branch branch3
   marked working directory as branch branch3
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -qAm c3
   $ cd ..
 
--- a/tests/test-convert-datesort.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-convert-datesort.t	Thu Dec 15 14:24:29 2011 -0600
@@ -11,6 +11,7 @@
   adding a
   $ hg branch brancha
   marked working directory as branch brancha
+  (branches are permanent and global, did you want a bookmark?)
   $ echo a >> a
   $ hg ci -m a1 -d '2 0'
   $ echo a >> a
@@ -21,6 +22,7 @@
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg branch branchb
   marked working directory as branch branchb
+  (branches are permanent and global, did you want a bookmark?)
   $ echo b >> b
   $ hg ci -Am b0 -d '6 0'
   adding b
--- a/tests/test-convert-filemap.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-convert-filemap.t	Thu Dec 15 14:24:29 2011 -0600
@@ -299,6 +299,7 @@
   $ cd branchpruning
   $ hg branch foo
   marked working directory as branch foo
+  (branches are permanent and global, did you want a bookmark?)
   $ echo a > a
   $ hg ci -Am adda
   adding a
@@ -307,12 +308,14 @@
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg branch empty
   marked working directory as branch empty
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -m emptybranch
   $ hg ci --close-branch -m closeempty
   $ hg up 0
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg branch default
   marked working directory as branch default
+  (branches are permanent and global, did you want a bookmark?)
   $ echo b > b
   $ hg ci -Am addb
   adding b
--- a/tests/test-convert-splicemap.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-convert-splicemap.t	Thu Dec 15 14:24:29 2011 -0600
@@ -49,7 +49,7 @@
 splice repo2 on repo1
 
   $ cat > splicemap <<EOF
-  > $CHILDID1 $PARENTID1
+  > $CHILDID1 $PARENTID1 
   > $CHILDID2 $PARENTID2,$CHILDID1
   > EOF
   $ hg clone repo1 target1
--- a/tests/test-copy-move-merge.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-copy-move-merge.t	Thu Dec 15 14:24:29 2011 -0600
@@ -29,8 +29,8 @@
      b -> a *
     checking for directory renames
   resolving manifests
-   overwrite None partial False
-   ancestor b8bf91eeebbc local add3f11052fa+ remote 17c05bb7fcb6
+   overwrite: False, partial: False
+   ancestor: b8bf91eeebbc, local: add3f11052fa+, remote: 17c05bb7fcb6
    a: remote moved to c -> m
    a: remote moved to b -> m
   preserving a for resolve of b
--- a/tests/test-double-merge.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-double-merge.t	Thu Dec 15 14:24:29 2011 -0600
@@ -33,8 +33,8 @@
      bar -> foo *
     checking for directory renames
   resolving manifests
-   overwrite None partial False
-   ancestor e6dc8efe11cc local 6a0df1dad128+ remote 484bf6903104
+   overwrite: False, partial: False
+   ancestor: e6dc8efe11cc, local: 6a0df1dad128+, remote: 484bf6903104
    foo: versions differ -> m
    foo: remote copied to bar -> m
   preserving foo for resolve of bar
--- a/tests/test-encoding-align.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-encoding-align.t	Thu Dec 15 14:24:29 2011 -0600
@@ -115,12 +115,15 @@
 
   $ hg branch $S
   marked working directory as branch \xe7\x9f\xad\xe5\x90\x8d (esc)
+  (branches are permanent and global, did you want a bookmark?)
   $ hg tag $S
   $ hg branch $M
   marked working directory as branch MIDDLE_
+  (branches are permanent and global, did you want a bookmark?)
   $ hg tag $M
   $ hg branch $L
   marked working directory as branch \xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d (esc)
+  (branches are permanent and global, did you want a bookmark?)
   $ hg tag $L
 
 check alignment of branches
--- a/tests/test-encoding.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-encoding.t	Thu Dec 15 14:24:29 2011 -0600
@@ -42,6 +42,7 @@
   $ HGENCODING=latin-1 hg tag `cat latin-1-tag`
   $ HGENCODING=latin-1 hg branch `cat latin-1-tag`
   marked working directory as branch \xe9 (esc)
+  (branches are permanent and global, did you want a bookmark?)
   $ HGENCODING=latin-1 hg ci -m 'latin1 branch'
   $ rm .hg/branch
 
--- a/tests/test-fetch.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-fetch.t	Thu Dec 15 14:24:29 2011 -0600
@@ -144,12 +144,14 @@
   adding a
   $ hg -R nbase branch a
   marked working directory as branch a
+  (branches are permanent and global, did you want a bookmark?)
   $ echo a > nbase/a
   $ hg -R nbase ci -m a
   $ hg -R nbase up -C 0
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R nbase branch b
   marked working directory as branch b
+  (branches are permanent and global, did you want a bookmark?)
   $ echo b > nbase/b
   $ hg -R nbase ci -Am b
   adding b
@@ -318,6 +320,7 @@
   $ hg -R n1 ci -m next
   $ hg -R n2 branch topic
   marked working directory as branch topic
+  (branches are permanent and global, did you want a bookmark?)
   $ hg -R n2 fetch -m merge n1
   abort: working dir not at branch tip (use "hg update" to check out branch tip)
   [255]
@@ -336,11 +339,13 @@
   adding a
   $ hg --cwd ib1 branch second
   marked working directory as branch second
+  (branches are permanent and global, did you want a bookmark?)
   $ echo b > ib1/b
   $ hg --cwd ib1 ci -Am onsecond
   adding b
   $ hg --cwd ib1 branch -f default
   marked working directory as branch default
+  (branches are permanent and global, did you want a bookmark?)
   $ echo c > ib1/c
   $ hg --cwd ib1 ci -Am newdefault
   adding c
--- a/tests/test-graft.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-graft.t	Thu Dec 15 14:24:29 2011 -0600
@@ -101,8 +101,8 @@
      b -> a *
     checking for directory renames
   resolving manifests
-   overwrite False partial False
-   ancestor 68795b066622 local d2e44c99fd3f+ remote 5d205f8b35b6
+   overwrite: False, partial: False
+   ancestor: 68795b066622, local: d2e44c99fd3f+, remote: 5d205f8b35b6
    b: local copied/moved to a -> m
   preserving b for resolve of b
   updating: b 1/1 files (100.00%)
@@ -122,8 +122,8 @@
     unmatched files in local:
      a.orig
   resolving manifests
-   overwrite False partial False
-   ancestor 4c60f11aa304 local 6f5ea6ac8b70+ remote 97f8bfe72746
+   overwrite: False, partial: False
+   ancestor: 4c60f11aa304, local: 6f5ea6ac8b70+, remote: 97f8bfe72746
    e: remote is newer -> g
   updating: e 1/1 files (100.00%)
   getting e
@@ -139,8 +139,8 @@
     unmatched files in local:
      a.orig
   resolving manifests
-   overwrite False partial False
-   ancestor 4c60f11aa304 local 77eb504366ab+ remote 9c233e8e184d
+   overwrite: False, partial: False
+   ancestor: 4c60f11aa304, local: 77eb504366ab+, remote: 9c233e8e184d
    e: versions differ -> m
    d: remote is newer -> g
   preserving e for resolve of e
--- a/tests/test-hgweb-commands.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-hgweb-commands.t	Thu Dec 15 14:24:29 2011 -0600
@@ -22,6 +22,7 @@
   $ echo another > foo
   $ hg branch stable
   marked working directory as branch stable
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -Ambranch
   $ hg serve --config server.uncompressed=False -n test -p $HGPORT -d --pid-file=hg.pid -E errors.log
   $ cat hg.pid >> $DAEMON_PIDS
--- a/tests/test-http-branchmap.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-http-branchmap.t	Thu Dec 15 14:24:29 2011 -0600
@@ -7,6 +7,7 @@
   $ hg init a
   $ hg --encoding utf-8 -R a branch æ
   marked working directory as branch \xc3\xa6 (esc)
+  (branches are permanent and global, did you want a bookmark?)
   $ echo foo > a/foo
   $ hg -R a ci -Am foo
   adding foo
--- a/tests/test-impexp-branch.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-impexp-branch.t	Thu Dec 15 14:24:29 2011 -0600
@@ -19,6 +19,7 @@
   $ hg commit -m "No branch."
   $ hg branch abranch
   marked working directory as branch abranch
+  (branches are permanent and global, did you want a bookmark?)
   $ echo "Rev  2" >rev
   $ hg commit -m "With branch."
 
--- a/tests/test-import-bypass.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-import-bypass.t	Thu Dec 15 14:24:29 2011 -0600
@@ -18,6 +18,7 @@
   $ echo a >> a
   $ hg branch foo
   marked working directory as branch foo
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -Am changea
   $ hg export . > ../test.diff
   $ hg up null
--- a/tests/test-init.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-init.t	Thu Dec 15 14:24:29 2011 -0600
@@ -105,13 +105,13 @@
 output of dummyssh
 
   $ cat dummylog
-  Got arguments 1:user@dummy 2:'hg' init 'remote2'
-  Got arguments 1:user@dummy 2:'hg' -R 'remote2' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R 'remote2' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' init 'remote1'
-  Got arguments 1:user@dummy 2:'hg' -R 'remote1' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' init 'remote1'
-  Got arguments 1:user@dummy 2:'hg' init 'remote1'
+  Got arguments 1:user@dummy 2:hg init remote2
+  Got arguments 1:user@dummy 2:hg -R remote2 serve --stdio
+  Got arguments 1:user@dummy 2:hg -R remote2 serve --stdio
+  Got arguments 1:user@dummy 2:hg init remote1
+  Got arguments 1:user@dummy 2:hg -R remote1 serve --stdio
+  Got arguments 1:user@dummy 2:hg init remote1
+  Got arguments 1:user@dummy 2:hg init remote1
 
 comparing repositories
 
--- a/tests/test-issue1306.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-issue1306.t	Thu Dec 15 14:24:29 2011 -0600
@@ -11,6 +11,7 @@
 
   $ hg branch br
   marked working directory as branch br
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -Amb
 
   $ echo c > c
--- a/tests/test-issue1802.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-issue1802.t	Thu Dec 15 14:24:29 2011 -0600
@@ -55,8 +55,8 @@
     unmatched files in local:
      b
   resolving manifests
-   overwrite None partial False
-   ancestor a03b0deabf2b local d6fa54f68ae1+ remote 2d8bcf2dda39
+   overwrite: False, partial: False
+   ancestor: a03b0deabf2b, local: d6fa54f68ae1+, remote: 2d8bcf2dda39
    a: update permissions -> e
   updating: a 1/1 files (100.00%)
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
--- a/tests/test-issue522.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-issue522.t	Thu Dec 15 14:24:29 2011 -0600
@@ -29,8 +29,8 @@
     unmatched files in local:
      bar
   resolving manifests
-   overwrite None partial False
-   ancestor bbd179dfa0a7 local 71766447bdbb+ remote 4d9e78aaceee
+   overwrite: False, partial: False
+   ancestor: bbd179dfa0a7, local: 71766447bdbb+, remote: 4d9e78aaceee
    foo: remote is newer -> g
   updating: foo 1/1 files (100.00%)
   getting foo
--- a/tests/test-issue619.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-issue619.t	Thu Dec 15 14:24:29 2011 -0600
@@ -8,6 +8,7 @@
   $ echo b > b
   $ hg branch b
   marked working directory as branch b
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -Amb
   adding b
 
--- a/tests/test-issue672.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-issue672.t	Thu Dec 15 14:24:29 2011 -0600
@@ -32,8 +32,8 @@
      1a -> 1 
     checking for directory renames
   resolving manifests
-   overwrite None partial False
-   ancestor 81f4b099af3d local c64f439569a9+ remote c12dcd37c90a
+   overwrite: False, partial: False
+   ancestor: 81f4b099af3d, local: c64f439569a9+, remote: c12dcd37c90a
    1: other deleted -> r
    1a: remote created -> g
   updating: 1 1/2 files (50.00%)
@@ -63,8 +63,8 @@
      1a -> 1 *
     checking for directory renames
   resolving manifests
-   overwrite None partial False
-   ancestor c64f439569a9 local e327dca35ac8+ remote 746e9549ea96
+   overwrite: False, partial: False
+   ancestor: c64f439569a9, local: e327dca35ac8+, remote: 746e9549ea96
    1a: local copied/moved to 1 -> m
   preserving 1a for resolve of 1a
   updating: 1a 1/1 files (100.00%)
@@ -86,8 +86,8 @@
      1a -> 1 *
     checking for directory renames
   resolving manifests
-   overwrite None partial False
-   ancestor c64f439569a9 local 746e9549ea96+ remote e327dca35ac8
+   overwrite: False, partial: False
+   ancestor: c64f439569a9, local: 746e9549ea96+, remote: e327dca35ac8
    1: remote moved to 1a -> m
   preserving 1 for resolve of 1a
   removing 1
--- a/tests/test-issue842.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-issue842.t	Thu Dec 15 14:24:29 2011 -0600
@@ -31,6 +31,7 @@
   $ echo crap > a
   $ hg branch testing
   marked working directory as branch testing
+  (branches are permanent and global, did you want a bookmark?)
 
 Should not issue warning:
 
--- a/tests/test-keyword.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-keyword.t	Thu Dec 15 14:24:29 2011 -0600
@@ -1005,6 +1005,7 @@
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg branch foo
   marked working directory as branch foo
+  (branches are permanent and global, did you want a bookmark?)
   $ mv a a.bak
   $ echo foobranch > a
   $ cat a.bak >> a
--- a/tests/test-largefiles.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-largefiles.t	Thu Dec 15 14:24:29 2011 -0600
@@ -647,6 +647,23 @@
   $ cat sub2/large7
   large7
 
+Test status after merging with a branch that introduces a new largefile:
+
+  $ echo large > large
+  $ hg add --large large
+  $ hg commit -m 'add largefile'
+  $ hg update -q ".^"
+  $ echo change >> normal3
+  $ hg commit -m 'some change'
+  created new head
+  $ hg merge
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  (branch merge, don't forget to commit)
+  getting changed largefiles
+  1 largefiles updated, 0 removed
+  $ hg status
+  M large
+
 Test that a normal file and a largefile with the same name and path cannot
 coexist.
 
--- a/tests/test-log.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-log.t	Thu Dec 15 14:24:29 2011 -0600
@@ -629,6 +629,7 @@
   adding a
   $ hg branch test
   marked working directory as branch test
+  (branches are permanent and global, did you want a bookmark?)
   $ echo b > b
   $ hg ci -A -m "commit on test"
   adding b
--- a/tests/test-merge-closedheads.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-merge-closedheads.t	Thu Dec 15 14:24:29 2011 -0600
@@ -68,6 +68,7 @@
 hg branch some-branch
   $ hg branch some-branch
   marked working directory as branch some-branch
+  (branches are permanent and global, did you want a bookmark?)
 hg commit
   $ hgcommit -m 'started some-branch'
 hg commit --close-branch
--- a/tests/test-merge-commit.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-merge-commit.t	Thu Dec 15 14:24:29 2011 -0600
@@ -69,8 +69,8 @@
   $ hg --debug merge 3
     searching for copies back to rev 1
   resolving manifests
-   overwrite None partial False
-   ancestor 0f2ff26688b9 local 2263c1be0967+ remote 0555950ead28
+   overwrite: False, partial: False
+   ancestor: 0f2ff26688b9, local: 2263c1be0967+, remote: 0555950ead28
    bar: versions differ -> m
   preserving bar for resolve of bar
   updating: bar 1/1 files (100.00%)
@@ -156,8 +156,8 @@
   $ hg --debug merge 3
     searching for copies back to rev 1
   resolving manifests
-   overwrite None partial False
-   ancestor 0f2ff26688b9 local 2263c1be0967+ remote 3ffa6b9e35f0
+   overwrite: False, partial: False
+   ancestor: 0f2ff26688b9, local: 2263c1be0967+, remote: 3ffa6b9e35f0
    bar: versions differ -> m
   preserving bar for resolve of bar
   updating: bar 1/1 files (100.00%)
--- a/tests/test-merge-default.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-merge-default.t	Thu Dec 15 14:24:29 2011 -0600
@@ -66,7 +66,7 @@
 Should fail because at tip:
 
   $ hg merge
-  abort: there is nothing to merge
+  abort: nothing to merge
   [255]
 
   $ hg up 0
@@ -75,7 +75,8 @@
 Should fail because there is only one head:
 
   $ hg merge
-  abort: there is nothing to merge - use "hg update" instead
+  abort: nothing to merge
+  (use 'hg update' instead)
   [255]
 
   $ hg up 3
@@ -84,6 +85,7 @@
   $ echo f >> a
   $ hg branch foobranch
   marked working directory as branch foobranch
+  (branches are permanent and global, did you want a bookmark?)
   $ hg commit -mf
 
 Should fail because merge with other branch:
--- a/tests/test-merge-force.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-merge-force.t	Thu Dec 15 14:24:29 2011 -0600
@@ -19,7 +19,8 @@
 Should fail, since there are deleted files:
 
   $ hg merge
-  abort: outstanding uncommitted changes (use 'hg status' to list changes)
+  abort: outstanding uncommitted changes
+  (use 'hg status' to list changes)
   [255]
 
 Should succeed with --force:
--- a/tests/test-merge-types.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-merge-types.t	Thu Dec 15 14:24:29 2011 -0600
@@ -19,8 +19,8 @@
   $ hg merge --debug
     searching for copies back to rev 1
   resolving manifests
-   overwrite None partial False
-   ancestor c334dc3be0da local 521a1e40188f+ remote 3574f3e69b1c
+   overwrite: False, partial: False
+   ancestor: c334dc3be0da, local: 521a1e40188f+, remote: 3574f3e69b1c
    conflicting flags for a
   (n)one, e(x)ec or sym(l)ink? n
    a: update permissions -> e
@@ -47,8 +47,8 @@
   $ hg merge --debug
     searching for copies back to rev 1
   resolving manifests
-   overwrite None partial False
-   ancestor c334dc3be0da local 3574f3e69b1c+ remote 521a1e40188f
+   overwrite: False, partial: False
+   ancestor: c334dc3be0da, local: 3574f3e69b1c+, remote: 521a1e40188f
    conflicting flags for a
   (n)one, e(x)ec or sym(l)ink? n
    a: remote is newer -> g
--- a/tests/test-merge1.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-merge1.t	Thu Dec 15 14:24:29 2011 -0600
@@ -108,7 +108,8 @@
   $ echo This is file b22 > b
 merge fails
   $ hg merge 2
-  abort: outstanding uncommitted changes (use 'hg status' to list changes)
+  abort: outstanding uncommitted changes
+  (use 'hg status' to list changes)
   [255]
 merge expected!
   $ hg merge -f 2
@@ -144,7 +145,8 @@
   $ echo This is file b33 > b
 merge of b should fail
   $ hg merge 2
-  abort: outstanding uncommitted changes (use 'hg status' to list changes)
+  abort: outstanding uncommitted changes
+  (use 'hg status' to list changes)
   [255]
 merge of b expected
   $ hg merge -f 2
--- a/tests/test-merge7.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-merge7.t	Thu Dec 15 14:24:29 2011 -0600
@@ -81,8 +81,8 @@
   $ hg merge --debug
     searching for copies back to rev 1
   resolving manifests
-   overwrite None partial False
-   ancestor 96b70246a118 local 50c3a7e29886+ remote 40d11a4173a8
+   overwrite: False, partial: False
+   ancestor: 96b70246a118, local: 50c3a7e29886+, remote: 40d11a4173a8
    test.txt: versions differ -> m
   preserving test.txt for resolve of test.txt
   updating: test.txt 1/1 files (100.00%)
--- a/tests/test-mq-safety.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-mq-safety.t	Thu Dec 15 14:24:29 2011 -0600
@@ -76,6 +76,7 @@
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
   $ hg branch b
   marked working directory as branch b
+  (branches are permanent and global, did you want a bookmark?)
   $ echo c > c
   $ hg ci -Amc
   adding c
@@ -125,6 +126,7 @@
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg branch branch
   marked working directory as branch branch
+  (branches are permanent and global, did you want a bookmark?)
   $ echo b > b
   $ hg ci -Am addb
   adding b
--- a/tests/test-newbranch.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-newbranch.t	Thu Dec 15 14:24:29 2011 -0600
@@ -9,11 +9,13 @@
   $ hg ci -m "initial"
   $ hg branch foo
   marked working directory as branch foo
+  (branches are permanent and global, did you want a bookmark?)
   $ hg branch
   foo
   $ hg ci -m "add branch name"
   $ hg branch bar
   marked working directory as branch bar
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -m "change branch name"
 
 Branch shadowing:
@@ -25,6 +27,7 @@
 
   $ hg branch -f default
   marked working directory as branch default
+  (branches are permanent and global, did you want a bookmark?)
 
   $ hg ci -m "clear branch name"
   created new head
@@ -186,6 +189,7 @@
 
   $ hg branch foobar
   marked working directory as branch foobar
+  (branches are permanent and global, did you want a bookmark?)
 
   $ hg up
   abort: branch foobar not found
@@ -195,6 +199,7 @@
 
   $ hg branch ff
   marked working directory as branch ff
+  (branches are permanent and global, did you want a bookmark?)
 
   $ echo ff > ff
   $ hg ci -Am'fast forward'
@@ -256,6 +261,7 @@
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
   $ hg branch test
   marked working directory as branch test
+  (branches are permanent and global, did you want a bookmark?)
   $ echo e >> e
   $ hg ci -Ame
   adding e
--- a/tests/test-patchbomb.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-patchbomb.t	Thu Dec 15 14:24:29 2011 -0600
@@ -2020,6 +2020,7 @@
 
   $ hg branch test
   marked working directory as branch test
+  (branches are permanent and global, did you want a bookmark?)
 
   $ echo d > d
   $ hg add d
--- a/tests/test-pull-branch.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-pull-branch.t	Thu Dec 15 14:24:29 2011 -0600
@@ -5,6 +5,7 @@
   adding foo
   $ hg branch branchA
   marked working directory as branch branchA
+  (branches are permanent and global, did you want a bookmark?)
   $ echo a1 > foo
   $ hg ci -ma1 # 1
 
@@ -32,6 +33,7 @@
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg branch branchB
   marked working directory as branch branchB
+  (branches are permanent and global, did you want a bookmark?)
   $ echo b1 > foo
   $ hg ci -mb1 # 3
 
@@ -139,6 +141,7 @@
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg branch branchC
   marked working directory as branch branchC
+  (branches are permanent and global, did you want a bookmark?)
   $ echo b1 > bar 
   $ hg ci -Am "commit on branchC on tt"
   adding bar
--- a/tests/test-push-warn.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-push-warn.t	Thu Dec 15 14:24:29 2011 -0600
@@ -393,6 +393,7 @@
   $ hg init j
   $ hg -R j branch a
   marked working directory as branch a
+  (branches are permanent and global, did you want a bookmark?)
   $ echo init > j/foo
   $ hg -R j ci -Am init
   adding foo
@@ -403,6 +404,7 @@
   $ hg -R j ci -m a1
   $ hg -R k branch b
   marked working directory as branch b
+  (branches are permanent and global, did you want a bookmark?)
   $ echo b > k/foo
   $ hg -R k ci -m b
   $ hg -R k up 0
@@ -466,11 +468,13 @@
   $ cd n
   $ hg branch A
   marked working directory as branch A
+  (branches are permanent and global, did you want a bookmark?)
   $ echo a >a
   $ hg ci -Ama
   adding a
   $ hg branch B
   marked working directory as branch B
+  (branches are permanent and global, did you want a bookmark?)
   $ echo b >b
   $ hg ci -Amb
   adding b
@@ -543,11 +547,13 @@
   $ cd o
   $ hg branch A
   marked working directory as branch A
+  (branches are permanent and global, did you want a bookmark?)
   $ echo a >a
   $ hg ci -Ama
   adding a
   $ hg branch B
   marked working directory as branch B
+  (branches are permanent and global, did you want a bookmark?)
   $ echo b >b
   $ hg ci -Amb
   adding b
@@ -629,6 +635,7 @@
   $ cd p
   $ hg branch A
   marked working directory as branch A
+  (branches are permanent and global, did you want a bookmark?)
   $ echo a0 >a
   $ hg ci -Ama0
   adding a
@@ -638,6 +645,7 @@
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
   $ hg branch B
   marked working directory as branch B
+  (branches are permanent and global, did you want a bookmark?)
   $ echo b0 >b
   $ hg ci -Amb0
   adding b
@@ -652,6 +660,7 @@
   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
   $ hg branch -f B
   marked working directory as branch B
+  (branches are permanent and global, did you want a bookmark?)
   $ echo a3 >a
   $ hg ci -ma3
   created new head
@@ -659,6 +668,7 @@
   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
   $ hg branch -f A
   marked working directory as branch A
+  (branches are permanent and global, did you want a bookmark?)
   $ echo b3 >b
   $ hg ci -mb3
   created new head
--- a/tests/test-rebase-cache.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-rebase-cache.t	Thu Dec 15 14:24:29 2011 -0600
@@ -17,6 +17,7 @@
 
   $ hg branch branch1
   marked working directory as branch branch1
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -m 'branch1'
 
   $ echo b > b
@@ -27,6 +28,7 @@
 
   $ hg branch branch2
   marked working directory as branch branch2
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -m 'branch2'
 
   $ echo c > C
@@ -37,6 +39,7 @@
 
   $ hg branch -f branch2
   marked working directory as branch branch2
+  (branches are permanent and global, did you want a bookmark?)
   $ echo d > d
   $ hg ci -Am D
   adding d
@@ -51,6 +54,7 @@
 
   $ hg branch branch3
   marked working directory as branch branch3
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -m 'branch3'
 
   $ echo f > f
--- a/tests/test-rebase-check-restore.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-rebase-check-restore.t	Thu Dec 15 14:24:29 2011 -0600
@@ -36,6 +36,7 @@
 
   $ hg branch 'notdefault'
   marked working directory as branch notdefault
+  (branches are permanent and global, did you want a bookmark?)
   $ echo F >> A
   $ hg ci -m F
 
--- a/tests/test-rebase-collapse.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-rebase-collapse.t	Thu Dec 15 14:24:29 2011 -0600
@@ -452,12 +452,14 @@
 
   $ hg branch '1'
   marked working directory as branch 1
+  (branches are permanent and global, did you want a bookmark?)
   $ echo 'b' > b
   $ hg ci -Am 'B'
   adding b
 
   $ hg branch '2'
   marked working directory as branch 2
+  (branches are permanent and global, did you want a bookmark?)
   $ echo 'c' > c
   $ hg ci -Am 'C'
   adding c
--- a/tests/test-rebase-named-branches.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-rebase-named-branches.t	Thu Dec 15 14:24:29 2011 -0600
@@ -28,6 +28,7 @@
 
   $ hg branch dev
   marked working directory as branch dev
+  (branches are permanent and global, did you want a bookmark?)
 
   $ echo x > x
 
--- a/tests/test-record.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-record.t	Thu Dec 15 14:24:29 2011 -0600
@@ -896,6 +896,7 @@
 
   $ hg branch thatbranch
   marked working directory as branch thatbranch
+  (branches are permanent and global, did you want a bookmark?)
 
   $ hg ci -m'new head'
 
--- a/tests/test-rename-dir-merge.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-rename-dir-merge.t	Thu Dec 15 14:24:29 2011 -0600
@@ -39,8 +39,8 @@
     file a/c -> b/c
     file a/d -> b/d
   resolving manifests
-   overwrite None partial False
-   ancestor f9b20c0d4c51 local ce36d17b18fb+ remote 397f8b00a740
+   overwrite: False, partial: False
+   ancestor: f9b20c0d4c51, local: ce36d17b18fb+, remote: 397f8b00a740
    a/d: remote renamed directory to b/d -> d
    a/c: remote renamed directory to b/c -> d
    a/b: other deleted -> r
@@ -94,8 +94,8 @@
     dir a/ -> b/
     file a/c -> b/c
   resolving manifests
-   overwrite None partial False
-   ancestor f9b20c0d4c51 local 397f8b00a740+ remote ce36d17b18fb
+   overwrite: False, partial: False
+   ancestor: f9b20c0d4c51, local: 397f8b00a740+, remote: ce36d17b18fb
    None: local renamed directory to b/c -> d
   updating:None 1/1 files (100.00%)
   getting a/c to b/c
--- a/tests/test-rename-merge1.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-rename-merge1.t	Thu Dec 15 14:24:29 2011 -0600
@@ -35,8 +35,8 @@
     checking for directory renames
    a2: divergent renames -> dr
   resolving manifests
-   overwrite None partial False
-   ancestor af1939970a1c local 044f8520aeeb+ remote 85c198ef2f6c
+   overwrite: False, partial: False
+   ancestor: af1939970a1c, local: 044f8520aeeb+, remote: 85c198ef2f6c
    a: remote moved to b -> m
    b2: remote created -> g
   preserving a for resolve of b
--- a/tests/test-rename-merge2.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-rename-merge2.t	Thu Dec 15 14:24:29 2011 -0600
@@ -84,8 +84,8 @@
      b -> a *
     checking for directory renames
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local e300d1c794ec+ remote 4ce40f5aca24
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: e300d1c794ec+, remote: 4ce40f5aca24
    rev: versions differ -> m
    a: remote copied to b -> m
   preserving a for resolve of b
@@ -119,8 +119,8 @@
      b -> a *
     checking for directory renames
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local 86a2aa42fc76+ remote f4db7e329e71
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: 86a2aa42fc76+, remote: f4db7e329e71
    a: remote is newer -> g
    b: local copied/moved to a -> m
    rev: versions differ -> m
@@ -157,8 +157,8 @@
      b -> a *
     checking for directory renames
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local e300d1c794ec+ remote bdb19105162a
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: e300d1c794ec+, remote: bdb19105162a
    rev: versions differ -> m
    a: remote moved to b -> m
   preserving a for resolve of b
@@ -192,8 +192,8 @@
      b -> a *
     checking for directory renames
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local 02963e448370+ remote f4db7e329e71
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: 02963e448370+, remote: f4db7e329e71
    b: local copied/moved to a -> m
    rev: versions differ -> m
   preserving b for resolve of b
@@ -226,8 +226,8 @@
      b -> a 
     checking for directory renames
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local 94b33a1b7f2d+ remote 4ce40f5aca24
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: 94b33a1b7f2d+, remote: 4ce40f5aca24
    rev: versions differ -> m
    b: remote created -> g
   preserving rev for resolve of rev
@@ -256,8 +256,8 @@
      b -> a 
     checking for directory renames
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local 86a2aa42fc76+ remote 97c705ade336
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 97c705ade336
    rev: versions differ -> m
   preserving rev for resolve of rev
   updating: rev 1/1 files (100.00%)
@@ -283,8 +283,8 @@
      b -> a 
     checking for directory renames
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local 94b33a1b7f2d+ remote bdb19105162a
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: 94b33a1b7f2d+, remote: bdb19105162a
    a: other deleted -> r
    rev: versions differ -> m
    b: remote created -> g
@@ -315,8 +315,8 @@
      b -> a 
     checking for directory renames
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local 02963e448370+ remote 97c705ade336
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: 02963e448370+, remote: 97c705ade336
    rev: versions differ -> m
   preserving rev for resolve of rev
   updating: rev 1/1 files (100.00%)
@@ -336,8 +336,8 @@
   --------------
     searching for copies back to rev 1
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local 62e7bf090eba+ remote 49b6d8032493
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: 62e7bf090eba+, remote: 49b6d8032493
    b: versions differ -> m
    rev: versions differ -> m
   preserving b for resolve of b
@@ -375,8 +375,8 @@
     checking for directory renames
    a: divergent renames -> dr
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local 02963e448370+ remote fe905ef2c33e
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: 02963e448370+, remote: fe905ef2c33e
    rev: versions differ -> m
    c: remote created -> g
   preserving rev for resolve of rev
@@ -404,8 +404,8 @@
   --------------
     searching for copies back to rev 1
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local 86a2aa42fc76+ remote af30c7647fc7
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: 86a2aa42fc76+, remote: af30c7647fc7
    b: versions differ -> m
    rev: versions differ -> m
   preserving b for resolve of b
@@ -432,8 +432,8 @@
   --------------
     searching for copies back to rev 1
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local 59318016310c+ remote bdb19105162a
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a
    a: other deleted -> r
    b: versions differ -> m
    rev: versions differ -> m
@@ -462,8 +462,8 @@
   --------------
     searching for copies back to rev 1
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local 86a2aa42fc76+ remote 8dbce441892a
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a
    a: remote is newer -> g
    b: versions differ -> m
    rev: versions differ -> m
@@ -493,8 +493,8 @@
   --------------
     searching for copies back to rev 1
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local 59318016310c+ remote bdb19105162a
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a
    a: other deleted -> r
    b: versions differ -> m
    rev: versions differ -> m
@@ -523,8 +523,8 @@
   --------------
     searching for copies back to rev 1
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local 86a2aa42fc76+ remote 8dbce441892a
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 8dbce441892a
    a: remote is newer -> g
    b: versions differ -> m
    rev: versions differ -> m
@@ -554,8 +554,8 @@
   --------------
     searching for copies back to rev 1
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local 0b76e65c8289+ remote 4ce40f5aca24
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: 0b76e65c8289+, remote: 4ce40f5aca24
    b: versions differ -> m
    rev: versions differ -> m
   preserving b for resolve of b
@@ -582,8 +582,8 @@
   --------------
     searching for copies back to rev 1
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local 02963e448370+ remote 8dbce441892a
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: 02963e448370+, remote: 8dbce441892a
    b: versions differ -> m
    rev: versions differ -> m
   remote changed a which local deleted
@@ -615,8 +615,8 @@
   --------------
     searching for copies back to rev 1
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local 0b76e65c8289+ remote bdb19105162a
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: 0b76e65c8289+, remote: bdb19105162a
    local changed a which remote deleted
   use (c)hanged version or (d)elete? c
    a: prompt keep -> a
@@ -652,8 +652,8 @@
      b -> a *
     checking for directory renames
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local e300d1c794ec+ remote 49b6d8032493
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: e300d1c794ec+, remote: 49b6d8032493
    rev: versions differ -> m
    a: remote moved to b -> m
   preserving a for resolve of b
@@ -686,8 +686,8 @@
      b -> a *
     checking for directory renames
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local 62e7bf090eba+ remote f4db7e329e71
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: 62e7bf090eba+, remote: f4db7e329e71
    b: local copied/moved to a -> m
    rev: versions differ -> m
   preserving b for resolve of b
@@ -724,8 +724,8 @@
      b -> a *
     checking for directory renames
   resolving manifests
-   overwrite None partial False
-   ancestor 924404dff337 local 02963e448370+ remote 2b958612230f
+   overwrite: False, partial: False
+   ancestor: 924404dff337, local: 02963e448370+, remote: 2b958612230f
    b: local copied/moved to a -> m
    rev: versions differ -> m
    c: remote created -> g
--- a/tests/test-revset-outgoing.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-revset-outgoing.t	Thu Dec 15 14:24:29 2011 -0600
@@ -21,6 +21,7 @@
 
   $ hg branch stable
   marked working directory as branch stable
+  (branches are permanent and global, did you want a bookmark?)
   $ echo bar >> a
   $ hg ci -qm2
 
--- a/tests/test-revset.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-revset.t	Thu Dec 15 14:24:29 2011 -0600
@@ -17,22 +17,26 @@
   $ echo a > a
   $ hg branch a
   marked working directory as branch a
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -Aqm0
 
   $ echo b > b
   $ hg branch b
   marked working directory as branch b
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -Aqm1
 
   $ rm a
   $ hg branch a-b-c-
   marked working directory as branch a-b-c-
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -Aqm2 -u Bob
 
   $ hg co 1
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg branch +a+b+c+
   marked working directory as branch +a+b+c+
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -Aqm3
 
   $ hg co 2  # interleave
@@ -40,12 +44,14 @@
   $ echo bb > b
   $ hg branch -- -a-b-c-
   marked working directory as branch -a-b-c-
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -Aqm4 -d "May 12 2005"
 
   $ hg co 3
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg branch /a/b/c/
   marked working directory as branch /a/b/c/
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -Aqm"5 bug"
 
   $ hg merge 4
@@ -53,14 +59,17 @@
   (branch merge, don't forget to commit)
   $ hg branch _a_b_c_
   marked working directory as branch _a_b_c_
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -Aqm"6 issue619"
 
   $ hg branch .a.b.c.
   marked working directory as branch .a.b.c.
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -Aqm7
 
   $ hg branch all
   marked working directory as branch all
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci --close-branch -Aqm8
   abort: can only close branch heads
   [255]
@@ -69,6 +78,7 @@
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg branch é
   marked working directory as branch \xc3\xa9 (esc)
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -Aqm9
 
   $ hg tag -r6 1.0
--- a/tests/test-rollback.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-rollback.t	Thu Dec 15 14:24:29 2011 -0600
@@ -43,6 +43,7 @@
 Test issue 902 (current branch is preserved)
   $ hg branch test
   marked working directory as branch test
+  (branches are permanent and global, did you want a bookmark?)
   $ hg rollback
   repository tip rolled back to revision 0 (undo commit)
   working directory now based on revision 0
@@ -58,6 +59,7 @@
   $ hg commit -m "test3"
   $ hg branch test
   marked working directory as branch test
+  (branches are permanent and global, did you want a bookmark?)
   $ rm .hg/undo.branch
   $ hg rollback
   repository tip rolled back to revision 0 (undo commit)
--- a/tests/test-ssh.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-ssh.t	Thu Dec 15 14:24:29 2011 -0600
@@ -275,27 +275,27 @@
   3fb238f49e8c
 
   $ cat dummylog
-  Got arguments 1:user@dummy 2:'hg' -R 'nonexistent' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R '/$TESTTMP/nonexistent' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R 'remote' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R 'remote' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R 'remote' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R 'remote' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R 'local' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R '$TESTTMP/local' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R 'remote' serve --stdio
+  Got arguments 1:user@dummy 2:hg -R nonexistent serve --stdio
+  Got arguments 1:user@dummy 2:hg -R /$TESTTMP/nonexistent serve --stdio
+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio
+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio
+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio
+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio
+  Got arguments 1:user@dummy 2:hg -R local serve --stdio
+  Got arguments 1:user@dummy 2:hg -R $TESTTMP/local serve --stdio
+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio
   changegroup-in-remote hook: HG_NODE=a28a9d1a809cab7d4e2fde4bee738a9ede948b60 HG_SOURCE=serve HG_URL=remote:ssh:127.0.0.1 
-  Got arguments 1:user@dummy 2:'hg' -R 'remote' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R 'remote' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R 'remote' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R 'remote' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R 'remote' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R 'remote' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R 'remote' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R 'remote' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R 'remote' serve --stdio
+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio
+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio
+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio
+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio
+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio
+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio
+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio
+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio
+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio
   changegroup-in-remote hook: HG_NODE=1383141674ec756a6056f6a9097618482fe0f4a6 HG_SOURCE=serve HG_URL=remote:ssh:127.0.0.1 
-  Got arguments 1:user@dummy 2:'hg' -R 'remote' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' init 'a repo'
-  Got arguments 1:user@dummy 2:'hg' -R 'a repo' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R 'a repo' serve --stdio
+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio
+  Got arguments 1:user@dummy 2:hg init 'a repo'
+  Got arguments 1:user@dummy 2:hg -R 'a repo' serve --stdio
+  Got arguments 1:user@dummy 2:hg -R 'a repo' serve --stdio
--- a/tests/test-subrepo-relative-path.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-subrepo-relative-path.t	Thu Dec 15 14:24:29 2011 -0600
@@ -98,8 +98,8 @@
   no changes found
 
   $ cat dummylog
-  Got arguments 1:user@dummy 2:'hg' -R 'cloned' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R 'sub' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R '$TESTTMP/cloned' serve --stdio
-  Got arguments 1:user@dummy 2:'hg' -R '$TESTTMP/sub' serve --stdio
+  Got arguments 1:user@dummy 2:hg -R cloned serve --stdio
+  Got arguments 1:user@dummy 2:hg -R sub serve --stdio
+  Got arguments 1:user@dummy 2:hg -R $TESTTMP/cloned serve --stdio
+  Got arguments 1:user@dummy 2:hg -R $TESTTMP/sub serve --stdio
   $ rm $BINDIR/ssh
--- a/tests/test-subrepo-svn.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-subrepo-svn.t	Thu Dec 15 14:24:29 2011 -0600
@@ -37,8 +37,7 @@
   Adding         src/alpha
   Transmitting file data ..
   Committed revision 1.
-  $ svn up
-  At revision 1.
+  $ svn up -q
   $ echo "externals -r1 $SVNREPO/externals" > extdef
   $ svn propset -F extdef svn:externals src
   property 'svn:externals' set on 'src'
@@ -105,13 +104,13 @@
   branch: default
   commit: 1 modified, 1 subrepos
   update: (current)
-  $ hg commit --subrepos -m 'Message!'
+  $ hg commit --subrepos -m 'Message!' | grep -v Updating
   committing subrepository s
   Sending*s/alpha (glob)
   Transmitting file data .
   Committed revision 3.
   
-  Fetching external item into '$TESTTMP/sub/t/s/externals'
+  Fetching external item into '*s/externals'* (glob)
   External at revision 1.
   
   At revision 3.
@@ -129,12 +128,7 @@
   $ svn mkdir "$SVNREPO/unrelated" -m 'create unrelated'
   
   Committed revision 4.
-  $ svn up s
-  
-  Fetching external item into 's/externals'
-  External at revision 1.
-  
-  At revision 4.
+  $ svn up -q s
   $ hg sum
   parent: 2:* tip (glob)
    Message!
@@ -151,19 +145,12 @@
 add a commit from svn
 
   $ cd "$WCROOT"/src
-  $ svn up
-  U    alpha
-  
-  Fetching external item into 'externals'
-  A    externals/other
-  Updated external to revision 1.
-  
-  Updated to revision 4.
+  $ svn up -q
   $ echo xyz >> alpha
   $ svn propset svn:mime-type 'text/xml' alpha
   property 'svn:mime-type' set on 'alpha'
   $ svn ci -m 'amend a from svn'
-  Sending        src/alpha
+  Sending        *alpha (glob)
   Transmitting file data .
   Committed revision 5.
   $ cd ../../sub/t
@@ -171,10 +158,9 @@
 this commit from hg will fail
 
   $ echo zzz >> s/alpha
-  $ hg ci --subrepos -m 'amend alpha from hg'
+  $ (hg ci --subrepos -m 'amend alpha from hg' 2>&1; echo "[$?]") | grep -vi 'out of date'
   committing subrepository s
-  abort: svn: Commit failed (details follow):
-  svn: (Out of date)?.*/src/alpha.*(is out of date)? (re)
+  abort: svn:*Commit failed (details follow): (glob)
   [255]
   $ svn revert -q s/alpha
 
@@ -182,10 +168,9 @@
 
   $ svn propset svn:mime-type 'text/html' s/alpha
   property 'svn:mime-type' set on 's/alpha'
-  $ hg ci --subrepos -m 'amend alpha from hg'
+  $ (hg ci --subrepos -m 'amend alpha from hg' 2>&1; echo "[$?]") | grep -vi 'out of date'
   committing subrepository s
-  abort: svn: Commit failed (details follow):
-  svn: (Out of date)?.*/src/alpha.*(is out of date)? (re)
+  abort: svn:*Commit failed (details follow): (glob)
   [255]
   $ svn revert -q s/alpha
 
@@ -228,7 +213,7 @@
   A    tc/s/alpha
    U   tc/s
   
-  Fetching external item into 'tc/s/externals'
+  Fetching external item into 'tc/s/externals'* (glob)
   A    tc/s/externals/other
   Checked out external at revision 1.
   
@@ -236,7 +221,7 @@
   A    tc/subdir/s/alpha
    U   tc/subdir/s
   
-  Fetching external item into 'tc/subdir/s/externals'
+  Fetching external item into 'tc/subdir/s/externals'* (glob)
   A    tc/subdir/s/externals/other
   Checked out external at revision 1.
   
@@ -272,18 +257,18 @@
   $ echo c1 > f1
   $ echo c1 > f2
   $ svn add f1 -q
-  $ svn status
+  $ svn status | sort
+  
   ? *    a (glob)
-  X *    externals (glob)
   ? *    f2 (glob)
+  A *    f1 (glob)
   M *    alpha (glob)
-  A *    f1 (glob)
-  
-  Performing status on external item at 'externals'
+  Performing status on external item at 'externals'* (glob)
+  X *    externals (glob)
   $ cd ../..
   $ hg -R t update -C
   
-  Fetching external item into 't/s/externals'
+  Fetching external item into 't/s/externals'* (glob)
   Checked out external at revision 1.
   
   Checked out revision 3.
@@ -295,7 +280,7 @@
   ? *    f1 (glob)
   ? *    f2 (glob)
   
-  Performing status on external item at 'externals'
+  Performing status on external item at 'externals'* (glob)
 
 Sticky subrepositories, no changes
   $ cd $TESTTMP/sub/t
@@ -306,9 +291,9 @@
   3
   $ cd ..
   $ hg update 1
-  U    $TESTTMP/sub/t/s/alpha
+  U    *s/alpha (glob)
   
-  Fetching external item into '$TESTTMP/sub/t/s/externals'
+  Fetching external item into '*s/externals'* (glob)
   Checked out external at revision 1.
   
   Checked out revision 2.
@@ -344,9 +329,9 @@
   2M
   $ cd ..
   $ hg update --clean tip
-  U    $TESTTMP/sub/t/s/alpha
+  U    *s/alpha (glob)
   
-  Fetching external item into '$TESTTMP/sub/t/s/externals'
+  Fetching external item into '*s/externals'* (glob)
   Checked out external at revision 1.
   
   Checked out revision 3.
@@ -360,14 +345,7 @@
   3
   $ cd ..
   $ cd s
-  $ svn update -r 1
-  U    alpha
-   U   .
-  
-  Fetching external item into 'externals'
-  Updated external to revision 1.
-  
-  Updated to revision 1.
+  $ svn update -qr 1
   $ cd ..
   $ hg update 1
    subrepository sources for s differ (in checked out version)
@@ -404,11 +382,11 @@
   $ cd ..
 
 Sticky repository, update --clean
-  $ hg update --clean tip
-  U    $TESTTMP/sub/t/s/alpha
-   U   $TESTTMP/sub/t/s
+  $ hg update --clean tip | grep -v s/externals/other
+  U    *s/alpha (glob)
+   U   *s (glob)
   
-  Fetching external item into '$TESTTMP/sub/t/s/externals'
+  Fetching external item into '*s/externals'* (glob)
   Checked out external at revision 1.
   
   Checked out revision 3.
@@ -422,13 +400,7 @@
 
 Test subrepo already at intended revision:
   $ cd s
-  $ svn update -r 2
-  U    alpha
-  
-  Fetching external item into 'externals'
-  Updated external to revision 1.
-  
-  Updated to revision 2.
+  $ svn update -qr 2
   $ cd ..
   $ hg update 1
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -449,8 +421,8 @@
   A         dir
   A         dir/epsilon.py
   $ svn ci -m 'Add dir/epsilon.py'
-  Adding         src/dir
-  Adding         src/dir/epsilon.py
+  Adding         *dir (glob)
+  Adding         *dir/epsilon.py (glob)
   Transmitting file data .
   Committed revision 6.
   $ cd ../..
@@ -466,22 +438,15 @@
   adding a
   $ hg up 0
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
-  $ svn up -r6 s
-  A    s/dir
-  A    s/dir/epsilon.py
-  
-  Fetching external item into 's/externals'
-  Updated external to revision 1.
-  
-  Updated to revision 6.
+  $ svn up -qr6 s
   $ hg ci -m updatesub
   committing subrepository s
   created new head
   $ echo pyc > s/dir/epsilon.pyc
   $ hg up 1
-  D    $TESTTMP/rebaserepo/s/dir
+  D    *s/dir (glob)
   
-  Fetching external item into '$TESTTMP/rebaserepo/s/externals'
+  Fetching external item into '*s/externals'* (glob)
   Checked out external at revision 1.
   
   Checked out revision 5.
@@ -510,7 +475,7 @@
 Switching back to the head where we have another path mapped to the
 same subrepo should work if the subrepo is clean.
   $ hg co other
-  A    $TESTTMP/rebaserepo/obstruct/other
+  A    *obstruct/other (glob)
   Checked out revision 1.
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
@@ -523,7 +488,7 @@
 Point to a Subversion branch which has since been deleted and recreated
 First, create that condition in the repository.
 
-  $ hg ci --subrepos -m cleanup
+  $ hg ci --subrepos -m cleanup | grep -v Updating
   committing subrepository obstruct
   Sending        obstruct/other
   Transmitting file data .
@@ -550,9 +515,7 @@
   $ svn copy -m "recreate branch" $SVNREPO/trunk $SVNREPO/branch
   
   Committed revision 12.
-  $ svn up
-  D    somethingold
-  Updated to revision 12.
+  $ svn up -q
   $ echo "something new" > somethingnew
   $ svn add somethingnew
   A         somethingnew
@@ -569,16 +532,13 @@
   $ hg ci -m addsub
   committing subrepository recreated
   $ cd recreated
-  $ svn up
-  D    somethingold
-  A    somethingnew
-  Updated to revision 13.
+  $ svn up -q
   $ cd ..
   $ hg ci -m updatesub
   committing subrepository recreated
   $ hg up -r-2
-  D    $TESTTMP/rebaserepo/recreated/somethingnew
-  A    $TESTTMP/rebaserepo/recreated/somethingold
+  D    *recreated/somethingnew (glob)
+  A    *recreated/somethingold (glob)
   Checked out revision 10.
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ test -f recreated/somethingold
--- a/tests/test-subrepo.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-subrepo.t	Thu Dec 15 14:24:29 2011 -0600
@@ -199,16 +199,16 @@
   $ hg merge 6 --debug # test change
     searching for copies back to rev 2
   resolving manifests
-   overwrite None partial False
-   ancestor 1f14a2e2d3ec local f0d2028bf86d+ remote 1831e14459c4
+   overwrite: False, partial: False
+   ancestor: 1f14a2e2d3ec, local: f0d2028bf86d+, remote: 1831e14459c4
    .hgsubstate: versions differ -> m
   updating: .hgsubstate 1/1 files (100.00%)
   subrepo merge f0d2028bf86d+ 1831e14459c4 1f14a2e2d3ec
     subrepo t: other changed, get t:6747d179aa9a688023c4b0cad32e4c92bb7f34ad:hg
   getting subrepo t
   resolving manifests
-   overwrite True partial False
-   ancestor 60ca1237c194+ local 60ca1237c194+ remote 6747d179aa9a
+   overwrite: True, partial: False
+   ancestor: 60ca1237c194+, local: 60ca1237c194+, remote: 6747d179aa9a
    t: remote is newer -> g
   updating: t 1/1 files (100.00%)
   getting t
@@ -227,8 +227,8 @@
   $ HGMERGE=internal:merge hg merge --debug 7 # test conflict
     searching for copies back to rev 2
   resolving manifests
-   overwrite None partial False
-   ancestor 1831e14459c4 local e45c8b14af55+ remote f94576341bcf
+   overwrite: False, partial: False
+   ancestor: 1831e14459c4, local: e45c8b14af55+, remote: f94576341bcf
    .hgsubstate: versions differ -> m
   updating: .hgsubstate 1/1 files (100.00%)
   subrepo merge e45c8b14af55+ f94576341bcf 1831e14459c4
@@ -236,8 +236,8 @@
   merging subrepo t
     searching for copies back to rev 2
   resolving manifests
-   overwrite None partial False
-   ancestor 6747d179aa9a local 20a0db6fbf6c+ remote 7af322bc1198
+   overwrite: False, partial: False
+   ancestor: 6747d179aa9a, local: 20a0db6fbf6c+, remote: 7af322bc1198
    t: versions differ -> m
   preserving t for resolve of t
   updating: t 1/1 files (100.00%)
@@ -407,6 +407,7 @@
   adding a
   $ hg branch br
   marked working directory as branch br
+  (branches are permanent and global, did you want a bookmark?)
   $ echo a >> a
   $ hg ci -m1
   $ hg up default
@@ -457,6 +458,7 @@
   committing subrepository s
   $ hg branch br
   marked working directory as branch br
+  (branches are permanent and global, did you want a bookmark?)
   $ echo b > b
   $ hg -R s up 3
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
--- a/tests/test-tag.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-tag.t	Thu Dec 15 14:24:29 2011 -0600
@@ -207,6 +207,7 @@
 
   $ hg branch tag-and-branch-same-name
   marked working directory as branch tag-and-branch-same-name
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -m"discouraged"
   $ hg tag tag-and-branch-same-name
   warning: tag tag-and-branch-same-name conflicts with existing branch name
@@ -278,6 +279,7 @@
   $ hg co -q 0
   $ hg branch b1
   marked working directory as branch b1
+  (branches are permanent and global, did you want a bookmark?)
   $ hg ci -m2
   $ hg up default
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
--- a/tests/test-up-local-change.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-up-local-change.t	Thu Dec 15 14:24:29 2011 -0600
@@ -44,8 +44,8 @@
     unmatched files in other:
      b
   resolving manifests
-   overwrite False partial False
-   ancestor c19d34741b0a local c19d34741b0a+ remote 1e71731e6fbb
+   overwrite: False, partial: False
+   ancestor: c19d34741b0a, local: c19d34741b0a+, remote: 1e71731e6fbb
    a: versions differ -> m
    b: remote created -> g
   preserving a for resolve of a
@@ -65,8 +65,8 @@
   
   $ hg --debug up 0
   resolving manifests
-   overwrite False partial False
-   ancestor 1e71731e6fbb local 1e71731e6fbb+ remote c19d34741b0a
+   overwrite: False, partial: False
+   ancestor: 1e71731e6fbb, local: 1e71731e6fbb+, remote: c19d34741b0a
    a: versions differ -> m
    b: other deleted -> r
   preserving a for resolve of a
@@ -84,7 +84,8 @@
   summary:     1
   
   $ hg --debug merge
-  abort: there is nothing to merge - use "hg update" instead
+  abort: nothing to merge
+  (use 'hg update' instead)
   [255]
   $ hg parents
   changeset:   0:c19d34741b0a
@@ -97,8 +98,8 @@
     unmatched files in other:
      b
   resolving manifests
-   overwrite False partial False
-   ancestor c19d34741b0a local c19d34741b0a+ remote 1e71731e6fbb
+   overwrite: False, partial: False
+   ancestor: c19d34741b0a, local: c19d34741b0a+, remote: 1e71731e6fbb
    a: versions differ -> m
    b: remote created -> g
   preserving a for resolve of a
@@ -169,13 +170,14 @@
   abort: crosses branches (merge branches or use --clean to discard changes)
   [255]
   $ hg --debug merge
-  abort: outstanding uncommitted changes (use 'hg status' to list changes)
+  abort: outstanding uncommitted changes
+  (use 'hg status' to list changes)
   [255]
   $ hg --debug merge -f
     searching for copies back to rev 1
   resolving manifests
-   overwrite False partial False
-   ancestor c19d34741b0a local 1e71731e6fbb+ remote 83c51d0caff4
+   overwrite: False, partial: False
+   ancestor: c19d34741b0a, local: 1e71731e6fbb+, remote: 83c51d0caff4
    a: versions differ -> m
    b: versions differ -> m
   preserving a for resolve of a
--- a/tests/test-update-reverse.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-update-reverse.t	Thu Dec 15 14:24:29 2011 -0600
@@ -66,8 +66,8 @@
 
   $ hg update --debug -C 1
   resolving manifests
-   overwrite True partial False
-   ancestor 91ebc10ed028+ local 91ebc10ed028+ remote 71a760306caf
+   overwrite: True, partial: False
+   ancestor: 91ebc10ed028+, local: 91ebc10ed028+, remote: 71a760306caf
    side2: other deleted -> r
    side1: other deleted -> r
    main: remote created -> g
--- a/tests/test-url-rev.t	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-url-rev.t	Thu Dec 15 14:24:29 2011 -0600
@@ -6,6 +6,7 @@
   $ hg ci -qAm 'add a'
   $ hg branch foo
   marked working directory as branch foo
+  (branches are permanent and global, did you want a bookmark?)
   $ echo >> a
   $ hg ci -m 'change a'
   $ cd ..
--- a/tests/test-url.py	Sat Dec 10 20:48:33 2011 +0200
+++ b/tests/test-url.py	Thu Dec 15 14:24:29 2011 -0600
@@ -219,7 +219,7 @@
     >>> u
     <url scheme: 'file', path: 'f:oo/bar/baz'>
     >>> str(u)
-    'file:f:oo/bar/baz'
+    'file:///f:oo/bar/baz'
     >>> u.localpath()
     'f:oo/bar/baz'