changeset 10497:74331292e230

Merge with stable
author Martin Geisler <mg@lazybytes.net>
date Wed, 17 Feb 2010 23:10:22 +0100
parents ed4de30e16c5 (current diff) 45734b51c99b (diff)
children 261cc6b0f15c
files
diffstat 53 files changed, 2114 insertions(+), 1642 deletions(-) [+]
line wrap: on
line diff
--- a/contrib/mergetools.hgrc	Mon Feb 15 00:17:18 2010 +0100
+++ b/contrib/mergetools.hgrc	Wed Feb 17 23:10:22 2010 +0100
@@ -18,6 +18,7 @@
 gpyfm.gui=True
 
 meld.gui=True
+meld.args=--label='local' $local --label='base' $base --label='other' $other
 
 tkdiff.args=$local $other -a $base -o $output
 tkdiff.gui=True
@@ -27,7 +28,10 @@
 xxdiff.gui=True
 xxdiff.priority=-8
 
-diffmerge.args=--nosplash --merge --title1=base --title2=local --title3=other $base $local $other
+diffmerge.regkey=Software\SourceGear\SourceGear DiffMerge\
+diffmerge.regname=Location
+diffmerge.priority=-7
+diffmerge.args=-nosplash -merge -title1=local -title2=merged -title3=other $local $base $other -result=$output
 diffmerge.checkchanged=True
 diffmerge.gui=True
 
@@ -42,6 +46,7 @@
 tortoisemerge.regkey=Software\TortoiseSVN
 tortoisemerge.checkchanged=True
 tortoisemerge.gui=True
+tortoisemerge.priority=-8
 
 ecmerge.args=$base $local $other --mode=merge3 --title0=base --title1=local --title2=other --to=$output
 ecmerge.regkey=Software\Elli\xc3\xa9 Computing\Merge
@@ -51,13 +56,31 @@
 filemerge.args=-left $other -right $local -ancestor $base -merge $output
 filemerge.gui=True
 
+; Windows version of Beyond Compare
 beyondcompare3.args=$local $other $base $output /ro /lefttitle=local /centertitle=base /righttitle=other /automerge /reviewconflicts /solo
 beyondcompare3.regkey=Software\Scooter Software\Beyond Compare 3
 beyondcompare3.regname=ExePath
 beyondcompare3.gui=True
+beyondcompare3.priority=-2
 
-winmerge.args=/e /u /dl local /dr other /wr $local $other $output
+; Linux version of Beyond Compare
+bcompare.args=$local $other $base -mergeoutput=$output -ro -lefttitle=parent1 -centertitle=base -righttitle=parent2 -outputtitle=merged -automerge -reviewconflicts -solo
+bcompare.premerge=False
+bcompare.gui=True
+bcompare.priority=-1
+
+winmerge.args=/e /x /wl /ub /dl other /dr local $other $local $output
 winmerge.regkey=Software\Thingamahoochie\WinMerge
 winmerge.regname=Executable
 winmerge.checkchanged=True
 winmerge.gui=True
+winmerge.priority=-10
+
+araxis.regkey=SOFTWARE\Classes\TypeLib\{46799e0a-7bd1-4330-911c-9660bb964ea2}\7.0\HELPDIR
+araxis.regappend=\ConsoleCompare.exe
+araxis.priority=-2
+araxis.args=/3 /a2 /wait /merge /title1:"Other" /title2:"Base" /title3:"Local :"$local $other $base $local $output
+araxis.premerge=False
+araxis.checkconflict=True
+araxis.binary=True
+araxis.gui=True
--- a/contrib/perf.py	Mon Feb 15 00:17:18 2010 +0100
+++ b/contrib/perf.py	Wed Feb 17 23:10:22 2010 +0100
@@ -42,7 +42,7 @@
 
 def perfstatus(ui, repo, *pats):
     #m = match.always(repo.root, repo.getcwd())
-    #timer(lambda: sum(map(len, repo.dirstate.status(m, False, False, False))))
+    #timer(lambda: sum(map(len, repo.dirstate.status(m, [], False, False, False))))
     timer(lambda: sum(map(len, repo.status())))
 
 def perfheads(ui, repo):
--- a/contrib/shrink-revlog.py	Mon Feb 15 00:17:18 2010 +0100
+++ b/contrib/shrink-revlog.py	Wed Feb 17 23:10:22 2010 +0100
@@ -32,7 +32,7 @@
     ui.status('reading revs\n')
     try:
         for i in rl:
-            ui.progress('reading', i, total=len(rl))
+            ui.progress(_('reading'), i, total=len(rl))
             children[i] = []
             parents = [p for p in rl.parentrevs(i) if p != node.nullrev]
             # in case of duplicate parents
@@ -45,7 +45,7 @@
             if len(parents) == 0:
                 root.append(i)
     finally:
-        ui.progress('reading', None, total=len(rl))
+        ui.progress(_('reading'), None, total=len(rl))
 
     # XXX this is a reimplementation of the 'branchsort' topo sort
     # algorithm in hgext.convert.convcmd... would be nice not to duplicate
@@ -75,7 +75,7 @@
 
     count = [0]
     def progress(*args):
-        ui.progress('writing', count[0], total=len(order))
+        ui.progress(_('writing'), count[0], total=len(order))
         count[0] += 1
 
     order = [r1.node(r) for r in order]
@@ -89,7 +89,7 @@
         chunkiter = changegroup.chunkiter(group)
         r2.addgroup(chunkiter, unlookup, tr)
     finally:
-        ui.progress('writing', None, len(order))
+        ui.progress(_('writing'), None, len(order))
 
 def report(ui, olddatafn, newdatafn):
     oldsize = float(os.stat(olddatafn).st_size)
--- a/doc/hgrc.5.txt	Mon Feb 15 00:17:18 2010 +0100
+++ b/doc/hgrc.5.txt	Wed Feb 17 23:10:22 2010 +0100
@@ -431,7 +431,8 @@
   The priority in which to evaluate this tool.
   Default: 0.
 ``executable``
-  Either just the name of the executable or its pathname.
+  Either just the name of the executable or its pathname.  On Windows,
+  the path can use environment variables with ${ProgramFiles} syntax.
   Default: the tool name.
 ``args``
   The arguments to pass to the tool executable. You can refer to the
--- a/hgext/bugzilla.py	Mon Feb 15 00:17:18 2010 +0100
+++ b/hgext/bugzilla.py	Wed Feb 17 23:10:22 2010 +0100
@@ -145,7 +145,7 @@
 from mercurial import cmdutil, templater, util
 import re, time
 
-mysqldb = None
+MySQLdb = None
 
 def buglist(ids):
     return '(' + ','.join(map(str, ids)) + ')'
@@ -165,7 +165,7 @@
             self.ui.readconfig(usermap, sections=['usermap'])
         self.ui.note(_('connecting to %s:%s as %s, password %s\n') %
                      (host, db, user, '*' * len(passwd)))
-        self.conn = mysqldb.connect(host=host, user=user, passwd=passwd,
+        self.conn = MySQLdb.connect(host=host, user=user, passwd=passwd,
                                     db=db, connect_timeout=timeout)
         self.cursor = self.conn.cursor()
         self.longdesc_id = self.get_longdesc_id()
@@ -177,7 +177,7 @@
         self.ui.note(_('query: %s %s\n') % (args, kwargs))
         try:
             self.cursor.execute(*args, **kwargs)
-        except mysqldb.MySQLError:
+        except MySQLdb.MySQLError:
             self.ui.note(_('failed query: %s %s\n') % (args, kwargs))
             raise
 
@@ -419,9 +419,9 @@
     bugzilla bug id. only add a comment once per bug, so same change
     seen multiple times does not fill bug with duplicate data.'''
     try:
-        import mysqldb as mysql
-        global mysqldb
-        mysqldb = mysql
+        import MySQLdb as mysql
+        global MySQLdb
+        MySQLdb = mysql
     except ImportError, err:
         raise util.Abort(_('python mysql support not available: %s') % err)
 
@@ -436,6 +436,6 @@
             for id in ids:
                 bz.update(id, ctx)
             bz.notify(ids, util.email(ctx.user()))
-    except mysqldb.MySQLError, err:
+    except MySQLdb.MySQLError, err:
         raise util.Abort(_('database error: %s') % err[1])
 
--- a/hgext/inotify/__init__.py	Mon Feb 15 00:17:18 2010 +0100
+++ b/hgext/inotify/__init__.py	Wed Feb 17 23:10:22 2010 +0100
@@ -58,7 +58,7 @@
                 else:
                     if ui.config('inotify', 'debug'):
                         r2 = super(inotifydirstate, self).status(
-                            match, False, clean, unknown)
+                            match, [], False, clean, unknown)
                         for c, a, b in zip('LMARDUIC', result, r2):
                             for f in a:
                                 if f not in b:
--- a/hgext/inotify/linuxserver.py	Mon Feb 15 00:17:18 2010 +0100
+++ b/hgext/inotify/linuxserver.py	Wed Feb 17 23:10:22 2010 +0100
@@ -397,7 +397,7 @@
         self.register(timeout=timeout)
 
     def handle_timeout(self):
-        pass
+        raise server.TimeoutException
 
     def handle_pollevents(self, events):
         for e in events:
--- a/hgext/inotify/server.py	Mon Feb 15 00:17:18 2010 +0100
+++ b/hgext/inotify/server.py	Wed Feb 17 23:10:22 2010 +0100
@@ -19,6 +19,8 @@
 
 class AlreadyStartedException(Exception):
     pass
+class TimeoutException(Exception):
+    pass
 
 def join(a, b):
     if a:
@@ -444,9 +446,11 @@
 master = _server.master
 
 def start(ui, dirstate, root, opts):
-    timeout = opts.get('timeout')
+    timeout = opts.get('idle_timeout')
     if timeout:
-        timeout = float(timeout) * 1e3
+        timeout = float(timeout) * 60000
+    else:
+        timeout = None
 
     class service(object):
         def init(self):
@@ -457,7 +461,10 @@
 
         def run(self):
             try:
-                self.master.run()
+                try:
+                    self.master.run()
+                except TimeoutException:
+                    pass
             finally:
                 self.master.shutdown()
 
--- a/hgext/keyword.py	Mon Feb 15 00:17:18 2010 +0100
+++ b/hgext/keyword.py	Wed Feb 17 23:10:22 2010 +0100
@@ -489,24 +489,8 @@
             try:
                 wlock = self.wlock()
                 lock = self.lock()
-                # store and postpone commit hooks
-                commithooks = {}
-                for name, cmd in ui.configitems('hooks'):
-                    if name.split('.', 1)[0] == 'commit':
-                        commithooks[name] = cmd
-                        ui.setconfig('hooks', name, None)
-                if commithooks:
-                    # store parents for commit hooks
-                    p1, p2 = ctx.p1(), ctx.p2()
-                    xp1, xp2 = p1.hex(), p2 and p2.hex() or ''
-
                 n = super(kwrepo, self).commitctx(ctx, error)
-
                 kwt.overwrite(n, True, None)
-                if commithooks:
-                    for name, cmd in commithooks.iteritems():
-                        ui.setconfig('hooks', name, cmd)
-                    self.hook('commit', node=n, parent1=xp1, parent2=xp2)
                 return n
             finally:
                 release(lock, wlock)
--- a/hgext/mq.py	Mon Feb 15 00:17:18 2010 +0100
+++ b/hgext/mq.py	Wed Feb 17 23:10:22 2010 +0100
@@ -1830,19 +1830,14 @@
         return q.push(repo, None)
     return 0
 
-def init(ui, repo, **opts):
-    """init a new queue repository (DEPRECATED)
+def qinit(ui, repo, create):
+    """initialize a new queue repository
 
-    The queue repository is unversioned by default. If
-    -c/--create-repo is specified, qinit will create a separate nested
-    repository for patches (qinit -c may also be run later to convert
-    an unversioned patch repository into a versioned one). You can use
-    qcommit to commit changes to this queue repository.
-
-    This command is deprecated. Without -c, it's implied by other relevant
-    commands. With -c, use hg init -Q instead."""
+    This command also creates a series file for ordering patches, and
+    an mq-specific .hgignore file in the queue repository, to exclude
+    the status and guards files (these contain mostly transient state)."""
     q = repo.mq
-    r = q.init(repo, create=opts['create_repo'])
+    r = q.init(repo, create)
     q.save_dirty()
     if r:
         if not os.path.exists(r.wjoin('.hgignore')):
@@ -1859,6 +1854,19 @@
         commands.add(ui, r)
     return 0
 
+def init(ui, repo, **opts):
+    """init a new queue repository (DEPRECATED)
+
+    The queue repository is unversioned by default. If
+    -c/--create-repo is specified, qinit will create a separate nested
+    repository for patches (qinit -c may also be run later to convert
+    an unversioned patch repository into a versioned one). You can use
+    qcommit to commit changes to this queue repository.
+
+    This command is deprecated. Without -c, it's implied by other relevant
+    commands. With -c, use hg init -Q instead."""
+    return qinit(ui, repo, create=opts['create_repo'])
+
 def clone(ui, source, dest=None, **opts):
     '''clone main and patch repository at same time
 
@@ -2630,22 +2638,7 @@
 
     repopath = cmdutil.findrepo(os.getcwd())
     repo = hg.repository(ui, repopath)
-    q = repo.mq
-    r = q.init(repo, create=True)
-    q.save_dirty()
-
-    if not os.path.exists(r.wjoin('.hgignore')):
-        fp = r.wopener('.hgignore', 'w')
-        fp.write('^\\.hg\n')
-        fp.write('^\\.mq\n')
-        fp.write('syntax: glob\n')
-        fp.write('status\n')
-        fp.write('guards\n')
-        fp.close()
-    if not os.path.exists(r.wjoin('series')):
-        r.wopener('series', 'w').close()
-    r.add(['.hgignore', 'series'])
-    commands.add(ui, r)
+    return qinit(ui, repo, True)
 
 def mqcommand(orig, ui, repo, *args, **kwargs):
     """Add --mq option to operate on patch repository instead of main"""
--- a/i18n/pt_BR.po	Mon Feb 15 00:17:18 2010 +0100
+++ b/i18n/pt_BR.po	Wed Feb 17 23:10:22 2010 +0100
@@ -70,1013 +70,6 @@
 "\n"
 
 msgid ""
-"Mercurial reads configuration data from several files, if they exist.\n"
-"Below we list the most specific file first.\n"
-"\n"
-"On Windows, these configuration files are read:\n"
-"\n"
-"- ``<repo>\\.hg\\hgrc``\n"
-"- ``%USERPROFILE%\\.hgrc``\n"
-"- ``%USERPROFILE%\\Mercurial.ini``\n"
-"- ``%HOME%\\.hgrc``\n"
-"- ``%HOME%\\Mercurial.ini``\n"
-"- ``C:\\Mercurial\\Mercurial.ini``\n"
-"- ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial``\n"
-"- ``<install-dir>\\Mercurial.ini``\n"
-"\n"
-"On Unix, these files are read:\n"
-"\n"
-"- ``<repo>/.hg/hgrc``\n"
-"- ``$HOME/.hgrc``\n"
-"- ``/etc/mercurial/hgrc``\n"
-"- ``/etc/mercurial/hgrc.d/*.rc``\n"
-"- ``<install-root>/etc/mercurial/hgrc``\n"
-"- ``<install-root>/etc/mercurial/hgrc.d/*.rc``\n"
-"\n"
-"The configuration files for Mercurial use a simple ini-file format. A\n"
-"configuration file consists of sections, led by a ``[section]`` header\n"
-"and followed by ``name = value`` entries::\n"
-"\n"
-"  [ui]\n"
-"  username = Firstname Lastname <firstname.lastname@example.net>\n"
-"  verbose = True\n"
-"\n"
-"This above entries will be referred to as ``ui.username`` and\n"
-"``ui.verbose``, respectively. Please see the hgrc man page for a full\n"
-"description of the possible configuration values:\n"
-"\n"
-"- on Unix-like systems: ``man hgrc``\n"
-"- online: http://www.selenic.com/mercurial/hgrc.5.html\n"
-msgstr ""
-"O Mercurial lê dados de configuração de váris arquivos, se existirem.\n"
-"Abaixo listamos os arquivos mais específicos primeiro.\n"
-"\n"
-"No Windows, estes arquivos de configuração são lidos:\n"
-"\n"
-"- ``<repo>\\.hg\\hgrc``\n"
-"- ``%USERPROFILE%\\.hgrc``\n"
-"- ``%USERPROFILE%\\Mercurial.ini``\n"
-"- ``%HOME%\\.hgrc``\n"
-"- ``%HOME%\\Mercurial.ini``\n"
-"- ``C:\\Mercurial\\Mercurial.ini``\n"
-"- ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial``\n"
-"- ``<install-dir>\\Mercurial.ini``\n"
-"\n"
-"No Unix, estes arquivos são lidos:\n"
-"\n"
-"- ``<repo>/.hg/hgrc``\n"
-"- ``$HOME/.hgrc``\n"
-"- ``/etc/mercurial/hgrc``\n"
-"- ``/etc/mercurial/hgrc.d/*.rc``\n"
-"- ``<install-root>/etc/mercurial/hgrc``\n"
-"- ``<install-root>/etc/mercurial/hgrc.d/*.rc``\n"
-"\n"
-"Os arquivos de configuração do Mercurial usam um simples formato ini.\n"
-"Um arquivo de configuração consiste de seções iniciadas por um\n"
-"cabeçalho ``[seção]`` seguidas por entradas ``nome = valor``::\n"
-"\n"
-"  [ui]\n"
-"  username = Primeironome Sobrenome <primeironome.sobrenome@exemplo.net>\n"
-"  verbose = True\n"
-"\n"
-"As entradas acima são referidas como ``ui.username`` e\n"
-"``ui.verbose``, respectivamente. Por favor veja a página de manual hgrc\n"
-"para uma descrição completa dos possíveis valores de configuração:\n"
-"\n"
-"- em sistemas semelhantes ao Unix: ``man hgrc``\n"
-"- na Internet: http://www.selenic.com/mercurial/hgrc.5.html\n"
-
-msgid ""
-"Some commands allow the user to specify a date, e.g.:\n"
-"\n"
-"- backout, commit, import, tag: Specify the commit date.\n"
-"- log, revert, update: Select revision(s) by date.\n"
-"\n"
-"Many date formats are valid. Here are some examples:\n"
-"\n"
-"- ``Wed Dec 6 13:18:29 2006`` (local timezone assumed)\n"
-"- ``Dec 6 13:18 -0600`` (year assumed, time offset provided)\n"
-"- ``Dec 6 13:18 UTC`` (UTC and GMT are aliases for +0000)\n"
-"- ``Dec 6`` (midnight)\n"
-"- ``13:18`` (today assumed)\n"
-"- ``3:39`` (3:39AM assumed)\n"
-"- ``3:39pm`` (15:39)\n"
-"- ``2006-12-06 13:18:29`` (ISO 8601 format)\n"
-"- ``2006-12-6 13:18``\n"
-"- ``2006-12-6``\n"
-"- ``12-6``\n"
-"- ``12/6``\n"
-"- ``12/6/6`` (Dec 6 2006)\n"
-"\n"
-"Lastly, there is Mercurial's internal format:\n"
-"\n"
-"- ``1165432709 0`` (Wed Dec 6 13:18:29 2006 UTC)\n"
-"\n"
-"This is the internal representation format for dates. unixtime is the\n"
-"number of seconds since the epoch (1970-01-01 00:00 UTC). offset is\n"
-"the offset of the local timezone, in seconds west of UTC (negative if\n"
-"the timezone is east of UTC).\n"
-"\n"
-"The log command also accepts date ranges:\n"
-"\n"
-"- ``<{datetime}`` - at or before a given date/time\n"
-"- ``>{datetime}`` - on or after a given date/time\n"
-"- ``{datetime} to {datetime}`` - a date range, inclusive\n"
-"- ``-{days}`` - within a given number of days of today\n"
-msgstr ""
-"Alguns comandos permitem ao usuário especificar uma data, como:\n"
-"\n"
-"- backout, commit, import, tag: Especificar a data de consolidação.\n"
-"- log, revert, update: Selecionar revisões por data.\n"
-"\n"
-"Muitos formatos de data são válidos. Eis alguns exemplos:\n"
-"\n"
-"- ``Wed Dec 6 13:18:29 2006`` (assumido fuso horário local)\n"
-"- ``Dec 6 13:18 -0600`` (ano atual, defasagem de horário local fornecida)\n"
-"- ``Dec 6 13:18 UTC`` (UTC e GMT são apelidos para +0000)\n"
-"- ``Dec 6`` (meia noite)\n"
-"- ``13:18`` (data corrente assumida)\n"
-"- ``3:39`` (hora assumida 3:39AM)\n"
-"- ``3:39pm`` (15:39)\n"
-"- ``2006-12-06 13:18:29`` (formato ISO 8601)\n"
-"- ``2006-12-6 13:18``\n"
-"- ``2006-12-6``\n"
-"- ``12-6``\n"
-"- ``12/6``\n"
-"- ``12/6/6`` (Dec 6 2006)\n"
-"\n"
-"E por fim, há um formato interno do Mercurial:\n"
-"\n"
-"- ``1165432709 0`` (Wed Dec 6 13:18:29 2006 UTC)\n"
-"\n"
-"Este é o formato interno de representação de datas. unixtime é\n"
-"o número de segundos desde a epoch (1970-01-01 00:00 UTC). offset\n"
-"é a defasagem do fuso horário local, em segundos a oeste de UTC\n"
-"(negativo para fusos horários a leste de UTC).\n"
-"\n"
-"O comando log também aceita intervalos de data:\n"
-"\n"
-"- ``<{date}`` - na data fornecida, ou anterior\n"
-"- ``>{date}`` - na data fornecida, ou posterior\n"
-"- ``{date} to {date}`` - um intervalo de data, incluindo os extremos\n"
-"- ``-{days}`` - dentro de um certo número de dias contados de hoje\n"
-
-msgid ""
-"Mercurial's default format for showing changes between two versions of\n"
-"a file is compatible with the unified format of GNU diff, which can be\n"
-"used by GNU patch and many other standard tools.\n"
-"\n"
-"While this standard format is often enough, it does not encode the\n"
-"following information:\n"
-"\n"
-"- executable status and other permission bits\n"
-"- copy or rename information\n"
-"- changes in binary files\n"
-"- creation or deletion of empty files\n"
-"\n"
-"Mercurial also supports the extended diff format from the git VCS\n"
-"which addresses these limitations. The git diff format is not produced\n"
-"by default because a few widespread tools still do not understand this\n"
-"format.\n"
-"\n"
-"This means that when generating diffs from a Mercurial repository\n"
-"(e.g. with \"hg export\"), you should be careful about things like file\n"
-"copies and renames or other things mentioned above, because when\n"
-"applying a standard diff to a different repository, this extra\n"
-"information is lost. Mercurial's internal operations (like push and\n"
-"pull) are not affected by this, because they use an internal binary\n"
-"format for communicating changes.\n"
-"\n"
-"To make Mercurial produce the git extended diff format, use the --git\n"
-"option available for many commands, or set 'git = True' in the [diff]\n"
-"section of your hgrc. You do not need to set this option when\n"
-"importing diffs in this format or using them in the mq extension.\n"
-msgstr ""
-"O formato padrão do Mercurial para exibir mudanças entre duas\n"
-"versões de um arquivo é compatível com o formato unified do GNU\n"
-"diff, que pode ser usado pelo GNU patch e muitos outros\n"
-"utilitários padrão.\n"
-"\n"
-"Apesar de esse formato padrão ser muitas vezes suficiente, ele\n"
-"não codifica as seguintes informações:\n"
-"\n"
-"- bits de execução e permissão\n"
-"- informação de cópia ou renomeação\n"
-"- mudanças em arquivos binários\n"
-"- criação ou remoção de arquivos vazios\n"
-"\n"
-"O Mercurial também suporta o formato diff estendido do VCS git\n"
-"que trata dessas limitações. O formato git diff não é\n"
-"produzido por padrão porque há muito poucas ferramentas que\n"
-"entendem esse formato.\n"
-"\n"
-"Isso quer dizer que ao gerar diffs de um repositório do Mercurial\n"
-"(por exemplo, com \"hg export\"), você deve tomar cuidado com por\n"
-"exemplo cópias e renomeações de arquivos ou outras coisas\n"
-"mencionadas acima, porque essa informação extra é perdida ao\n"
-"aplicar um diff padrão em um outro repositório. As operações\n"
-"internas do Mercurial (como push e pull) não são afetadas por\n"
-"isso, porque usam um formato binário interno para comunicar\n"
-"mudanças.\n"
-"\n"
-"Para fazer com que o Mercurial produza o formato estendido git\n"
-"diff, use a opção --git disponível para vários comandos, ou\n"
-"defina 'git = True' na seção [diff] de seu hgrc. Você não precisa\n"
-"definir essa opção para importar diffs nesse formato, nem para\n"
-"usá-lo com a extensão mq.\n"
-
-msgid ""
-"HG\n"
-"    Path to the 'hg' executable, automatically passed when running\n"
-"    hooks, extensions or external tools. If unset or empty, this is\n"
-"    the hg executable's name if it's frozen, or an executable named\n"
-"    'hg' (with %PATHEXT% [defaulting to COM/EXE/BAT/CMD] extensions on\n"
-"    Windows) is searched.\n"
-"\n"
-"HGEDITOR\n"
-"    This is the name of the editor to run when committing. See EDITOR.\n"
-"\n"
-"    (deprecated, use .hgrc)\n"
-"\n"
-"HGENCODING\n"
-"    This overrides the default locale setting detected by Mercurial.\n"
-"    This setting is used to convert data including usernames,\n"
-"    changeset descriptions, tag names, and branches. This setting can\n"
-"    be overridden with the --encoding command-line option.\n"
-"\n"
-"HGENCODINGMODE\n"
-"    This sets Mercurial's behavior for handling unknown characters\n"
-"    while transcoding user input. The default is \"strict\", which\n"
-"    causes Mercurial to abort if it can't map a character. Other\n"
-"    settings include \"replace\", which replaces unknown characters, and\n"
-"    \"ignore\", which drops them. This setting can be overridden with\n"
-"    the --encodingmode command-line option.\n"
-"\n"
-"HGMERGE\n"
-"    An executable to use for resolving merge conflicts. The program\n"
-"    will be executed with three arguments: local file, remote file,\n"
-"    ancestor file.\n"
-"\n"
-"    (deprecated, use .hgrc)\n"
-"\n"
-"HGRCPATH\n"
-"    A list of files or directories to search for hgrc files. Item\n"
-"    separator is \":\" on Unix, \";\" on Windows. If HGRCPATH is not set,\n"
-"    platform default search path is used. If empty, only the .hg/hgrc\n"
-"    from the current repository is read.\n"
-"\n"
-"    For each element in HGRCPATH:\n"
-"\n"
-"    - if it's a directory, all files ending with .rc are added\n"
-"    - otherwise, the file itself will be added\n"
-"\n"
-"HGUSER\n"
-"    This is the string used as the author of a commit. If not set,\n"
-"    available values will be considered in this order:\n"
-"\n"
-"    - HGUSER (deprecated)\n"
-"    - hgrc files from the HGRCPATH\n"
-"    - EMAIL\n"
-"    - interactive prompt\n"
-"    - LOGNAME (with ``@hostname`` appended)\n"
-"\n"
-"    (deprecated, use .hgrc)\n"
-"\n"
-"EMAIL\n"
-"    May be used as the author of a commit; see HGUSER.\n"
-"\n"
-"LOGNAME\n"
-"    May be used as the author of a commit; see HGUSER.\n"
-"\n"
-"VISUAL\n"
-"    This is the name of the editor to use when committing. See EDITOR.\n"
-"\n"
-"EDITOR\n"
-"    Sometimes Mercurial needs to open a text file in an editor for a\n"
-"    user to modify, for example when writing commit messages. The\n"
-"    editor it uses is determined by looking at the environment\n"
-"    variables HGEDITOR, VISUAL and EDITOR, in that order. The first\n"
-"    non-empty one is chosen. If all of them are empty, the editor\n"
-"    defaults to 'vi'.\n"
-"\n"
-"PYTHONPATH\n"
-"    This is used by Python to find imported modules and may need to be\n"
-"    set appropriately if this Mercurial is not installed system-wide.\n"
-msgstr ""
-"HG\n"
-"    Caminho para o executável 'hg', automaticamente passado na\n"
-"    execução de ganchos, extensões ou ferramentas externas. Se não\n"
-"    definido ou vazio, um executável chamado 'hg' (com a extensão\n"
-"    com/exe/bat/cmd no Windows) é procurado.\n"
-"\n"
-"HGEDITOR\n"
-"    Este é o nome do editor usado em consolidações. Veja EDITOR.\n"
-"\n"
-"    (obsoleto, use .hgrc)\n"
-"\n"
-"HGENCODING\n"
-"    É usado no lugar da configuração padrão de locale detectada\n"
-"    pelo Mercurial. Essa configuração é usada para converter dados\n"
-"    como nomes de usuário, descrições de revisões, nomes de\n"
-"    etiqueta e ramos. Essa configuração pode ser sobreposta com a\n"
-"    opção --encoding na linha de comando.\n"
-"\n"
-"HGENCODINGMODE\n"
-"    Essa configuração ajusta o comportamento do Mercurial no\n"
-"    tratamento de caracteres desconhecidos, ao codificar entradas do\n"
-"    usuário. O padrão é \"strict\", o que faz com que o Mercurial\n"
-"    aborte se ele não puder traduzir um caractere. Outros valores\n"
-"    incluem \"replace\", que substitui caracteres desconhecidos, e\n"
-"    \"ignore\", que os descarta. Essa configuração pode ser\n"
-"    sobreposta com a opção --encodingmode na linha de comando.\n"
-"\n"
-"HGMERGE\n"
-"    Um executável a ser usado para solucionar conflitos de mesclagem.\n"
-"    O programa será executado com três argumentos: arquivo local,\n"
-"    arquivo remoto, arquivo ancestral.\n"
-"\n"
-"    (obsoleta, use .hgrc)\n"
-"\n"
-"HGRCPATH\n"
-"    Uma lista de arquivos ou diretórios onde procurar arquivos hgrc.\n"
-"    O separador de itens é \":\" em Unix, \";\" no Windows. Se\n"
-"    HGRCPATH não estiver definido, o caminho de busca padrão da\n"
-"    plataforma será usado. Se vazio, será lido apenas .hg/hgrc no\n"
-"    repositório atual.\n"
-"\n"
-"    Para cada elemento em HGRCPATH:\n"
-"\n"
-"    - se for um diretório, todos os arquivos nesse diretório\n"
-"      terminados por \".rc\" serão adicionados\n"
-"    - caso contrário, o próprio arquivo será adicionado\n"
-"\n"
-"HGUSER\n"
-"    Esta é a string usada para o autor de uma consolidação.\n"
-"    Se não for definida, valores disponíveis serão considerados na\n"
-"    seguinte ordem:\n"
-"\n"
-"    - HGUSER (obsoleto)\n"
-"    - arquivos hgrc no HGRCPATH\n"
-"    - EMAIL\n"
-"    - consulta interativa\n"
-"    - LOGNAME (com ``@hostname`` anexado)\n"
-"\n"
-"    (obsoleto, use .hgrc)\n"
-"\n"
-"EMAIL\n"
-"    Pode ser usado como autor de consolidações; veja HGUSER.\n"
-"\n"
-"LOGNAME\n"
-"    Pode ser usado como autor de consolidações; veja HGUSER.\n"
-"\n"
-"VISUAL\n"
-"    Este é o nome do editor a ser usado em consolidações. Veja\n"
-"    EDITOR.\n"
-"\n"
-"EDITOR\n"
-"    Algumas vezes o Mercurial precisa abrir em um editor um arquivo\n"
-"    texto para ser modificado por um usuário, por exemplo ao escrever\n"
-"    mensagens de consolidação. O editor usado é determinado pela\n"
-"    consulta às variáveis de ambiente HGEDITOR, VISUAL e EDITOR,\n"
-"    nessa ordem. O primeiro valor não vazio é escolhido. Se todos\n"
-"    estiverem vazios, o editor será o 'vi'.\n"
-"\n"
-"PYTHONPATH\n"
-"    Isto é usado pelo Python para localizar módulos importados, e\n"
-"    pode precisar ser ajustado apropriadamente se o Mercurial não\n"
-"    estiver instalado para o sistema todo.\n"
-
-msgid ""
-"Mercurial has the ability to add new features through the use of\n"
-"extensions. Extensions may add new commands, add options to\n"
-"existing commands, change the default behavior of commands, or\n"
-"implement hooks.\n"
-"\n"
-"Extensions are not loaded by default for a variety of reasons:\n"
-"they can increase startup overhead; they may be meant for advanced\n"
-"usage only; they may provide potentially dangerous abilities (such\n"
-"as letting you destroy or modify history); they might not be ready\n"
-"for prime time; or they may alter some usual behaviors of stock\n"
-"Mercurial. It is thus up to the user to activate extensions as\n"
-"needed.\n"
-"\n"
-"To enable the \"foo\" extension, either shipped with Mercurial or in\n"
-"the Python search path, create an entry for it in your hgrc, like\n"
-"this::\n"
-"\n"
-"  [extensions]\n"
-"  foo =\n"
-"\n"
-"You may also specify the full path to an extension::\n"
-"\n"
-"  [extensions]\n"
-"  myfeature = ~/.hgext/myfeature.py\n"
-"\n"
-"To explicitly disable an extension enabled in an hgrc of broader\n"
-"scope, prepend its path with !::\n"
-"\n"
-"  [extensions]\n"
-"  # disabling extension bar residing in /path/to/extension/bar.py\n"
-"  bar = !/path/to/extension/bar.py\n"
-"  # ditto, but no path was supplied for extension baz\n"
-"  baz = !\n"
-msgstr ""
-"O Mercurial possui um mecanismo para adicionar novas\n"
-"funcionalidades através do uso de extensões. Extensões podem\n"
-"adicionar novos comandos, adicionar novas opções a comandos\n"
-"existentes ou implementar ganchos.\n"
-"\n"
-"Extensões não são carregadas por padrão por diversas razões:\n"
-"elas podem aumentar o tempo de início ou execução; podem ser\n"
-"destinadas apenas a uso avançado; podem fornecer funcionalidade\n"
-"potencialmente perigosa (por exemplo, modificar ou destruir o\n"
-"histórico); podem ainda não estar prontas para uso geral; ou\n"
-"podem alterar o comportamento padrão do Mercurial. Cabe ao\n"
-"usuário ativar extensões como desejar.\n"
-"\n"
-"Para habilitar a extensão \"foo\", tanto se for distribuída com\n"
-"o Mercurial como estiver no caminho de busca do Python, crie uma\n"
-"entrada para ela em seu hgrc, da seguinte forma::\n"
-"\n"
-"  [extensions]\n"
-"  foo =\n"
-"\n"
-"Você também pode especificar o caminho completo para uma\n"
-"extensão::\n"
-"\n"
-"  [extensions]\n"
-"  myfeature = ~/.hgext/myfeature.py\n"
-"\n"
-"Para desabilitar explicitamente uma extensão habilitada em um\n"
-"hgrc de escopo mais amplo, prefixe seu caminho com !::\n"
-"\n"
-"  [extensions]\n"
-"  # desabilita a extensão bar localizada em\n"
-"  # /caminho/para/extensao/bar.py\n"
-"  bar = !/caminho/para/extensao/bar.py\n"
-"  # o mesmo, se um caminho não foi fornecido para a\n"
-"  # extensão baz\n"
-"  baz = !\n"
-
-msgid ""
-"When Mercurial accepts more than one revision, they may be specified\n"
-"individually, or provided as a topologically continuous range,\n"
-"separated by the \":\" character.\n"
-"\n"
-"The syntax of range notation is [BEGIN]:[END], where BEGIN and END are\n"
-"revision identifiers. Both BEGIN and END are optional. If BEGIN is not\n"
-"specified, it defaults to revision number 0. If END is not specified,\n"
-"it defaults to the tip. The range \":\" thus means \"all revisions\".\n"
-"\n"
-"If BEGIN is greater than END, revisions are treated in reverse order.\n"
-"\n"
-"A range acts as a closed interval. This means that a range of 3:5\n"
-"gives 3, 4 and 5. Similarly, a range of 9:6 gives 9, 8, 7, and 6.\n"
-msgstr ""
-"Quando o Mercurial aceita mais de uma revisão, elas podem ser\n"
-"especificadas individualmente, ou fornecidas como uma seqüência\n"
-"topologicamente contínua, separadas pelo caractere \":\".\n"
-"\n"
-"A sintaxe da notação de seqüência é [INÍCIO]:[FIM], onde INÍCIO\n"
-"e FIM são identificadores de revisão. Tanto INÍCIO como FIM são\n"
-"opcionais. Se INÍCIO não for especificado, terá como valor padrão\n"
-"a revisão número 0. Se FIM não for especificado, terá como valor\n"
-"padrão a revisão tip. A seqüência \":\" portanto significa\n"
-"\"todas as revisões\".\n"
-"\n"
-"Se INÍCIO for maior que FIM, as revisões são tratadas na ordem\n"
-"inversa.\n"
-"\n"
-"Uma seqüência age como um intervalo fechado. Isso quer dizer que\n"
-"uma seqüência 3:5 nos dá 3, 4 e 5. De forma semelhante, uma\n"
-"seqüência 4:2 nos dá 4, 3, e 2.\n"
-
-msgid ""
-"Mercurial accepts several notations for identifying one or more files\n"
-"at a time.\n"
-"\n"
-"By default, Mercurial treats filenames as shell-style extended glob\n"
-"patterns.\n"
-"\n"
-"Alternate pattern notations must be specified explicitly.\n"
-"\n"
-"To use a plain path name without any pattern matching, start it with\n"
-"``path:``. These path names must completely match starting at the\n"
-"current repository root.\n"
-"\n"
-"To use an extended glob, start a name with ``glob:``. Globs are rooted\n"
-"at the current directory; a glob such as ``*.c`` will only match files\n"
-"in the current directory ending with ``.c``.\n"
-"\n"
-"The supported glob syntax extensions are ``**`` to match any string\n"
-"across path separators and ``{a,b}`` to mean \"a or b\".\n"
-"\n"
-"To use a Perl/Python regular expression, start a name with ``re:``.\n"
-"Regexp pattern matching is anchored at the root of the repository.\n"
-"\n"
-"Plain examples::\n"
-"\n"
-"  path:foo/bar   a name bar in a directory named foo in the root\n"
-"                 of the repository\n"
-"  path:path:name a file or directory named \"path:name\"\n"
-"\n"
-"Glob examples::\n"
-"\n"
-"  glob:*.c       any name ending in \".c\" in the current directory\n"
-"  *.c            any name ending in \".c\" in the current directory\n"
-"  **.c           any name ending in \".c\" in any subdirectory of the\n"
-"                 current directory including itself.\n"
-"  foo/*.c        any name ending in \".c\" in the directory foo\n"
-"  foo/**.c       any name ending in \".c\" in any subdirectory of foo\n"
-"                 including itself.\n"
-"\n"
-"Regexp examples::\n"
-"\n"
-"  re:.*\\.c$      any name ending in \".c\", anywhere in the repository\n"
-msgstr ""
-"O Mercurial aceita diversas notações para identificar um ou mais\n"
-"arquivos de uma vez.\n"
-"\n"
-"Por padrão, o Mercurial trata nomes de arquivo como padrões\n"
-"estendidos de glob do shell.\n"
-"\n"
-"Notações alternativas de padrões devem ser especificadas\n"
-"explicitamente.\n"
-"\n"
-"Para usar um nome simples de caminho sem qualquer casamento de\n"
-"padrões, comece o nome com ``path:``. Estes nomes de caminho\n"
-"devem bater completamente, a partir da raiz do repositório\n"
-"atual.\n"
-"\n"
-"Para usar um glob estendido, comece um nome com ``glob:``. Globs\n"
-"têm como raiz o diretório corrente; um glob como ``*.c`` baterá\n"
-"apenas com arquivos terminados em ``.c`` no diretório corrente.\n"
-"\n"
-"As sintaxes de extensão do glob suportadas são ``**`` para bater\n"
-"com qualquer string incluindo separadores de caminho, e ``{a,b}``\n"
-"para significar \"a ou b\".\n"
-"\n"
-"Para usar uma expressão regular Perl/Python, comece um nome com\n"
-"``re:``. O casamento de padrões por expressão regular é feito a\n"
-"partir do raiz do repositório.\n"
-"\n"
-"Exemplos de caminhos simples::\n"
-"\n"
-"  path:foo/bar   o nome bar em um diretório chamado foo no raiz do\n"
-"                 repositório\n"
-"  path:path:name um arquivo ou diretório chamado \"path:name\"\n"
-"\n"
-"Exemplos de glob::\n"
-"\n"
-"  glob:*.c       qualquer nome terminado por \".c\" no diretório\n"
-"                 atual\n"
-"  *.c            qualquer nome terminado por \".c\" no diretório\n"
-"                 atual\n"
-"  **.c           qualquer nome terminado por \".c\" no diretório\n"
-"                 atual ou em qualquer subdiretório\n"
-"  foo/*.c        qualquer nome terminado por \".c\" no diretório\n"
-"                 foo\n"
-"  foo/**.c       qualquer nome terminado por \".c\" no diretório\n"
-"                 foo ou em qualquer subdiretório\n"
-"\n"
-"Exemplos de expressão regular::\n"
-"\n"
-"  re:.*\\.c$      qualquer nome terminado por \".c\", em qualquer\n"
-"                  lugar no repositório\n"
-
-msgid ""
-"Mercurial supports several ways to specify individual revisions.\n"
-"\n"
-"A plain integer is treated as a revision number. Negative integers are\n"
-"treated as sequential offsets from the tip, with -1 denoting the tip,\n"
-"-2 denoting the revision prior to the tip, and so forth.\n"
-"\n"
-"A 40-digit hexadecimal string is treated as a unique revision\n"
-"identifier.\n"
-"\n"
-"A hexadecimal string less than 40 characters long is treated as a\n"
-"unique revision identifier and is referred to as a short-form\n"
-"identifier. A short-form identifier is only valid if it is the prefix\n"
-"of exactly one full-length identifier.\n"
-"\n"
-"Any other string is treated as a tag or branch name. A tag name is a\n"
-"symbolic name associated with a revision identifier. A branch name\n"
-"denotes the tipmost revision of that branch. Tag and branch names must\n"
-"not contain the \":\" character.\n"
-"\n"
-"The reserved name \"tip\" is a special tag that always identifies the\n"
-"most recent revision.\n"
-"\n"
-"The reserved name \"null\" indicates the null revision. This is the\n"
-"revision of an empty repository, and the parent of revision 0.\n"
-"\n"
-"The reserved name \".\" indicates the working directory parent. If no\n"
-"working directory is checked out, it is equivalent to null. If an\n"
-"uncommitted merge is in progress, \".\" is the revision of the first\n"
-"parent.\n"
-msgstr ""
-"O Mercurial aceita diversas notações para identificar revisões\n"
-"individuais.\n"
-"\n"
-"Um simples inteiro é tratado como um número de revisão. Inteiros\n"
-"negativos são contados a partir da tip, com -1 denotando a tip,\n"
-"-2 denotando a revisão anterior à tip, e assim por diante.\n"
-"\n"
-"Uma string hexadecimal de 40 dígitos é tratada como um\n"
-"identificador único de revisão.\n"
-"\n"
-"Uma string hexadecimal de menos de 40 caracteres é tratada como\n"
-"um identificador único de revisão, chamado de identificador\n"
-"curto. Um identificador curto é válido apenas se for o prefixo\n"
-"de um identificador completo.\n"
-"\n"
-"Qualquer outra string é tratada como um nome de etiqueta ou\n"
-"ramo. Um nome de etiqueta é um nome simbólico associado a um\n"
-"identificador de revisão. Um nome de ramo denota a revisão mais\n"
-"recente de tal ramo. Nomes de etiqueta ou de ramo não podem\n"
-"conter o caractere \":\".\n"
-"\n"
-"O nome reservado \"tip\" é uma etiqueta especial que sempre\n"
-"identifica a revisão mais recente.\n"
-"\n"
-"O nome reservado \"null\" indica a revisão nula. Essa é a revisão\n"
-"de um repositório vazio, e a revisão pai da revisão 0.\n"
-"\n"
-"O nome reservado \".\" indica a revisão pai do diretório de\n"
-"trabalho. Se nenhum diretório de trabalho estiver selecionado,\n"
-"será equivalente a null. Se uma mesclagem estiver em progresso,\n"
-"\".\" será a revisão do primeiro pai.\n"
-
-msgid ""
-"Mercurial allows you to customize output of commands through\n"
-"templates. You can either pass in a template from the command\n"
-"line, via the --template option, or select an existing\n"
-"template-style (--style).\n"
-"\n"
-"You can customize output for any \"log-like\" command: log,\n"
-"outgoing, incoming, tip, parents, heads and glog.\n"
-"\n"
-"Three styles are packaged with Mercurial: default (the style used\n"
-"when no explicit preference is passed), compact and changelog.\n"
-"Usage::\n"
-"\n"
-"    $ hg log -r1 --style changelog\n"
-"\n"
-"A template is a piece of text, with markup to invoke variable\n"
-"expansion::\n"
-"\n"
-"    $ hg log -r1 --template \"{node}\\n\"\n"
-"    b56ce7b07c52de7d5fd79fb89701ea538af65746\n"
-"\n"
-"Strings in curly braces are called keywords. The availability of\n"
-"keywords depends on the exact context of the templater. These\n"
-"keywords are usually available for templating a log-like command:\n"
-"\n"
-":author:    String. The unmodified author of the changeset.\n"
-":branches:  String. The name of the branch on which the changeset\n"
-"            was committed. Will be empty if the branch name was\n"
-"            default.\n"
-":date:      Date information. The date when the changeset was\n"
-"            committed.\n"
-":desc:      String. The text of the changeset description.\n"
-":diffstat:  String. Statistics of changes with the following\n"
-"            format: \"modified files: +added/-removed lines\"\n"
-":files:     List of strings. All files modified, added, or removed\n"
-"            by this changeset.\n"
-":file_adds: List of strings. Files added by this changeset.\n"
-":file_mods: List of strings. Files modified by this changeset.\n"
-":file_dels: List of strings. Files removed by this changeset.\n"
-":node:      String. The changeset identification hash, as a\n"
-"            40-character hexadecimal string.\n"
-":parents:   List of strings. The parents of the changeset.\n"
-":rev:       Integer. The repository-local changeset revision\n"
-"            number.\n"
-":tags:      List of strings. Any tags associated with the\n"
-"            changeset.\n"
-":latesttag: String. Most recent global tag in the ancestors of this\n"
-"            changeset.\n"
-":latesttagdistance: Integer. Longest path to the latest tag.\n"
-"\n"
-"The \"date\" keyword does not produce human-readable output. If you\n"
-"want to use a date in your output, you can use a filter to process\n"
-"it. Filters are functions which return a string based on the input\n"
-"variable. You can also use a chain of filters to get the desired\n"
-"output::\n"
-"\n"
-"   $ hg tip --template \"{date|isodate}\\n\"\n"
-"   2008-08-21 18:22 +0000\n"
-"\n"
-"List of filters:\n"
-"\n"
-":addbreaks:   Any text. Add an XHTML \"<br />\" tag before the end of\n"
-"              every line except the last.\n"
-":age:         Date. Returns a human-readable date/time difference\n"
-"              between the given date/time and the current\n"
-"              date/time.\n"
-":basename:    Any text. Treats the text as a path, and returns the\n"
-"              last component of the path after splitting by the\n"
-"              path separator (ignoring trailing separators). For\n"
-"              example, \"foo/bar/baz\" becomes \"baz\" and \"foo/bar//\"\n"
-"              becomes \"bar\".\n"
-":stripdir:    Treat the text as path and strip a directory level,\n"
-"              if possible. For example, \"foo\" and \"foo/bar\" becomes\n"
-"              \"foo\".\n"
-":date:        Date. Returns a date in a Unix date format, including\n"
-"              the timezone: \"Mon Sep 04 15:13:13 2006 0700\".\n"
-":domain:      Any text. Finds the first string that looks like an\n"
-"              email address, and extracts just the domain\n"
-"              component. Example: ``User <user@example.com>`` becomes\n"
-"              ``example.com``.\n"
-":email:       Any text. Extracts the first string that looks like\n"
-"              an email address. Example: ``User <user@example.com>``\n"
-"              becomes ``user@example.com``.\n"
-":escape:      Any text. Replaces the special XML/XHTML characters\n"
-"              \"&\", \"<\" and \">\" with XML entities.\n"
-":fill68:      Any text. Wraps the text to fit in 68 columns.\n"
-":fill76:      Any text. Wraps the text to fit in 76 columns.\n"
-":firstline:   Any text. Returns the first line of text.\n"
-":nonempty:    Any text. Returns '(none)' if the string is empty.\n"
-":hgdate:      Date. Returns the date as a pair of numbers:\n"
-"              \"1157407993 25200\" (Unix timestamp, timezone offset).\n"
-":isodate:     Date. Returns the date in ISO 8601 format:\n"
-"              \"2009-08-18 13:00 +0200\".\n"
-":isodatesec:  Date. Returns the date in ISO 8601 format, including\n"
-"              seconds: \"2009-08-18 13:00:13 +0200\". See also the\n"
-"              rfc3339date filter.\n"
-":localdate:   Date. Converts a date to local date.\n"
-":obfuscate:   Any text. Returns the input text rendered as a\n"
-"              sequence of XML entities.\n"
-":person:      Any text. Returns the text before an email address.\n"
-":rfc822date:  Date. Returns a date using the same format used in\n"
-"              email headers: \"Tue, 18 Aug 2009 13:00:13 +0200\".\n"
-":rfc3339date: Date. Returns a date using the Internet date format\n"
-"              specified in RFC 3339: \"2009-08-18T13:00:13+02:00\".\n"
-":short:       Changeset hash. Returns the short form of a changeset\n"
-"              hash, i.e. a 12-byte hexadecimal string.\n"
-":shortdate:   Date. Returns a date like \"2006-09-18\".\n"
-":strip:       Any text. Strips all leading and trailing whitespace.\n"
-":tabindent:   Any text. Returns the text, with every line except\n"
-"              the first starting with a tab character.\n"
-":urlescape:   Any text. Escapes all \"special\" characters. For\n"
-"              example, \"foo bar\" becomes \"foo%20bar\".\n"
-":user:        Any text. Returns the user portion of an email\n"
-"              address.\n"
-msgstr ""
-"O Mercurial permite que você personalize a saída de comandos\n"
-"usando modelos. Você pode tanto passar um modelo pela linha de\n"
-"comando, usando a opção --template, como selecionar um\n"
-"modelo-estilo existente (--style).\n"
-"\n"
-"Você pode personalizar a saída de qualquer comando semelhante\n"
-"ao log: log, outgoing, incoming, tip, parents, heads e glog.\n"
-"\n"
-"Três estilos são incluídos na distribuição do Mercurial: default\n"
-"(o estilo usado quando nenhuma preferência for passada), compact\n"
-"e changelog. Uso::\n"
-"\n"
-"    $ hg log -r1 --style changelog\n"
-"\n"
-"Um modelo é um texto com marcações que invocam expansão de\n"
-"variáveis::\n"
-"\n"
-"    $ hg log -r1 --template \"{node}\\n\"\n"
-"    b56ce7b07c52de7d5fd79fb89701ea538af65746\n"
-"\n"
-"Strings entre chaves são chamadas palavras chave. A\n"
-"disponibilidade de palavras chave depende do contexto exato do\n"
-"modelador. Estas palavras chave estão comumente disponíveis para\n"
-"modelar comandos semelhantes ao log:\n"
-"\n"
-":author:    String. O autor da revisão, sem modificações.\n"
-":branches:  String. O nome do ramo no qual a revisão foi\n"
-"            consolidada. Será vazio se o nome do ramo for default.\n"
-":date:      Informação de data. A data de consolidação da revisão.\n"
-":desc:      String. O texto da descrição da revisão.\n"
-":diffstat:  String. Estatísticas de mudanças no seguinte\n"
-"            formato: \"modified files: +added/-removed lines\"\n"
-":files:     Lista de strings. Todos os arquivos modificados,\n"
-"            adicionados ou removidos por esta revisão.\n"
-":file_adds: Lista de strings. Arquivos adicionados por esta\n"
-"            revisão.\n"
-":file_mods: Lista de strings. Arquivos modificados por esta\n"
-"            revisão.\n"
-":file_dels: Lista de strings. Arquivos removidos por esta\n"
-"            revisão.\n"
-":node:      String. O hash de identificação da revisão, como uma\n"
-"            string hexadecimal de 40 caracteres.\n"
-":parents:   Lista de strings. Os pais da revisão.\n"
-":rev:       Inteiro. O número de ordem da revisão no\n"
-"            repositório local.\n"
-":tags:      Lista de strings. Quaisquer etiquetas associadas à\n"
-"            revisão.\n"
-":latesttag: String. A etiqueta global mais recente nos ancestrais desta\n"
-"            revisão.\n"
-":latesttagdistance: Inteiro. O caminho mais longo para a latesttag.\n"
-"\n"
-"A palavra chave \"date\" não produz saída legível para humanos.\n"
-"Se você quiser usar uma data em sua saída, você pode usar um\n"
-"filtro para processá-la. Filtros são funções que devolvem uma\n"
-"string baseada na variável de entrada. Você também pode encadear\n"
-"filtros para obter a saída desejada::\n"
-"\n"
-"   $ hg tip --template \"{date|isodate}\\n\"\n"
-"   2008-08-21 18:22 +0000\n"
-"\n"
-"Lista de filtros:\n"
-"\n"
-":addbreaks:   Qualquer texto. Adiciona uma tag XHTML \"<br />\"\n"
-"              antes do fim de cada linha, exceto a última.\n"
-":age:         Data. Devolve uma diferença de data/tempo legível entre\n"
-"              a data/hora dada e a data/hora atual.\n"
-":basename:    Qualquer texto. Trata o texto como um caminho, e\n"
-"              devolve o último componente do caminho após quebrá-lo\n"
-"              usando o separador de caminhos (ignorando separadores à\n"
-"              direita). Por exemple, \"foo/bar/baz\" se torna \"baz\"\n"
-"              e \"foo/bar//\" se torna \"bar\".\n"
-":date:        Data. Devolve uma data em um formato de data Unix,\n"
-"              incluindo a diferença de fuso horário:\n"
-"              \"Mon Sep 04 15:13:13 2006 0700\".\n"
-":stripdir:    Trata o texto como um caminho e remove um nível\n"
-"              de diretório, se possível. Por exemplo, \"foo\" e\n"
-"              \"foo/bar\" se tornam \"foo\".\n"
-":domain:      Qualquer texto. Encontra a primeira string que se\n"
-"              pareça com um endereço de e-mail, e extrai apenas a parte\n"
-"              do domínio. Por exemplo:\n"
-"              ``User <user@example.com>`` se torna ``example.com``.\n"
-":email:       Qualquer texto. Extrai a primeira string que se pareça\n"
-"              com um endereço de e-mail. Por exemplo:\n"
-"              ``User <user@example.com>`` se torna ``user@example.com``.\n"
-":escape:      Qualquer texto. Substitui os caracteres especiais\n"
-"              XML/XHTML \"&\", \"<\" e \">\" por entidades XML.\n"
-":fill68:      Qualquer texto. Quebra o texto para caber em 68\n"
-"              colunas.\n"
-":fill76:      Qualquer texto. Quebra o texto para caber em 76\n"
-"              colunas.\n"
-":firstline:   Qualquer texto. Devolve a primeira linha do texto.\n"
-":nonempty:    Qualquer texto. Devolve (none) se o texto for vazio.\n"
-":hgdate:      Data. Devolve a data como um par de números:\n"
-"              \"1157407993 25200\" (timestamp Unix, defasagem de fuso)\n"
-":isodate:     Data. Devolve a data em formato ISO 8601: \"2009-08-18\n"
-"              13:00 +0200\".\n"
-":localdate:   Data. Converte para data local.\n"
-":obfuscate:   Qualquer texto. Devolve o texto de entrada\n"
-"              renderizado como uma seqüência de entidades XML.\n"
-":person:      Qualquer texto. Devolve o texto antes de um endereço\n"
-"              de e-mail.\n"
-":rfc822date:  Data. Devolve uma data usando o mesmo formato utilizado\n"
-"              em cabeçalhos de e-mail:\n"
-"              \"Tue, 18 Aug 2009 13:00:13 +0200\".\n"
-":rfc3339date: Data. Devolve uma data usando o formato de data da\n"
-"              Internet especificado na RFC 3339:\n"
-"              \"2009-08-18T13:00:13+02:00\".\n"
-":short:       Hash da revisão. Devolve a forma curta do hash de\n"
-"              uma revisão, ou seja, uma string hexadecimal de 12 bytes.\n"
-":shortdate:   Data. Devolve uma data como \"2006-09-18\".\n"
-":strip:       Qualquer texto. Remove todos os espaços em branco no\n"
-"              início e no final do texto.\n"
-":tabindent:   Qualquer texto. Devolve o texto todo, com a adição\n"
-"              de um caractere de tabulação ao início de cada linha,\n"
-"              exceto da primeira.\n"
-":urlescape:   Qualquer texto. Codifica todos os caracteres\n"
-"              \"especiais\". Por exemplo, \"foo bar\" se torna\n"
-"              \"foo%20bar\".\n"
-":user:        Qualquer texto. Devolve a parte do usuário de um\n"
-"              endereço de e-mail.\n"
-
-msgid ""
-"Valid URLs are of the form::\n"
-"\n"
-"  local/filesystem/path[#revision]\n"
-"  file://local/filesystem/path[#revision]\n"
-"  http://[user[:pass]@]host[:port]/[path][#revision]\n"
-"  https://[user[:pass]@]host[:port]/[path][#revision]\n"
-"  ssh://[user[:pass]@]host[:port]/[path][#revision]\n"
-"\n"
-"Paths in the local filesystem can either point to Mercurial\n"
-"repositories or to bundle files (as created by 'hg bundle' or 'hg\n"
-"incoming --bundle').\n"
-"\n"
-"An optional identifier after # indicates a particular branch, tag, or\n"
-"changeset to use from the remote repository. See also 'hg help\n"
-"revisions'.\n"
-"\n"
-"Some features, such as pushing to http:// and https:// URLs are only\n"
-"possible if the feature is explicitly enabled on the remote Mercurial\n"
-"server.\n"
-"\n"
-"Some notes about using SSH with Mercurial:\n"
-"\n"
-"- SSH requires an accessible shell account on the destination machine\n"
-"  and a copy of hg in the remote path or specified with as remotecmd.\n"
-"- path is relative to the remote user's home directory by default. Use\n"
-"  an extra slash at the start of a path to specify an absolute path::\n"
-"\n"
-"    ssh://example.com//tmp/repository\n"
-"\n"
-"- Mercurial doesn't use its own compression via SSH; the right thing\n"
-"  to do is to configure it in your ~/.ssh/config, e.g.::\n"
-"\n"
-"    Host *.mylocalnetwork.example.com\n"
-"      Compression no\n"
-"    Host *\n"
-"      Compression yes\n"
-"\n"
-"  Alternatively specify \"ssh -C\" as your ssh command in your hgrc or\n"
-"  with the --ssh command line option.\n"
-"\n"
-"These URLs can all be stored in your hgrc with path aliases under the\n"
-"[paths] section like so::\n"
-"\n"
-"  [paths]\n"
-"  alias1 = URL1\n"
-"  alias2 = URL2\n"
-"  ...\n"
-"\n"
-"You can then use the alias for any command that uses a URL (for\n"
-"example 'hg pull alias1' will be treated as 'hg pull URL1').\n"
-"\n"
-"Two path aliases are special because they are used as defaults when\n"
-"you do not provide the URL to a command:\n"
-"\n"
-"default:\n"
-"  When you create a repository with hg clone, the clone command saves\n"
-"  the location of the source repository as the new repository's\n"
-"  'default' path. This is then used when you omit path from push- and\n"
-"  pull-like commands (including incoming and outgoing).\n"
-"\n"
-"default-push:\n"
-"  The push command will look for a path named 'default-push', and\n"
-"  prefer it over 'default' if both are defined.\n"
-msgstr ""
-"URLs válidas são da forma::\n"
-"\n"
-"  caminho/no/sistema/de/arquivos/local[#revisão]\n"
-"  file://caminho/no/sistema/de/arquivos/local[#revisão]\n"
-"  http://[usuário[:senha]@]servidor[:porta]/[caminho][#revisão]\n"
-"  https://[usuário[:senha]@]servidor[:porta]/[caminho][#revisão]\n"
-"  ssh://[usuário[:senha]@]servidor[:porta]/[caminho][#revisão]\n"
-"\n"
-"Caminhos no sistema de arquivos local podem tanto apontar para\n"
-"repositórios do Mercurial como para arquivos bundle (criados por\n"
-"'hg bundle' ou 'hg incoming --bundle').\n"
-"\n"
-"Um identificador opcional após # indica um ramo, etiqueta ou\n"
-"revisão do repositório remoto a ser usado. Veja também 'hg\n"
-"help revisions'.\n"
-"\n"
-"Certas funcionalidades, como o push para URLs http:// e https://\n"
-"são possíveis apenas se forem explicitamente habilitadas no\n"
-"servidor remoto do Mercurial.\n"
-"\n"
-"Algumas notas sobre o uso de SSH com o Mercurial:\n"
-"\n"
-"- o SSH necessita de uma conta shell acessível na máquina de\n"
-"  destino e uma cópia do hg no caminho de execução remoto ou\n"
-"  especificado em remotecmd.\n"
-"- o caminho é por padrão relativo ao diretório home do usuário\n"
-"  remoto.\n"
-"  Use uma barra extra no início de um caminho para especificar um\n"
-"  caminho absoluto::\n"
-"\n"
-"    ssh://exemplo.com//tmp/repositorio\n"
-"\n"
-"- o Mercurial não usa sua própria compressão via SSH; a coisa\n"
-"  certa a fazer é configurá-la em seu ~/.ssh/config, por exemplo::\n"
-"\n"
-"    Host *.minharedelocal.exemplo.com\n"
-"      Compression no\n"
-"    Host *\n"
-"      Compression yes\n"
-"\n"
-"  Alternativamente especifique \"ssh -C\" como seu comando ssh\n"
-"  em seu hgrc ou pela opção de linha de comando --ssh .\n"
-"\n"
-"Estas URLs podem ser todas armazenadas em seu hgrc com apelidos\n"
-"de caminho na seção [paths] , da seguinte forma::\n"
-"\n"
-"  [paths]\n"
-"  apelido1 = URL1\n"
-"  apelido2 = URL2\n"
-"  ...\n"
-"\n"
-"Você pode então usar o apelido em qualquer comando que receba uma\n"
-"URL (por exemplo 'hg pull apelido1' será tratado como 'hg pull URL1').\n"
-"\n"
-"Dois apelidos de caminho são especiais por serem usados como\n"
-"valores padrão quando você não fornece a URL para um comando:\n"
-"\n"
-"default:\n"
-"  Quando você cria um repositório com hg clone, o comando clone\n"
-"  grava a localização do repositório de origem como o novo\n"
-"  caminho 'default' do repositório. Ele é então usado quando você\n"
-"  omitir o caminho de comandos semelhantes ao push e ao pull\n"
-"  (incluindo incoming e outgoing).\n"
-"\n"
-"default-push:\n"
-"  O comando push procurará por um caminho chamado 'default-push',\n"
-"  e o usará ao invés de 'default' se ambos estiverem definidos.\n"
-
-msgid ""
 "hooks for controlling repository access\n"
 "\n"
 "This hook makes it possible to allow or deny write access to portions\n"
@@ -1784,8 +777,9 @@
 msgid ""
 "colorize output from some commands\n"
 "\n"
-"This extension modifies the status command to add color to its output\n"
-"to reflect file status, the qseries command to add color to reflect\n"
+"This extension modifies the status and resolve commands to add color to "
+"their\n"
+"output to reflect file status, the qseries command to add color to reflect\n"
 "patch status (applied, unapplied, missing), and to diff-related\n"
 "commands to highlight additions, removals, diff headers, and trailing\n"
 "whitespace.\n"
@@ -1822,12 +816,17 @@
 "  diff.inserted = green\n"
 "  diff.changed = white\n"
 "  diff.trailingwhitespace = bold red_background\n"
+"\n"
+"  resolve.unresolved = red bold\n"
+"  resolve.resolved = green bold\n"
+"\n"
+"  bookmarks.current = green\n"
 msgstr ""
 "colore a saída de alguns comandos\n"
 "\n"
 "Essa extensão colore a saída dos comandos para realçar diversas\n"
-"informações: no comando status, reflete os estados dos arquivos; no\n"
-"comando qseries, reflete os estados dos patches (aplicado,\n"
+"informações: nos comandos status e resolve, reflete os estados dos arquivos;\n"
+"no comando qseries, reflete os estados dos patches (aplicado,\n"
 "não-aplicado, faltando); e para comandos relacionados com diff,\n"
 "destaca adições, remoções, cabeçalhos de diffs e espaços em branco\n"
 "no final das linhas.\n"
@@ -2031,6 +1030,15 @@
 "        matched. If a match occurs, then the conversion process will\n"
 "        add the most recent revision on the branch indicated in the\n"
 "        regex as the second parent of the changeset.\n"
+"    --config hook.cvslog\n"
+"        Specify a Python function to be called at the end of gathering\n"
+"        the CVS log. The function is passed a list with the log entries,\n"
+"        and can modify the entries in-place, or add or delete them.\n"
+"    --config hook.cvschangesets\n"
+"        Specify a Python function to be called after the changesets\n"
+"        are calculated from the the CVS log. The function is passed\n"
+"        a list with the changeset entries, and can modify the changesets\n"
+"        in-place, or add or delete them.\n"
 "\n"
 "    An additional \"debugcvsps\" Mercurial command allows the builtin\n"
 "    changeset merging code to be run without doing a conversion. Its\n"
@@ -2249,6 +1257,15 @@
 "        encontrado, a conversão inserirá a revisão mais recente\n"
 "        do ramo indicado na expressão regular como segundo pai da\n"
 "        revisão.\n"
+"    --config hook.cvslog\n"
+"        Especifica uma função Python a ser chamada ao término da coleta\n"
+"        do log do CVS. Essa função recebe uma lista com as entradas do log,\n"
+"        e pode modificar, adicionar ou remover entradas.\n"
+"    --config hook.cvschangesets\n"
+"        Especifica uma função Python a ser chamada após os conjuntos de mudanças\n"
+"        serem calculados a partir do log do CVS. Essa função recebe uma lista\n"
+"        com as entradas do conjunto de mudanças, e pode modificar, adicionar ou\n"
+"        remover suas entradas.\n"
 "\n"
 "    O comando \"debugcvsps\" do Mercurial permite que o código de mesclagem\n"
 "    interno seja executado fora do processo de conversão. Seus\n"
@@ -2441,10 +1458,18 @@
 msgstr "não foi possível abrir arquivo de mapeamento %r: %s"
 
 #, python-format
+msgid "%s: invalid source repository type"
+msgstr "%s: tipo de repositório de origem inválido"
+
+#, python-format
 msgid "%s: missing or unsupported repository"
 msgstr "%s: repositório ausente ou não suportado"
 
 #, python-format
+msgid "%s: invalid destination repository type"
+msgstr "%s: tipo de repositório de destino inválido"
+
+#, python-format
 msgid "convert: %s\n"
 msgstr "convert: %s\n"
 
@@ -2917,15 +1942,14 @@
 msgid ""
 "use %(path)s to diff repository (or selected files)\n"
 "\n"
-"    Show differences between revisions for the specified files, using the\n"
-"    %(path)s program.\n"
-"\n"
-"    When two revision arguments are given, then changes are shown between\n"
-"    those revisions. If only one revision is specified then that revision "
-"is\n"
-"    compared to the working directory, and, when no revisions are "
-"specified,\n"
-"    the working directory files are compared to its parent."
+"    Show differences between revisions for the specified files, using\n"
+"    the %(path)s program.\n"
+"\n"
+"    When two revision arguments are given, then changes are shown\n"
+"    between those revisions. If only one revision is specified then\n"
+"    that revision is compared to the working directory, and, when no\n"
+"    revisions are specified, the working directory files are compared\n"
+"    to its parent."
 msgstr ""
 "usa %(path)s para exibir diffs do repositório ou arquivos\n"
 "\n"
@@ -3546,21 +2570,6 @@
 msgstr "observando diretórios sobre %r\n"
 
 #, python-format
-msgid "status: %r %s -> %s\n"
-msgstr "situação: %r %s -> %s\n"
-
-#, python-format
-msgid "%s dirstate reload\n"
-msgstr "%s recarga de dirstate\n"
-
-#, python-format
-msgid "%s end dirstate reload\n"
-msgstr "%s fim da recarga de dirstate\n"
-
-msgid "rescanning due to .hgignore change\n"
-msgstr "varrendo novamente por mudança no .hgignore\n"
-
-#, python-format
 msgid "%s event: created %s\n"
 msgstr "evento %s: criado %s\n"
 
@@ -3592,6 +2601,16 @@
 msgid "%s hooking back up with %d bytes readable\n"
 msgstr "%s registrando novamente com %d bytes legíveis\n"
 
+msgid "finished setup\n"
+msgstr "setup encerrado\n"
+
+#, python-format
+msgid "status: %r %s -> %s\n"
+msgstr "situação: %r %s -> %s\n"
+
+msgid "rescanning due to .hgignore change\n"
+msgstr "varrendo novamente por mudança no .hgignore\n"
+
 msgid "cannot start: socket is already bound"
 msgstr "não é possível iniciar: o socket já está associado"
 
@@ -3614,9 +2633,6 @@
 msgid "unrecognized query type: %s\n"
 msgstr "tipo de consulta não reconhecido: %s\n"
 
-msgid "finished setup\n"
-msgstr "setup encerrado\n"
-
 msgid ""
 "expand expressions into changelog and summaries\n"
 "\n"
@@ -3991,6 +3007,18 @@
 "  add known patch to applied stack          qpush\n"
 "  remove patch from applied stack           qpop\n"
 "  refresh contents of top applied patch     qrefresh\n"
+"\n"
+"By default, mq will automatically use git patches when required to\n"
+"avoid losing file mode changes, copy records, binary files or empty\n"
+"files creations or deletions. This behaviour can be configured with::\n"
+"\n"
+"  [mq]\n"
+"  git = auto/keep/yes/no\n"
+"\n"
+"If set to 'keep', mq will obey the [diff] section configuration while\n"
+"preserving existing git patches upon qrefresh. If set to 'yes' or\n"
+"'no', mq will override the [diff] section and always generate git or\n"
+"regular patches, possibly losing data in the second case.\n"
 msgstr ""
 "gerencia uma pilha de patches\n"
 "\n"
@@ -4015,6 +3043,24 @@
 "  adiciona um patch conhecido à pilha de aplicados   qpush\n"
 "  remove um patch da pilha de aplicados              qpop\n"
 "  renova o conteúdo do patch aplicado do topo        qrefresh\n"
+"\n"
+"Por padrão, a mq irá automaticamente usar patches git se necessário para\n"
+"evitar perder mudanças de modo de arquivo, registros de cópia, arquivos\n"
+"binários ou criação e remoção de arquivos vazios. Este comportamento pode\n"
+"ser configurado com::\n"
+"\n"
+"  [mq]\n"
+"  git = auto/keep/yes/no\n"
+"\n"
+"Se configurada como 'keep', a mq irá obedecer a seção [diff] do arquivo de\n"
+"configuração ao preservar patches git existentes em um comando qrefresh. Se\n"
+"configurada como 'yes' ou 'no', a mq irá sobrepor a seção [diff] e sempre\n"
+"gerar patches git ou comuns, respectivamente, possivelmente perdendo dados no\n"
+"segundo caso.\n"
+
+#, python-format
+msgid "mq.git option can be auto/keep/yes/no got %s"
+msgstr "a opção mq.git pode ser auto/keep/yes/no mas é %s"
 
 #, python-format
 msgid "%s appears more than once in %s"
@@ -4430,22 +3476,28 @@
 "    "
 
 msgid ""
-"init a new queue repository\n"
+"init a new queue repository (DEPRECATED)\n"
 "\n"
 "    The queue repository is unversioned by default. If\n"
 "    -c/--create-repo is specified, qinit will create a separate nested\n"
 "    repository for patches (qinit -c may also be run later to convert\n"
 "    an unversioned patch repository into a versioned one). You can use\n"
-"    qcommit to commit changes to this queue repository."
-msgstr ""
-"cria um novo repositório de fila\n"
+"    qcommit to commit changes to this queue repository.\n"
+"\n"
+"    This command is deprecated. Without -c, it's implied by other relevant\n"
+"    commands. With -c, use hg init -Q instead."
+msgstr ""
+"cria um novo repositório de fila (OBSOLETO)\n"
 "\n"
 "    O repositório de fila é por padrão não versionado. Se for\n"
 "    especificado -c/--create-repo, qinit criará um repositório\n"
 "    separado aninhado para patches (qinit -c pode ser também\n"
 "    executado posteriormente para converter um repositório de\n"
 "    patches não versionado em um versionado). Você pode usar\n"
-"    qcommit para consolidar mudanças neste repositório de fila."
+"    qcommit para consolidar mudanças neste repositório de fila.\n"
+"\n"
+"    Este comando é obsoleto. Sem -c, é subentendido em outros comandos\n"
+"    relevantes. E ao invés de qinit -c, use hg init -Q ."
 
 msgid ""
 "clone main and patch repository at same time\n"
@@ -4494,8 +3546,14 @@
 msgid "updating destination repository\n"
 msgstr "atualizando repositório de destino\n"
 
-msgid "commit changes in the queue repository"
-msgstr "consolida mudanças no repositório da fila"
+msgid ""
+"commit changes in the queue repository (DEPRECATED)\n"
+"\n"
+"    This command is deprecated; use hg -Q commit instead."
+msgstr ""
+"consolida mudanças no repositório da fila de patches (OBSOLETO) "
+"\n"
+"    Este comando é obsoleto; use hg -Q commit em seu lugar."
 
 msgid "print the entire series file"
 msgstr "imprime todo o arquivo series"
@@ -4685,7 +3743,7 @@
 "\n"
 "    To set guards on another patch::\n"
 "\n"
-"      hg qguard -- other.patch +2.6.17 -stable\n"
+"      hg qguard other.patch -- +2.6.17 -stable\n"
 "    "
 msgstr ""
 "define ou imprime guardas para um patch\n"
@@ -4703,7 +3761,7 @@
 "\n"
 "    Para definir guardas em um outro patch::\n"
 "\n"
-"      hg qguard -- outro.patch +2.6.17 -stable\n"
+"      hg qguard outro.patch -- +2.6.17 -stable\n"
 "    "
 
 msgid "cannot mix -l/--list with options or arguments"
@@ -4777,11 +3835,23 @@
 msgid "A patch named %s already exists in the series file"
 msgstr "Um patch de nome %s já existe no arquivo series"
 
-msgid "restore the queue state saved by a revision"
-msgstr "restaura o estado da fila salvo por uma revisão"
-
-msgid "save current queue state"
-msgstr "salva o estado atual da fila"
+msgid ""
+"restore the queue state saved by a revision (DEPRECATED)\n"
+"\n"
+"    This command is deprecated, use rebase --mq instead."
+msgstr ""
+"restaura o estado da fila salvo por uma revisão (OBSOLETO) "
+"\n"
+"    Este comando é obsoleto, use "
+
+msgid ""
+"save current queue state (DEPRECATED)\n"
+"\n"
+"    This command is deprecated, use rebase --mq instead."
+msgstr ""
+"salva o estado atual da fila (OBSOLETO) "
+"\n"
+"    Este comando é obsoleto, use rebase --mq em seu lugar."
 
 #, python-format
 msgid "destination %s exists and is not a directory"
@@ -4959,6 +4029,9 @@
 msgid "cannot import over an applied patch"
 msgstr "não se pode importar sobre um patch aplicado"
 
+msgid "operate on patch repository"
+msgstr "opera no repositório de patches"
+
 msgid "print first line of patch header"
 msgstr "imprime a primeira linha do cabeçalho do patch"
 
@@ -5019,8 +4092,8 @@
 msgid "drop all guards"
 msgstr "descarta todas as guardas"
 
-msgid "hg qguard [-l] [-n] -- [PATCH] [+GUARD]... [-GUARD]..."
-msgstr "hg qguard [-l] [-n] -- [PATCH] [+GUARDA]... [-GUARDA]..."
+msgid "hg qguard [-l] [-n] [PATCH] [-- [+GUARD]... [-GUARD]...]"
+msgstr "hg qguard [-l] [-n] [PATCH] [-- [+GUARDA]... [-GUARDA]...]"
 
 msgid "hg qheader [PATCH]"
 msgstr "hg qheader [PATCH]"
@@ -5052,8 +4125,8 @@
 msgid "hg qinit [-c]"
 msgstr "hg qinit [-c]"
 
-msgid "import uncommitted changes into patch"
-msgstr "importa para o patch mudanças não consolidadas"
+msgid "import uncommitted changes (DEPRECATED)"
+msgstr "importa mudanças não consolidadas (OBSOLETO)"
 
 msgid "add \"From: <current user>\" to patch"
 msgstr "adiciona \"From: <usuário atual>\" ao patch"
@@ -5079,8 +4152,8 @@
 msgid "pop all patches"
 msgstr "desempilha todos os patches"
 
-msgid "queue name to pop"
-msgstr "nome da fila para desempilhar"
+msgid "queue name to pop (DEPRECATED)"
+msgstr "nome da fila para desempilhar (OBSOLETO)"
 
 msgid "forget any local changes to patched files"
 msgstr "descarta qualquer mudança local a arquivos modificados pelo patch"
@@ -5097,11 +4170,11 @@
 msgid "apply all patches"
 msgstr "aplica todos os patches"
 
-msgid "merge from another queue"
-msgstr "mescla com outra fila"
-
-msgid "merge queue name"
-msgstr "nome da fila de mesclagem"
+msgid "merge from another queue (DEPRECATED)"
+msgstr "mescla com outra fila (OBSOLETO)"
+
+msgid "merge queue name (DEPRECATED)"
+msgstr "nome da fila de mesclagem (OBSOLETO)"
 
 msgid "hg qpush [-f] [-l] [-a] [-m] [-n NAME] [PATCH | INDEX]"
 msgstr "hg qpush [-f] [-l] [-a] [-m] [-n NOME] [PATCH | ÍNDICE]"
@@ -5845,6 +4918,52 @@
 msgid "hg email [OPTION]... [DEST]..."
 msgstr "hg email [OPÇÃO]... [DEST]..."
 
+msgid ""
+"show progress bars for some actions\n"
+"\n"
+"This extension uses the progress information logged by hg commands\n"
+"to draw progress bars that are as informative as possible. Some progress\n"
+"bars only offer indeterminate information, while others have a definite\n"
+"end point.\n"
+"\n"
+"The following settings are available::\n"
+"\n"
+"  [progress]\n"
+"  delay = 3 # number of seconds (float) before showing the progress bar\n"
+"  refresh = 0.1 # time in seconds between refreshes of the progress bar\n"
+"  format = topic bar number # format of the progress bar\n"
+"  width = <none> # if set, the maximum width of the progress information\n"
+"                 # (that is, min(width, term width) will be used)\n"
+"  clear-complete = True # clear the progress bar after it's done\n"
+"\n"
+"Valid entries for the format field are topic, bar, number, unit, and\n"
+"item. item defaults to the last 20 characters of the item, but this\n"
+"can be changed by adding either ``-<num>`` which would take the last\n"
+"num characters, or ``+<num>`` for the first num characters.\n"
+msgstr ""
+"mostra barras de progresso para algumas ações\n"
+"\n"
+"Esta extensão usa a informação de progresso fornecida por comandos do\n"
+"Mercurial para desenhar barras de progresso que sejam tão informativas\n"
+"quanto possível. Algumas barras de progresso fornecem apenas informação\n"
+"indeterminada, enquanto outras possuem um ponto de encerramento definido.\n"
+"\n"
+"As seguintes opções estão disponíveis::\n"
+"\n"
+"  [progress]\n"
+"  delay = 3 # número de segundos (float) antes que a barra seja mostrada\n"
+"  refresh = 0.1 # tempo em segundos entre atualizações da barra de progresso\n"
+"  format = topic bar number # formato da barra de progresso\n"
+"  width = <none> # se definido, será a largura máxima da informação de progresso\n"
+"                 # (isto é, min(largura, largura do terminal) será usada)\n"
+"  clear-complete = True # limpa a barra de progresso após terminar\n"
+"\n"
+"Entradas válidas para o campo format são topic (tópico), bar (barra),\n"
+"number (número), unit (unidade) e item (item). item por padrão são os últimos\n"
+"caracteres do item, mas isto pode ser modificado adicionando ou\n"
+"``-<num>``, que consideraria os últimos num caracteres, ou ``+<num>``\n"
+"para os primeiros num caracteres.\n"
+
 msgid "command to delete untracked files from the working directory"
 msgstr "comando para apagar do diretório de trabalho arquivos não rastreados"
 
@@ -5979,18 +5098,36 @@
 msgid "cannot use collapse with continue or abort"
 msgstr "não se pode usar collapse com continue ou abort"
 
+msgid "cannot use detach with continue or abort"
+msgstr "não se pode usar detach com continue ou abort"
+
 msgid "abort and continue do not allow specifying revisions"
 msgstr "abort e continue não permitem especificar revisões"
 
 msgid "cannot specify both a revision and a base"
 msgstr "não se pode especificar ao mesmo tempo uma revisão e uma base"
 
+msgid "detach requires a revision to be specified"
+msgstr "detach exige que uma revisão seja especificada"
+
+msgid "cannot specify a base with detach"
+msgstr "não se pode especificar base com detach"
+
 msgid "nothing to rebase\n"
 msgstr "nada para rebasear\n"
 
 msgid "cannot use both keepbranches and extrafn"
 msgstr "não se pode usar keepbranches e extrafn simultaneamente"
 
+msgid "fix unresolved conflicts with hg resolve then run hg rebase --continue"
+msgstr ""
+"corrija conflitos não resolvidos com hg resolve e então execute hg rebase --"
+"continue"
+
+#, python-format
+msgid "no changes, revision %d skipped\n"
+msgstr "nenhuma mudança, revisão %d omitida\n"
+
 msgid "rebase merging completed\n"
 msgstr "mesclagem de rebaseamento completada\n"
 
@@ -6004,14 +5141,8 @@
 msgid "%d revisions have been skipped\n"
 msgstr "%d revisões foram omitidas\n"
 
-msgid "fix unresolved conflicts with hg resolve then run hg rebase --continue"
-msgstr ""
-"corrija conflitos não resolvidos com hg resolve e então execute hg rebase --"
-"continue"
-
-#, python-format
-msgid "no changes, revision %d skipped\n"
-msgstr "nenhuma mudança, revisão %d omitida\n"
+msgid "unable to collapse, there is more than one external parent"
+msgstr "incapaz de colapsar, há mais de um pai externo"
 
 #, python-format
 msgid "cannot use revision %d as base, result would have 3 parents"
@@ -6035,9 +5166,6 @@
 msgid "source is descendant of destination"
 msgstr "origem é descendente do destino"
 
-msgid "unable to collapse, there is more than one external parent"
-msgstr "incapaz de colapsar, há mais de um pai externo"
-
 msgid "rebase working directory to branch head"
 msgstr "rebaseia o diretório de trabalho para a cabeça do ramo"
 
@@ -6059,6 +5187,9 @@
 msgid "keep original branch names"
 msgstr "mantém nomes de ramos originais"
 
+msgid "force detaching of source from its original branch"
+msgstr "força desacoplamento da origem de seu ramo original"
+
 msgid "continue an interrupted rebase"
 msgstr "continua um rebaseamento interrompido"
 
@@ -6066,11 +5197,11 @@
 msgstr "aborta um rebaseamento interrompido"
 
 msgid ""
-"hg rebase [-s REV | -b REV] [-d REV] [--collapse] [--keep] [--keepbranches] "
-"| [-c] | [-a]"
-msgstr ""
-"hg rebase [-s REV | -b REV] [-d REV] [--collapse] [--keep] [--keepbranches] "
-"| [-c] | [-a]"
+"hg rebase [-s REV | -b REV] [-d REV] [--collapse] [--detach] [--keep] [--"
+"keepbranches] | [-c] | [-a]"
+msgstr ""
+"hg rebase [-s REV | -b REV] [-d REV] [--collapse] [--detach] [--keep]"
+" [--keepbranches] [-c] | [-a]"
 
 msgid "commands to interactively select changes for commit/qrefresh"
 msgstr "comandos para selecionar interativamente mudanças em um commit ou qrefresh"
@@ -6207,32 +5338,27 @@
 msgid ""
 "recreate hardlinks between two repositories\n"
 "\n"
-"    When repositories are cloned locally, their data files will be "
-"hardlinked\n"
-"    so that they only use the space of a single repository.\n"
-"\n"
-"    Unfortunately, subsequent pulls into either repository will break "
-"hardlinks\n"
-"    for any files touched by the new changesets, even if both repositories "
-"end\n"
-"    up pulling the same changes.\n"
-"\n"
-"    Similarly, passing --rev to \"hg clone\" will fail to use\n"
-"    any hardlinks, falling back to a complete copy of the source "
-"repository.\n"
-"\n"
-"    This command lets you recreate those hardlinks and reclaim that wasted\n"
-"    space.\n"
-"\n"
-"    This repository will be relinked to share space with ORIGIN, which must "
-"be\n"
-"    on the same local disk. If ORIGIN is omitted, looks for \"default-relink"
-"\",\n"
-"    then \"default\", in [paths].\n"
-"\n"
-"    Do not attempt any read operations on this repository while the command "
-"is\n"
-"    running. (Both repositories will be locked against writes.)\n"
+"    When repositories are cloned locally, their data files will be\n"
+"    hardlinked so that they only use the space of a single repository.\n"
+"\n"
+"    Unfortunately, subsequent pulls into either repository will break\n"
+"    hardlinks for any files touched by the new changesets, even if\n"
+"    both repositories end up pulling the same changes.\n"
+"\n"
+"    Similarly, passing --rev to \"hg clone\" will fail to use any\n"
+"    hardlinks, falling back to a complete copy of the source\n"
+"    repository.\n"
+"\n"
+"    This command lets you recreate those hardlinks and reclaim that\n"
+"    wasted space.\n"
+"\n"
+"    This repository will be relinked to share space with ORIGIN, which\n"
+"    must be on the same local disk. If ORIGIN is omitted, looks for\n"
+"    \"default-relink\", then \"default\", in [paths].\n"
+"\n"
+"    Do not attempt any read operations on this repository while the\n"
+"    command is running. (Both repositories will be locked against\n"
+"    writes.)\n"
 "    "
 msgstr ""
 "restaura hardlinks entre dois repositórios\n"
@@ -6624,12 +5750,15 @@
 "Note that there are some limitations on using this extension:\n"
 "\n"
 "- You should use single encoding in one repository.\n"
-"- You should set same encoding for the repository by locale or\n"
-"  HGENCODING.\n"
-"\n"
-"Path encoding conversion are done between Unicode and\n"
-"encoding.encoding which is decided by Mercurial from current locale\n"
-"setting or HGENCODING.\n"
+"\n"
+"\n"
+"By default, win32mbcs uses encoding.encoding decided by Mercurial.\n"
+"You can specify the encoding by config option::\n"
+"\n"
+" [win32mbcs]\n"
+" encoding = sjis\n"
+"\n"
+"It is useful for the users who want to commit with UTF-8 log message.\n"
 msgstr ""
 "permite o uso de caminhos MBCS com codificação problemática.\n"
 "\n"
@@ -6657,12 +5786,14 @@
 "Note que há algumas limitações no uso desta extensão:\n"
 "\n"
 "- Você deve usar uma única codificação em um repositório.\n"
-"- Você deve definir a mesma codificação para o repositório com o\n"
-"  locale ou HGENCODING.\n"
-"\n"
-"Conversões de codificação de caminhos são feitas entre Unicode e\n"
-"encoding.encoding que é decidida pelo Mercurial a partir de\n"
-"configurações de locale atuais ou HGENCODING.\n"
+"\n"
+"Por padrão, win32mbcs usa a configuração encoding.encoding do Mercurial.\n"
+"Você pode especificar a codificação através da opção de configuração::\n"
+"\n"
+" [win32mbcs]\n"
+" encoding = sjis\n"
+"\n"
+"Isto é útil para usuários que preferem mensagens de consolidação em UTF-8.\n"
 
 #, python-format
 msgid "[win32mbcs] filename conversion failed with %s encoding\n"
@@ -6867,6 +5998,10 @@
 msgid "username %s contains a newline"
 msgstr "nome de usuário %s contém uma quebra de linha"
 
+#, python-format
+msgid "the name '%s' is reserved"
+msgstr "o nome '%s' é reservado"
+
 msgid "options --message and --logfile are mutually exclusive"
 msgstr "opções --message e --logfile são mutuamente exclusivas"
 
@@ -6956,6 +6091,9 @@
 msgid "(consider using --after)\n"
 msgstr "(considere usar --after)\n"
 
+msgid "child process failed to start"
+msgstr "processo filho falhou ao iniciar"
+
 #, python-format
 msgid "changeset:   %d:%s\n"
 msgstr "revisão:   %d:%s\n"
@@ -7087,6 +6225,20 @@
 "    undo an add before that, see hg forget.\n"
 "\n"
 "    If no names are given, add all files to the repository.\n"
+"\n"
+"    .. container:: verbose\n"
+"\n"
+"       An example showing how new (unknown) files are added\n"
+"       automatically by ``hg add``::\n"
+"\n"
+"         $ ls\n"
+"         foo.c\n"
+"         $ hg status\n"
+"         ? foo.c\n"
+"         $ hg add\n"
+"         adding foo.c\n"
+"         $ hg status\n"
+"         A foo.c\n"
 "    "
 msgstr ""
 "adiciona os arquivos especificados na próxima consolidação\n"
@@ -7100,6 +6252,20 @@
 "\n"
 "    Se nomes não forem dados, adiciona todos os arquivos ao\n"
 "    repositório.\n"
+"\n"
+"    .. container:: verbose\n"
+"\n"
+"       Um exemplo que mostra como novos arquivos (desconhecidos) são\n"
+"       adicionados automaticamente por ``hg add``::\n"
+"\n"
+"         $ ls\n"
+"         foo.c\n"
+"         $ hg status\n"
+"         ? foo.c\n"
+"         $ hg add\n"
+"         adicionando foo.c\n"
+"         $ hg status\n"
+"         A foo.c\n"
 "    "
 
 msgid ""
@@ -7490,8 +6656,8 @@
 "    Generate a compressed changegroup file collecting changesets not\n"
 "    known to be in another repository.\n"
 "\n"
-"    If no destination repository is specified the destination is\n"
-"    assumed to have all the nodes specified by one or more --base\n"
+"    If you omit the destination repository, then hg assumes the\n"
+"    destination will have all the nodes you specify with --base\n"
 "    parameters. To create a bundle containing all changesets, use\n"
 "    -a/--all (or --base null).\n"
 "\n"
@@ -7513,8 +6679,8 @@
 "    Gera um arquivo de changegroup contendo revisões não\n"
 "    encontradas no outro repositório.\n"
 "\n"
-"    Se um repositório de destino não for especificado, assume que o\n"
-"    destino tem todos os nós especificados por um ou mais parâmetros\n"
+"    Se você omitir o repositório de destino, o Mercurial assume que o\n"
+"    destino terá todos os nós especificados por um ou mais parâmetros\n"
 "    --base. Para criar um bundle contendo todas as revisões, use\n"
 "    -a/--all (ou --base null).\n"
 "\n"
@@ -7596,7 +6762,9 @@
 "\n"
 "    a) the changeset, tag or branch specified with -u/--updaterev\n"
 "    b) the changeset, tag or branch given with the first -r/--rev\n"
-"    c) the head of the default branch\n"
+"    c) the branch given with the first -b/--branch\n"
+"    d) the branch given with the url#branch source syntax\n"
+"    e) the head of the default branch\n"
 "\n"
 "    Use 'hg clone -u . src dst' to checkout the source repository's\n"
 "    parent changeset (applicable for local source repositories only).\n"
@@ -7658,7 +6826,9 @@
 "\n"
 "    a) a revisão, etiqueta ou ramo especificados com -u/--updaterev\n"
 "    b) a revisão, etiqueta ou ramo especificados com o primeiro -r/--rev\n"
-"    c) a cabeça do ramo default\n"
+"    c) o ramo especificado pelo primeiro parâmetro -b/--branch\n"
+"    d) o ramo especificado pela sintaxe de origem url#ramo\n"
+"    e) a cabeça do ramo default\n"
 "\n"
 "    Use 'hg clone -u . origem destino' para atualizar para a revisão\n"
 "    pai do diretório de trabalho do repositório de origem (aplicável\n"
@@ -8033,8 +7203,9 @@
 "\n"
 "    Print the changeset header and diffs for one or more revisions.\n"
 "\n"
-"    The information shown in the changeset header is: author,\n"
-"    changeset hash, parent(s) and commit comment.\n"
+"    The information shown in the changeset header is: author, date,\n"
+"    branch name (if non-default), changeset hash, parent(s) and commit\n"
+"    comment.\n"
 "\n"
 "    NOTE: export may generate unexpected diff output for merge\n"
 "    changesets, as it will compare the merge changeset against its\n"
@@ -8068,8 +7239,9 @@
 "    Imprime o cabeçalho de revisão e diffs para uma ou mais\n"
 "    revisões.\n"
 "\n"
-"    A informação exibida no cabeçalho de revisão é: autor, hash da\n"
-"    revisão, pai(s) e comentário de consolidação.\n"
+"    A informação exibida no cabeçalho de revisão é: autor, data,\n"
+"    nome do ramo (se diferente do default), hash da revisão, pai(s)\n"
+"    e comentário de consolidação.\n"
 "\n"
 "    NOTA: export pode gerar saída de diff inesperada para revisões\n"
 "    de mesclagem, já que irá comparar a revisão de mesclagem apenas\n"
@@ -8181,71 +7353,58 @@
 msgid ""
 "show current repository heads or show branch heads\n"
 "\n"
-"    With no arguments, show all repository head changesets.\n"
+"    With no arguments, show all repository branch heads.\n"
 "\n"
 "    Repository \"heads\" are changesets with no child changesets. They are\n"
 "    where development generally takes place and are the usual targets\n"
-"    for update and merge operations.\n"
-"\n"
-"    If one or more REV is given, the \"branch heads\" will be shown for\n"
-"    the named branch associated with the specified changeset(s).\n"
-"\n"
-"    Branch heads are changesets on a named branch with no descendants on\n"
-"    the same branch. A branch head could be a \"true\" (repository) head,\n"
-"    or it could be the last changeset on that branch before it was\n"
-"    merged into another branch, or it could be the last changeset on the\n"
-"    branch before a new branch was created. If none of the branch heads\n"
-"    are true heads, the branch is considered inactive.\n"
+"    for update and merge operations. Branch heads are changesets that have\n"
+"    no child changeset on the same branch.\n"
+"\n"
+"    If one or more REVs are given, only branch heads on the branches\n"
+"    associated with the specified changesets are shown.\n"
 "\n"
 "    If -c/--closed is specified, also show branch heads marked closed\n"
 "    (see hg commit --close-branch).\n"
 "\n"
 "    If STARTREV is specified, only those heads that are descendants of\n"
 "    STARTREV will be displayed.\n"
+"\n"
+"    If -t/--topo is specified, named branch mechanics will be ignored and "
+"only\n"
+"    changesets without children will be shown.\n"
 "    "
 msgstr ""
 "mostra as cabeças atuais do repositório ou cabeças de ramo\n"
 "\n"
-"    Sem argumentos, mostra todas as cabeças do repositório.\n"
+"    Sem argumentos, mostra todas as cabeças de ramo do repositório.\n"
 "\n"
 "    \"Cabeças\" do repositório são revisões que não têm revisões\n"
 "    filhas. Elas são onde o desenvolvimento geralmente\n"
 "    acontece e são os alvos costumeiros para operações update e\n"
-"    merge.\n"
+"    merge. Cabeças de ramo são revisões que não possuem revisões filhas\n"
+"    no mesmo ramo.\n"
 "\n"
 "    Se um ou mais argumentos REV forem dados, as \"cabeças de ramo\"\n"
 "    serão mostradas para os ramos nomeados associados às revisões\n"
 "    especificadas.\n"
 "\n"
-"    Cabeças de ramo são revisões em um determinado ramo nomeado que\n"
-"    não têm nenhum descendente nesse mesmo ramo. Uma cabeça de\n"
-"    ramo pode ser uma cabeça \"verdadeira\" (do repositório), a\n"
-"    última revisão nesse ramo antes de uma mesclagem com outro ramo,\n"
-"    ou a última revisão nesse ramo antes de um novo ramo ter sido\n"
-"    criado. Se nenhuma das cabeças de ramo for uma cabeça verdadeira,\n"
-"    o ramo é considerado inativo.\n"
-"\n"
 "    Se -c/--closed for especificado, mostra também cabeças de ramos\n"
 "    marcados como fechados (veja hg commit --close-branch).\n"
 "\n"
 "    Se REVINICIAL for especificada, serão mostradas apenas cabeças\n"
 "    (ou cabeças de ramo) descendentes de REVINICIAL.\n"
-"    "
-
-msgid "you must specify a branch to use --closed"
-msgstr "você deve especificar um ramo para usar --closed"
-
-#, python-format
-msgid "no open branch heads on branch %s\n"
-msgstr "nenhuma cabeça de ramo aberta no ramo %s\n"
-
-#, python-format
-msgid "no changes on branch %s containing %s are reachable from %s\n"
-msgstr "nenhuma mudança no ramo %s contendo %s pode ser alcançada a partir de %s\n"
-
-#, python-format
-msgid "no changes on branch %s are reachable from %s\n"
-msgstr "nenhuma mudança no ramo %s pode ser alcançada a partir de %s\n"
+"\n"
+"    Se -t/--topo for especificado, ramos nomeados serão ignorados e apenas\n"
+"    revisões sem filhas serão mostradas.\n"
+"    "
+
+#, python-format
+msgid "no open branch heads found on branches %s"
+msgstr "nenhuma cabeça de ramo aberta encontrada nos ramos %s"
+
+#, python-format
+msgid " (started at %s)"
+msgstr " (iniciado em %s)"
 
 msgid ""
 "show help for a given topic or a help overview\n"
@@ -8298,6 +7457,14 @@
 msgid "(no help text available)"
 msgstr "(texto de ajuda não disponível)"
 
+#, python-format
+msgid ""
+"\n"
+"use \"hg -v help %s\" to show verbose help\n"
+msgstr ""
+"\n"
+"use \"hg -v help %s\" para mostrar ajuda verbosa\n"
+
 msgid "options:\n"
 msgstr "opções:\n"
 
@@ -8315,6 +7482,13 @@
 "extensão %s - %s\n"
 "\n"
 
+msgid "use \"hg help extensions\" for information on enabling extensions\n"
+msgstr "use \"hg help extensions\" para informações sobre como habilitar extensões\n"
+
+#, python-format
+msgid "'%s' is provided by the following extension:"
+msgstr "'%s' é fornecido pela seguinte extensão:"
+
 msgid "Mercurial Distributed SCM\n"
 msgstr "Sistema de controle de versão distribuído Mercurial\n"
 
@@ -8441,11 +7615,8 @@
 "    para -d/--date.\n"
 "    "
 
-msgid "applying patch from stdin\n"
-msgstr "aplicando patch da entrada padrão\n"
-
-msgid "no diffs found"
-msgstr "nenhum diff encontrado"
+msgid "to working directory"
+msgstr "para o diretório de trabalho"
 
 msgid "not a Mercurial patch"
 msgstr "não é um patch do Mercurial"
@@ -8453,6 +7624,16 @@
 msgid "patch is damaged or loses information"
 msgstr "o patch está danificado ou perde informação"
 
+msgid "applying patch from stdin\n"
+msgstr "aplicando patch da entrada padrão\n"
+
+#, python-format
+msgid "applied %s\n"
+msgstr "aplicado %s\n"
+
+msgid "no diffs found"
+msgstr "nenhum diff encontrado"
+
 msgid ""
 "show new changesets found in source\n"
 "\n"
@@ -8660,14 +7841,20 @@
 "    "
 
 #, python-format
-msgid "branch '%s' has %d heads - please merge with an explicit rev"
-msgstr "o ramo '%s' tem %d cabeças - por favor mescle com uma revisão específica"
-
-#, python-format
-msgid "branch '%s' has one head - please merge with an explicit rev"
-msgstr ""
-"o ramo '%s' tem apenas uma cabeça - por favor mescle com uma revisão "
-"específica"
+msgid "abort: branch '%s' has %d heads - please merge with an explicit rev\n"
+msgstr "abortado: o ramo '%s' tem %d cabeças - por favor mescle com uma revisão específica\n"
+
+msgid "(run 'hg heads .' to see heads)\n"
+msgstr "(execute 'hg heads .' para ver as cabeças)\n"
+
+#, python-format
+msgid "abort: branch '%s' has one head - please merge with an explicit rev\n"
+msgstr ""
+"abortado: o ramo '%s' tem apenas uma cabeça - por favor mescle com uma "
+"revisão específica\n"
+
+msgid "(run 'hg heads' to see all heads)\n"
+msgstr "(execute 'hg heads' para ver todas as cabeças)\n"
 
 msgid "there is nothing to merge"
 msgstr "não há nada para mesclar"
@@ -8684,18 +7871,18 @@
 "com uma revisão explícita"
 
 msgid ""
-"show changesets not found in destination\n"
+"show changesets not found in the destination\n"
 "\n"
 "    Show changesets not found in the specified destination repository\n"
 "    or the default push location. These are the changesets that would\n"
 "    be pushed if a push was requested.\n"
 "\n"
-"    See pull for valid destination format details.\n"
+"    See pull for details of valid destination formats.\n"
 "    "
 msgstr ""
 "mostra revisões não encontradas no destino\n"
 "\n"
-"    Mostra revisões não encontrados no repositório de destino\n"
+"    Mostra revisões não encontradas no repositório de destino\n"
 "    especificado ou na localização padrão de push. Estas são as\n"
 "    revisões que seriam enviadas se um push fosse pedido.\n"
 "\n"
@@ -8805,7 +7992,7 @@
 msgid ""
 "push changes to the specified destination\n"
 "\n"
-"    Push changes from the local repository to the given destination.\n"
+"    Push changes from the local repository to the specified destination.\n"
 "\n"
 "    This is the symmetrical operation for pull. It moves changes from\n"
 "    the current repository to a different one. If the destination is\n"
@@ -8825,7 +8012,7 @@
 msgstr ""
 "envia mudanças para o destino especificado\n"
 "\n"
-"    Envia mudanças do repositório local para o destino dado.\n"
+"    Envia mudanças do repositório local para o destino especificado.\n"
 "\n"
 "    Esta é a operação simétrica à pull. Ela copia mudanças do\n"
 "    repositório atual para um outro. Se o destino for local, esta\n"
@@ -9039,8 +8226,8 @@
 "    to the contents they had in the parent of the working directory.\n"
 "    This restores the contents of the affected files to an unmodified\n"
 "    state and unschedules adds, removes, copies, and renames. If the\n"
-"    working directory has two parents, you must explicitly specify the\n"
-"    revision to revert to.\n"
+"    working directory has two parents, you must explicitly specify a\n"
+"    revision.\n"
 "\n"
 "    Using the -r/--rev option, revert the given files or directories\n"
 "    to their contents as of a specific revision. This can be helpful\n"
@@ -9148,7 +8335,7 @@
 "    - commit\n"
 "    - import\n"
 "    - pull\n"
-"    - push (with this repository as destination)\n"
+"    - push (with this repository as the destination)\n"
 "    - unbundle\n"
 "\n"
 "    This command is not intended for use on public repositories. Once\n"
@@ -9240,7 +8427,8 @@
 "\n"
 "    If one revision is given, it is used as the base revision.\n"
 "    If two revisions are given, the differences between them are\n"
-"    shown.\n"
+"    shown. The --change option can also be used as a shortcut to list\n"
+"    the changed files of a revision from its first parent.\n"
 "\n"
 "    The codes used to show the status of files are::\n"
 "\n"
@@ -9276,6 +8464,8 @@
 "\n"
 "    Se uma revisão for dada, será usada como revisão base. Se duas\n"
 "    revisões forem dadas, serão mostradas as diferenças entre elas.\n"
+"    A opção --change pode ser usada como atalho para listar os\n"
+"    arquivos de uma revisão com mudanças em relação a seu primeiro pai.\n"
 "\n"
 "    Os códigos usados para exibir o estado dos arquivos são::\n"
 "\n"
@@ -9441,10 +8631,6 @@
 msgid "tag names must be unique"
 msgstr "nomes de etiqueta devem ser únicos"
 
-#, python-format
-msgid "the name '%s' is reserved"
-msgstr "o nome '%s' é reservado"
-
 msgid "--rev and --remove are incompatible"
 msgstr "--rev e --remove são incompatíveis"
 
@@ -9720,8 +8906,8 @@
 msgid "treat all files as text"
 msgstr "trata todos os arquivos como texto"
 
-msgid "don't include dates in diff headers"
-msgstr "não inclui datas nos cabeçalhos de diff"
+msgid "omit dates from diff headers"
+msgstr "omite datas dos cabeçalhos de diff"
 
 msgid "show which function each change is in"
 msgstr "mostra em qual função está cada mudança"
@@ -9753,12 +8939,18 @@
 msgid "annotate the specified revision"
 msgstr "faz um annotate da revisão especificada"
 
-msgid "follow file copies and renames"
-msgstr "segue cópias e renomeações"
+msgid "follow copies and renames (DEPRECATED)"
+msgstr "segue cópias e renomeações (OBSOLETA)"
+
+msgid "don't follow copies and renames"
+msgstr "não segue cópias e renomeações"
 
 msgid "list the author (long with -v)"
 msgstr "lista o autor (formato longo com -v)"
 
+msgid "list the filename"
+msgstr "lista o nome de arquivo"
+
 msgid "list the date (short with -q)"
 msgstr "lista a data (formato curto com -q)"
 
@@ -9840,14 +9032,17 @@
 msgid "[-ac]"
 msgstr "[-ac]"
 
-msgid "run even when remote repository is unrelated"
-msgstr "execute mesmo se o repositório remoto não for relacionado"
-
-msgid "a changeset up to which you would like to bundle"
-msgstr "uma revisão até a qual você gostaria de armazenar no bundle"
-
-msgid "a base changeset to specify instead of a destination"
-msgstr "uma revisão base a ser especificada ao invés de um destino"
+msgid "run even when the destination is unrelated"
+msgstr "execute mesmo se o destino não for relacionado"
+
+msgid "a changeset intended to be added to the destination"
+msgstr "uma revisão que deve ser adicionada ao destino"
+
+msgid "a specific branch you would like to bundle"
+msgstr "um ramo específico que você gostaria de incluir no bundle"
+
+msgid "a base changeset assumed to be available at the destination"
+msgstr "uma revisão base que se assume estar presente no destino"
 
 msgid "bundle all changesets in the repository"
 msgstr "cria um bundle com todas as revisões no repositório"
@@ -9870,14 +9065,17 @@
 msgid "[OPTION]... FILE..."
 msgstr "[OPÇÃO]... ARQUIVO..."
 
-msgid "the clone will only contain a repository (no working copy)"
-msgstr "o clone irá conter apenas um repositório (sem cópia de trabalho)"
+msgid "the clone will include an empty working copy (only a repository)"
+msgstr "o clone irá conter uma cópia de trabalho vazia (apenas o repositório)"
 
 msgid "revision, tag or branch to check out"
 msgstr "revisão, etiqueta ou ramo a ser obtido"
 
-msgid "clone only the specified revisions and ancestors"
-msgstr "clona apenas as revisões especificadas e seus ancestrais"
+msgid "include the specified changeset"
+msgstr "inclui a revisão especificada"
+
+msgid "clone only the specified branch"
+msgstr "clona apenas o ramo especificado"
 
 msgid "[OPTION]... SOURCE [DEST]"
 msgstr "[OPÇÃO]... ORIGEM [DEST]"
@@ -9956,6 +9154,9 @@
 msgid "diff against the second parent"
 msgstr "faz o diff com o segundo pai"
 
+msgid "revisions to export"
+msgstr "revisões a serem exportadas"
+
 msgid "[OPTION]... [-o OUTFILESPEC] REV..."
 msgstr "[OPÇÃO]... [-o PADRÃOARQSAÍDA] REV..."
 
@@ -9988,8 +9189,11 @@
 msgid "show only heads which are descendants of REV"
 msgstr "mostra apenas cabeças descendentes de REV"
 
-msgid "show only the active branch heads from open branches"
-msgstr "mostra apenas as cabeças de ramo ativas de ramos abertos"
+msgid "show topological heads only"
+msgstr "mostra apenas cabeças topológicas"
+
+msgid "show active branchheads only [DEPRECATED]"
+msgstr "mostra apenas cabeças de ramo ativas [OBSOLETA]"
 
 msgid "show normal and closed branch heads"
 msgstr "mostra cabeças de ramo normais e fechadas"
@@ -10043,14 +9247,20 @@
 msgid "[OPTION]... PATCH..."
 msgstr "[OPÇÃO]... PATCH..."
 
+msgid "run even if remote repository is unrelated"
+msgstr "execute mesmo se o repositório remoto não for relacionado"
+
 msgid "show newest record first"
 msgstr "mostra registros mais novos primeiro"
 
 msgid "file to store the bundles into"
 msgstr "arquivo no qual armazenar os bundles"
 
-msgid "a specific remote revision up to which you would like to pull"
-msgstr "uma revisão remota específica até a qual você gostaria de trazer"
+msgid "a remote changeset intended to be added"
+msgstr "uma revisão remota que se deva adicionar"
+
+msgid "a specific branch you would like to pull"
+msgstr "um ramo específico que você gostaria de trazer"
 
 msgid "[-p] [-n] [-M] [-f] [-r REV]... [--bundle FILENAME] [SOURCE]"
 msgstr "[-p] [-n] [-M] [-f] [-r REV]... [--bundle ARQUIVO] [ORIGEM]"
@@ -10058,7 +9268,7 @@
 msgid "[-e CMD] [--remotecmd CMD] [DEST]"
 msgstr "[-e CMD] [--remotecmd CMD] [DEST]"
 
-msgid "search the repository as it stood at REV"
+msgid "search the repository as it is in REV"
 msgstr "procura no repositório como se estivesse em REV"
 
 msgid "end filenames with NUL, for use with xargs"
@@ -10118,13 +9328,16 @@
 msgid "[-P] [-f] [[-r] REV]"
 msgstr "[-P] [-f] [[-r] REV]"
 
-msgid "a specific revision up to which you would like to push"
-msgstr "uma revisão específica até a qual você gostaria de enviar"
+msgid "a changeset intended to be included in the destination"
+msgstr "uma revisão que se deva incluir no destino"
+
+msgid "a specific branch you would like to push"
+msgstr "um ramo específico que você gostaria de enviar"
 
 msgid "[-M] [-p] [-n] [-f] [-r REV]... [DEST]"
 msgstr "[-M] [-p] [-n] [-f] [-r REV]... [DEST]"
 
-msgid "show parents from the specified revision"
+msgid "show parents of the specified revision"
 msgstr "mostra pais da revisão especificada"
 
 msgid "[-r REV] [FILE]"
@@ -10136,6 +9349,9 @@
 msgid "update to new branch head if changesets were pulled"
 msgstr "atualiza para nova cabeça de ramo se revisões forem trazidas"
 
+msgid "run even when remote repository is unrelated"
+msgstr "execute mesmo se o repositório remoto não for relacionado"
+
 msgid "[-u] [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [SOURCE]"
 msgstr "[-u] [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [ORIGEM]"
 
@@ -10178,8 +9394,8 @@
 msgid "tipmost revision matching date"
 msgstr "revisão mais recente que casa com a data"
 
-msgid "revision to revert to"
-msgstr "revisão para a qual reverter"
+msgid "revert to the specified revision"
+msgstr "reverte para a revisão especificada"
 
 msgid "do not save backup copies of files"
 msgstr "não grava backups de arquivos"
@@ -10264,6 +9480,9 @@
 msgid "show difference from revision"
 msgstr "mostra diferença a partir da revisão"
 
+msgid "list the changed files of a revision"
+msgstr "lista os arquivos modificados por uma revisão"
+
 msgid "replace existing tag"
 msgstr "substitui etiqueta existente"
 
@@ -10458,6 +9677,16 @@
 msgstr "nenhuma definição para o apelido '%s'\n"
 
 #, python-format
+msgid ""
+"alias for: hg %s\n"
+"\n"
+"%s"
+msgstr ""
+"apelido para: hg %s\n"
+"\n"
+"%s"
+
+#, python-format
 msgid "alias '%s' resolves to unknown command '%s'\n"
 msgstr "apelido '%s' indica comando desconhecido '%s'\n"
 
@@ -10613,6 +9842,1105 @@
 msgid "Using additional features"
 msgstr "Usando funcionalidades adicionais"
 
+msgid ""
+"Mercurial reads configuration data from several files, if they exist.\n"
+"Below we list the most specific file first.\n"
+"\n"
+"On Windows, these configuration files are read:\n"
+"\n"
+"- ``<repo>\\.hg\\hgrc``\n"
+"- ``%USERPROFILE%\\.hgrc``\n"
+"- ``%USERPROFILE%\\Mercurial.ini``\n"
+"- ``%HOME%\\.hgrc``\n"
+"- ``%HOME%\\Mercurial.ini``\n"
+"- ``C:\\Mercurial\\Mercurial.ini``\n"
+"- ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial``\n"
+"- ``<install-dir>\\Mercurial.ini``\n"
+"\n"
+"On Unix, these files are read:\n"
+"\n"
+"- ``<repo>/.hg/hgrc``\n"
+"- ``$HOME/.hgrc``\n"
+"- ``/etc/mercurial/hgrc``\n"
+"- ``/etc/mercurial/hgrc.d/*.rc``\n"
+"- ``<install-root>/etc/mercurial/hgrc``\n"
+"- ``<install-root>/etc/mercurial/hgrc.d/*.rc``\n"
+"\n"
+"The configuration files for Mercurial use a simple ini-file format. A\n"
+"configuration file consists of sections, led by a ``[section]`` header\n"
+"and followed by ``name = value`` entries::\n"
+"\n"
+"  [ui]\n"
+"  username = Firstname Lastname <firstname.lastname@example.net>\n"
+"  verbose = True\n"
+"\n"
+"This above entries will be referred to as ``ui.username`` and\n"
+"``ui.verbose``, respectively. Please see the hgrc man page for a full\n"
+"description of the possible configuration values:\n"
+"\n"
+"- on Unix-like systems: ``man hgrc``\n"
+"- online: http://www.selenic.com/mercurial/hgrc.5.html\n"
+msgstr ""
+"O Mercurial lê dados de configuração de váris arquivos, se existirem.\n"
+"Abaixo listamos os arquivos mais específicos primeiro.\n"
+"\n"
+"No Windows, estes arquivos de configuração são lidos:\n"
+"\n"
+"- ``<repo>\\.hg\\hgrc``\n"
+"- ``%USERPROFILE%\\.hgrc``\n"
+"- ``%USERPROFILE%\\Mercurial.ini``\n"
+"- ``%HOME%\\.hgrc``\n"
+"- ``%HOME%\\Mercurial.ini``\n"
+"- ``C:\\Mercurial\\Mercurial.ini``\n"
+"- ``HKEY_LOCAL_MACHINE\\SOFTWARE\\Mercurial``\n"
+"- ``<install-dir>\\Mercurial.ini``\n"
+"\n"
+"No Unix, estes arquivos são lidos:\n"
+"\n"
+"- ``<repo>/.hg/hgrc``\n"
+"- ``$HOME/.hgrc``\n"
+"- ``/etc/mercurial/hgrc``\n"
+"- ``/etc/mercurial/hgrc.d/*.rc``\n"
+"- ``<install-root>/etc/mercurial/hgrc``\n"
+"- ``<install-root>/etc/mercurial/hgrc.d/*.rc``\n"
+"\n"
+"Os arquivos de configuração do Mercurial usam um simples formato ini.\n"
+"Um arquivo de configuração consiste de seções iniciadas por um\n"
+"cabeçalho ``[seção]`` seguidas por entradas ``nome = valor``::\n"
+"\n"
+"  [ui]\n"
+"  username = Primeironome Sobrenome <primeironome.sobrenome@exemplo.net>\n"
+"  verbose = True\n"
+"\n"
+"As entradas acima são referidas como ``ui.username`` e\n"
+"``ui.verbose``, respectivamente. Por favor veja a página de manual hgrc\n"
+"para uma descrição completa dos possíveis valores de configuração:\n"
+"\n"
+"- em sistemas semelhantes ao Unix: ``man hgrc``\n"
+"- na Internet: http://www.selenic.com/mercurial/hgrc.5.html\n"
+
+msgid ""
+"Some commands allow the user to specify a date, e.g.:\n"
+"\n"
+"- backout, commit, import, tag: Specify the commit date.\n"
+"- log, revert, update: Select revision(s) by date.\n"
+"\n"
+"Many date formats are valid. Here are some examples:\n"
+"\n"
+"- ``Wed Dec 6 13:18:29 2006`` (local timezone assumed)\n"
+"- ``Dec 6 13:18 -0600`` (year assumed, time offset provided)\n"
+"- ``Dec 6 13:18 UTC`` (UTC and GMT are aliases for +0000)\n"
+"- ``Dec 6`` (midnight)\n"
+"- ``13:18`` (today assumed)\n"
+"- ``3:39`` (3:39AM assumed)\n"
+"- ``3:39pm`` (15:39)\n"
+"- ``2006-12-06 13:18:29`` (ISO 8601 format)\n"
+"- ``2006-12-6 13:18``\n"
+"- ``2006-12-6``\n"
+"- ``12-6``\n"
+"- ``12/6``\n"
+"- ``12/6/6`` (Dec 6 2006)\n"
+"\n"
+"Lastly, there is Mercurial's internal format:\n"
+"\n"
+"- ``1165432709 0`` (Wed Dec 6 13:18:29 2006 UTC)\n"
+"\n"
+"This is the internal representation format for dates. unixtime is the\n"
+"number of seconds since the epoch (1970-01-01 00:00 UTC). offset is\n"
+"the offset of the local timezone, in seconds west of UTC (negative if\n"
+"the timezone is east of UTC).\n"
+"\n"
+"The log command also accepts date ranges:\n"
+"\n"
+"- ``<{datetime}`` - at or before a given date/time\n"
+"- ``>{datetime}`` - on or after a given date/time\n"
+"- ``{datetime} to {datetime}`` - a date range, inclusive\n"
+"- ``-{days}`` - within a given number of days of today\n"
+msgstr ""
+"Alguns comandos permitem ao usuário especificar uma data, como:\n"
+"\n"
+"- backout, commit, import, tag: Especificar a data de consolidação.\n"
+"- log, revert, update: Selecionar revisões por data.\n"
+"\n"
+"Muitos formatos de data são válidos. Eis alguns exemplos:\n"
+"\n"
+"- ``Wed Dec 6 13:18:29 2006`` (assumido fuso horário local)\n"
+"- ``Dec 6 13:18 -0600`` (ano atual, defasagem de horário local fornecida)\n"
+"- ``Dec 6 13:18 UTC`` (UTC e GMT são apelidos para +0000)\n"
+"- ``Dec 6`` (meia noite)\n"
+"- ``13:18`` (data corrente assumida)\n"
+"- ``3:39`` (hora assumida 3:39AM)\n"
+"- ``3:39pm`` (15:39)\n"
+"- ``2006-12-06 13:18:29`` (formato ISO 8601)\n"
+"- ``2006-12-6 13:18``\n"
+"- ``2006-12-6``\n"
+"- ``12-6``\n"
+"- ``12/6``\n"
+"- ``12/6/6`` (Dec 6 2006)\n"
+"\n"
+"E por fim, há um formato interno do Mercurial:\n"
+"\n"
+"- ``1165432709 0`` (Wed Dec 6 13:18:29 2006 UTC)\n"
+"\n"
+"Este é o formato interno de representação de datas. unixtime é\n"
+"o número de segundos desde a epoch (1970-01-01 00:00 UTC). offset\n"
+"é a defasagem do fuso horário local, em segundos a oeste de UTC\n"
+"(negativo para fusos horários a leste de UTC).\n"
+"\n"
+"O comando log também aceita intervalos de data:\n"
+"\n"
+"- ``<{date}`` - na data fornecida, ou anterior\n"
+"- ``>{date}`` - na data fornecida, ou posterior\n"
+"- ``{date} to {date}`` - um intervalo de data, incluindo os extremos\n"
+"- ``-{days}`` - dentro de um certo número de dias contados de hoje\n"
+
+msgid ""
+"Mercurial's default format for showing changes between two versions of\n"
+"a file is compatible with the unified format of GNU diff, which can be\n"
+"used by GNU patch and many other standard tools.\n"
+"\n"
+"While this standard format is often enough, it does not encode the\n"
+"following information:\n"
+"\n"
+"- executable status and other permission bits\n"
+"- copy or rename information\n"
+"- changes in binary files\n"
+"- creation or deletion of empty files\n"
+"\n"
+"Mercurial also supports the extended diff format from the git VCS\n"
+"which addresses these limitations. The git diff format is not produced\n"
+"by default because a few widespread tools still do not understand this\n"
+"format.\n"
+"\n"
+"This means that when generating diffs from a Mercurial repository\n"
+"(e.g. with \"hg export\"), you should be careful about things like file\n"
+"copies and renames or other things mentioned above, because when\n"
+"applying a standard diff to a different repository, this extra\n"
+"information is lost. Mercurial's internal operations (like push and\n"
+"pull) are not affected by this, because they use an internal binary\n"
+"format for communicating changes.\n"
+"\n"
+"To make Mercurial produce the git extended diff format, use the --git\n"
+"option available for many commands, or set 'git = True' in the [diff]\n"
+"section of your hgrc. You do not need to set this option when\n"
+"importing diffs in this format or using them in the mq extension.\n"
+msgstr ""
+"O formato padrão do Mercurial para exibir mudanças entre duas\n"
+"versões de um arquivo é compatível com o formato unified do GNU\n"
+"diff, que pode ser usado pelo GNU patch e muitos outros\n"
+"utilitários padrão.\n"
+"\n"
+"Apesar de esse formato padrão ser muitas vezes suficiente, ele\n"
+"não codifica as seguintes informações:\n"
+"\n"
+"- bits de execução e permissão\n"
+"- informação de cópia ou renomeação\n"
+"- mudanças em arquivos binários\n"
+"- criação ou remoção de arquivos vazios\n"
+"\n"
+"O Mercurial também suporta o formato diff estendido do VCS git\n"
+"que trata dessas limitações. O formato git diff não é\n"
+"produzido por padrão porque há muito poucas ferramentas que\n"
+"entendem esse formato.\n"
+"\n"
+"Isso quer dizer que ao gerar diffs de um repositório do Mercurial\n"
+"(por exemplo, com \"hg export\"), você deve tomar cuidado com por\n"
+"exemplo cópias e renomeações de arquivos ou outras coisas\n"
+"mencionadas acima, porque essa informação extra é perdida ao\n"
+"aplicar um diff padrão em um outro repositório. As operações\n"
+"internas do Mercurial (como push e pull) não são afetadas por\n"
+"isso, porque usam um formato binário interno para comunicar\n"
+"mudanças.\n"
+"\n"
+"Para fazer com que o Mercurial produza o formato estendido git\n"
+"diff, use a opção --git disponível para vários comandos, ou\n"
+"defina 'git = True' na seção [diff] de seu hgrc. Você não precisa\n"
+"definir essa opção para importar diffs nesse formato, nem para\n"
+"usá-lo com a extensão mq.\n"
+
+msgid ""
+"HG\n"
+"    Path to the 'hg' executable, automatically passed when running\n"
+"    hooks, extensions or external tools. If unset or empty, this is\n"
+"    the hg executable's name if it's frozen, or an executable named\n"
+"    'hg' (with %PATHEXT% [defaulting to COM/EXE/BAT/CMD] extensions on\n"
+"    Windows) is searched.\n"
+"\n"
+"HGEDITOR\n"
+"    This is the name of the editor to run when committing. See EDITOR.\n"
+"\n"
+"    (deprecated, use .hgrc)\n"
+"\n"
+"HGENCODING\n"
+"    This overrides the default locale setting detected by Mercurial.\n"
+"    This setting is used to convert data including usernames,\n"
+"    changeset descriptions, tag names, and branches. This setting can\n"
+"    be overridden with the --encoding command-line option.\n"
+"\n"
+"HGENCODINGMODE\n"
+"    This sets Mercurial's behavior for handling unknown characters\n"
+"    while transcoding user input. The default is \"strict\", which\n"
+"    causes Mercurial to abort if it can't map a character. Other\n"
+"    settings include \"replace\", which replaces unknown characters, and\n"
+"    \"ignore\", which drops them. This setting can be overridden with\n"
+"    the --encodingmode command-line option.\n"
+"\n"
+"HGMERGE\n"
+"    An executable to use for resolving merge conflicts. The program\n"
+"    will be executed with three arguments: local file, remote file,\n"
+"    ancestor file.\n"
+"\n"
+"    (deprecated, use .hgrc)\n"
+"\n"
+"HGRCPATH\n"
+"    A list of files or directories to search for hgrc files. Item\n"
+"    separator is \":\" on Unix, \";\" on Windows. If HGRCPATH is not set,\n"
+"    platform default search path is used. If empty, only the .hg/hgrc\n"
+"    from the current repository is read.\n"
+"\n"
+"    For each element in HGRCPATH:\n"
+"\n"
+"    - if it's a directory, all files ending with .rc are added\n"
+"    - otherwise, the file itself will be added\n"
+"\n"
+"HGPLAIN\n"
+"    When set, this disables any options in .hgrc that might change\n"
+"    Mercurial's default output. This includes encoding, defaults,\n"
+"    verbose mode, debug mode, quiet mode, tracebacks, and\n"
+"    localization. This can be useful when scripting against Mercurial\n"
+"    in the face of existing user configuration.\n"
+"\n"
+"    Equivalent options set via command line flags or environment\n"
+"    variables are not overridden.\n"
+"\n"
+"HGUSER\n"
+"    This is the string used as the author of a commit. If not set,\n"
+"    available values will be considered in this order:\n"
+"\n"
+"    - HGUSER (deprecated)\n"
+"    - hgrc files from the HGRCPATH\n"
+"    - EMAIL\n"
+"    - interactive prompt\n"
+"    - LOGNAME (with ``@hostname`` appended)\n"
+"\n"
+"    (deprecated, use .hgrc)\n"
+"\n"
+"EMAIL\n"
+"    May be used as the author of a commit; see HGUSER.\n"
+"\n"
+"LOGNAME\n"
+"    May be used as the author of a commit; see HGUSER.\n"
+"\n"
+"VISUAL\n"
+"    This is the name of the editor to use when committing. See EDITOR.\n"
+"\n"
+"EDITOR\n"
+"    Sometimes Mercurial needs to open a text file in an editor for a\n"
+"    user to modify, for example when writing commit messages. The\n"
+"    editor it uses is determined by looking at the environment\n"
+"    variables HGEDITOR, VISUAL and EDITOR, in that order. The first\n"
+"    non-empty one is chosen. If all of them are empty, the editor\n"
+"    defaults to 'vi'.\n"
+"\n"
+"PYTHONPATH\n"
+"    This is used by Python to find imported modules and may need to be\n"
+"    set appropriately if this Mercurial is not installed system-wide.\n"
+msgstr ""
+"HG\n"
+"    Caminho para o executável 'hg', automaticamente passado na\n"
+"    execução de ganchos, extensões ou ferramentas externas. Se não\n"
+"    definido ou vazio, um executável chamado 'hg' (com a extensão\n"
+"    com/exe/bat/cmd no Windows) é procurado.\n"
+"\n"
+"HGEDITOR\n"
+"    Este é o nome do editor usado em consolidações. Veja EDITOR.\n"
+"\n"
+"    (obsoleto, use .hgrc)\n"
+"\n"
+"HGENCODING\n"
+"    É usado no lugar da configuração padrão de locale detectada\n"
+"    pelo Mercurial. Essa configuração é usada para converter dados\n"
+"    como nomes de usuário, descrições de revisões, nomes de\n"
+"    etiqueta e ramos. Essa configuração pode ser sobreposta com a\n"
+"    opção --encoding na linha de comando.\n"
+"\n"
+"HGENCODINGMODE\n"
+"    Essa configuração ajusta o comportamento do Mercurial no\n"
+"    tratamento de caracteres desconhecidos, ao codificar entradas do\n"
+"    usuário. O padrão é \"strict\", o que faz com que o Mercurial\n"
+"    aborte se ele não puder traduzir um caractere. Outros valores\n"
+"    incluem \"replace\", que substitui caracteres desconhecidos, e\n"
+"    \"ignore\", que os descarta. Essa configuração pode ser\n"
+"    sobreposta com a opção --encodingmode na linha de comando.\n"
+"\n"
+"HGMERGE\n"
+"    Um executável a ser usado para solucionar conflitos de mesclagem.\n"
+"    O programa será executado com três argumentos: arquivo local,\n"
+"    arquivo remoto, arquivo ancestral.\n"
+"\n"
+"    (obsoleta, use .hgrc)\n"
+"\n"
+"HGRCPATH\n"
+"    Uma lista de arquivos ou diretórios onde procurar arquivos hgrc.\n"
+"    O separador de itens é \":\" em Unix, \";\" no Windows. Se\n"
+"    HGRCPATH não estiver definido, o caminho de busca padrão da\n"
+"    plataforma será usado. Se vazio, será lido apenas .hg/hgrc no\n"
+"    repositório atual.\n"
+"\n"
+"    Para cada elemento em HGRCPATH:\n"
+"\n"
+"    - se for um diretório, todos os arquivos nesse diretório\n"
+"      terminados por \".rc\" serão adicionados\n"
+"    - caso contrário, o próprio arquivo será adicionado\n"
+"\n"
+"HGPLAIN\n"
+"    Se definido, desabilita qualquer opção em .hgrc que possa mudar\n"
+"    a saída padrão do Mercurial. Isto inclui codificação, seção defaults,\n"
+"    modo verboso, modo debug, modo silencioso, adições de tracebacks\n"
+"    e localização. Isto pode ser útil para a inclusão do Mercurial em\n"
+"    scipts para compensar mudanças de configuração feitas pelo usuário.\n"
+"\n"
+"    Opções equivalentes definidas pela linha de comando ou variáveis de\n"
+"    ambiente não serão sobrepostas.\n"
+"\n"
+"HGUSER\n"
+"    Esta é a string usada para o autor de uma consolidação.\n"
+"    Se não for definida, valores disponíveis serão considerados na\n"
+"    seguinte ordem:\n"
+"\n"
+"    - HGUSER (obsoleto)\n"
+"    - arquivos hgrc no HGRCPATH\n"
+"    - EMAIL\n"
+"    - consulta interativa\n"
+"    - LOGNAME (com ``@hostname`` anexado)\n"
+"\n"
+"    (obsoleto, use .hgrc)\n"
+"\n"
+"EMAIL\n"
+"    Pode ser usado como autor de consolidações; veja HGUSER.\n"
+"\n"
+"LOGNAME\n"
+"    Pode ser usado como autor de consolidações; veja HGUSER.\n"
+"\n"
+"VISUAL\n"
+"    Este é o nome do editor a ser usado em consolidações. Veja\n"
+"    EDITOR.\n"
+"\n"
+"EDITOR\n"
+"    Algumas vezes o Mercurial precisa abrir em um editor um arquivo\n"
+"    texto para ser modificado por um usuário, por exemplo ao escrever\n"
+"    mensagens de consolidação. O editor usado é determinado pela\n"
+"    consulta às variáveis de ambiente HGEDITOR, VISUAL e EDITOR,\n"
+"    nessa ordem. O primeiro valor não vazio é escolhido. Se todos\n"
+"    estiverem vazios, o editor será o 'vi'.\n"
+"\n"
+"PYTHONPATH\n"
+"    Isto é usado pelo Python para localizar módulos importados, e\n"
+"    pode precisar ser ajustado apropriadamente se o Mercurial não\n"
+"    estiver instalado para o sistema todo.\n"
+
+msgid ""
+"Mercurial has the ability to add new features through the use of\n"
+"extensions. Extensions may add new commands, add options to\n"
+"existing commands, change the default behavior of commands, or\n"
+"implement hooks.\n"
+"\n"
+"Extensions are not loaded by default for a variety of reasons:\n"
+"they can increase startup overhead; they may be meant for advanced\n"
+"usage only; they may provide potentially dangerous abilities (such\n"
+"as letting you destroy or modify history); they might not be ready\n"
+"for prime time; or they may alter some usual behaviors of stock\n"
+"Mercurial. It is thus up to the user to activate extensions as\n"
+"needed.\n"
+"\n"
+"To enable the \"foo\" extension, either shipped with Mercurial or in\n"
+"the Python search path, create an entry for it in your hgrc, like\n"
+"this::\n"
+"\n"
+"  [extensions]\n"
+"  foo =\n"
+"\n"
+"You may also specify the full path to an extension::\n"
+"\n"
+"  [extensions]\n"
+"  myfeature = ~/.hgext/myfeature.py\n"
+"\n"
+"To explicitly disable an extension enabled in an hgrc of broader\n"
+"scope, prepend its path with !::\n"
+"\n"
+"  [extensions]\n"
+"  # disabling extension bar residing in /path/to/extension/bar.py\n"
+"  bar = !/path/to/extension/bar.py\n"
+"  # ditto, but no path was supplied for extension baz\n"
+"  baz = !\n"
+msgstr ""
+"O Mercurial possui um mecanismo para adicionar novas\n"
+"funcionalidades através do uso de extensões. Extensões podem\n"
+"adicionar novos comandos, adicionar novas opções a comandos\n"
+"existentes ou implementar ganchos.\n"
+"\n"
+"Extensões não são carregadas por padrão por diversas razões:\n"
+"elas podem aumentar o tempo de início ou execução; podem ser\n"
+"destinadas apenas a uso avançado; podem fornecer funcionalidade\n"
+"potencialmente perigosa (por exemplo, modificar ou destruir o\n"
+"histórico); podem ainda não estar prontas para uso geral; ou\n"
+"podem alterar o comportamento padrão do Mercurial. Cabe ao\n"
+"usuário ativar extensões como desejar.\n"
+"\n"
+"Para habilitar a extensão \"foo\", tanto se for distribuída com\n"
+"o Mercurial como estiver no caminho de busca do Python, crie uma\n"
+"entrada para ela em seu hgrc, da seguinte forma::\n"
+"\n"
+"  [extensions]\n"
+"  foo =\n"
+"\n"
+"Você também pode especificar o caminho completo para uma\n"
+"extensão::\n"
+"\n"
+"  [extensions]\n"
+"  myfeature = ~/.hgext/myfeature.py\n"
+"\n"
+"Para desabilitar explicitamente uma extensão habilitada em um\n"
+"hgrc de escopo mais amplo, prefixe seu caminho com !::\n"
+"\n"
+"  [extensions]\n"
+"  # desabilita a extensão bar localizada em\n"
+"  # /caminho/para/extensao/bar.py\n"
+"  bar = !/caminho/para/extensao/bar.py\n"
+"  # o mesmo, se um caminho não foi fornecido para a\n"
+"  # extensão baz\n"
+"  baz = !\n"
+
+msgid ""
+"When Mercurial accepts more than one revision, they may be specified\n"
+"individually, or provided as a topologically continuous range,\n"
+"separated by the \":\" character.\n"
+"\n"
+"The syntax of range notation is [BEGIN]:[END], where BEGIN and END are\n"
+"revision identifiers. Both BEGIN and END are optional. If BEGIN is not\n"
+"specified, it defaults to revision number 0. If END is not specified,\n"
+"it defaults to the tip. The range \":\" thus means \"all revisions\".\n"
+"\n"
+"If BEGIN is greater than END, revisions are treated in reverse order.\n"
+"\n"
+"A range acts as a closed interval. This means that a range of 3:5\n"
+"gives 3, 4 and 5. Similarly, a range of 9:6 gives 9, 8, 7, and 6.\n"
+msgstr ""
+"Quando o Mercurial aceita mais de uma revisão, elas podem ser\n"
+"especificadas individualmente, ou fornecidas como uma seqüência\n"
+"topologicamente contínua, separadas pelo caractere \":\".\n"
+"\n"
+"A sintaxe da notação de seqüência é [INÍCIO]:[FIM], onde INÍCIO\n"
+"e FIM são identificadores de revisão. Tanto INÍCIO como FIM são\n"
+"opcionais. Se INÍCIO não for especificado, terá como valor padrão\n"
+"a revisão número 0. Se FIM não for especificado, terá como valor\n"
+"padrão a revisão tip. A seqüência \":\" portanto significa\n"
+"\"todas as revisões\".\n"
+"\n"
+"Se INÍCIO for maior que FIM, as revisões são tratadas na ordem\n"
+"inversa.\n"
+"\n"
+"Uma seqüência age como um intervalo fechado. Isso quer dizer que\n"
+"uma seqüência 3:5 nos dá 3, 4 e 5. De forma semelhante, uma\n"
+"seqüência 4:2 nos dá 4, 3, e 2.\n"
+
+msgid ""
+"Mercurial accepts several notations for identifying one or more files\n"
+"at a time.\n"
+"\n"
+"By default, Mercurial treats filenames as shell-style extended glob\n"
+"patterns.\n"
+"\n"
+"Alternate pattern notations must be specified explicitly.\n"
+"\n"
+"To use a plain path name without any pattern matching, start it with\n"
+"``path:``. These path names must completely match starting at the\n"
+"current repository root.\n"
+"\n"
+"To use an extended glob, start a name with ``glob:``. Globs are rooted\n"
+"at the current directory; a glob such as ``*.c`` will only match files\n"
+"in the current directory ending with ``.c``.\n"
+"\n"
+"The supported glob syntax extensions are ``**`` to match any string\n"
+"across path separators and ``{a,b}`` to mean \"a or b\".\n"
+"\n"
+"To use a Perl/Python regular expression, start a name with ``re:``.\n"
+"Regexp pattern matching is anchored at the root of the repository.\n"
+"\n"
+"Plain examples::\n"
+"\n"
+"  path:foo/bar   a name bar in a directory named foo in the root\n"
+"                 of the repository\n"
+"  path:path:name a file or directory named \"path:name\"\n"
+"\n"
+"Glob examples::\n"
+"\n"
+"  glob:*.c       any name ending in \".c\" in the current directory\n"
+"  *.c            any name ending in \".c\" in the current directory\n"
+"  **.c           any name ending in \".c\" in any subdirectory of the\n"
+"                 current directory including itself.\n"
+"  foo/*.c        any name ending in \".c\" in the directory foo\n"
+"  foo/**.c       any name ending in \".c\" in any subdirectory of foo\n"
+"                 including itself.\n"
+"\n"
+"Regexp examples::\n"
+"\n"
+"  re:.*\\.c$      any name ending in \".c\", anywhere in the repository\n"
+msgstr ""
+"O Mercurial aceita diversas notações para identificar um ou mais\n"
+"arquivos de uma vez.\n"
+"\n"
+"Por padrão, o Mercurial trata nomes de arquivo como padrões\n"
+"estendidos de glob do shell.\n"
+"\n"
+"Notações alternativas de padrões devem ser especificadas\n"
+"explicitamente.\n"
+"\n"
+"Para usar um nome simples de caminho sem qualquer casamento de\n"
+"padrões, comece o nome com ``path:``. Estes nomes de caminho\n"
+"devem bater completamente, a partir da raiz do repositório\n"
+"atual.\n"
+"\n"
+"Para usar um glob estendido, comece um nome com ``glob:``. Globs\n"
+"têm como raiz o diretório corrente; um glob como ``*.c`` baterá\n"
+"apenas com arquivos terminados em ``.c`` no diretório corrente.\n"
+"\n"
+"As sintaxes de extensão do glob suportadas são ``**`` para bater\n"
+"com qualquer string incluindo separadores de caminho, e ``{a,b}``\n"
+"para significar \"a ou b\".\n"
+"\n"
+"Para usar uma expressão regular Perl/Python, comece um nome com\n"
+"``re:``. O casamento de padrões por expressão regular é feito a\n"
+"partir do raiz do repositório.\n"
+"\n"
+"Exemplos de caminhos simples::\n"
+"\n"
+"  path:foo/bar   o nome bar em um diretório chamado foo no raiz do\n"
+"                 repositório\n"
+"  path:path:name um arquivo ou diretório chamado \"path:name\"\n"
+"\n"
+"Exemplos de glob::\n"
+"\n"
+"  glob:*.c       qualquer nome terminado por \".c\" no diretório\n"
+"                 atual\n"
+"  *.c            qualquer nome terminado por \".c\" no diretório\n"
+"                 atual\n"
+"  **.c           qualquer nome terminado por \".c\" no diretório\n"
+"                 atual ou em qualquer subdiretório\n"
+"  foo/*.c        qualquer nome terminado por \".c\" no diretório\n"
+"                 foo\n"
+"  foo/**.c       qualquer nome terminado por \".c\" no diretório\n"
+"                 foo ou em qualquer subdiretório\n"
+"\n"
+"Exemplos de expressão regular::\n"
+"\n"
+"  re:.*\\.c$      qualquer nome terminado por \".c\", em qualquer\n"
+"                  lugar no repositório\n"
+
+msgid ""
+"Mercurial supports several ways to specify individual revisions.\n"
+"\n"
+"A plain integer is treated as a revision number. Negative integers are\n"
+"treated as sequential offsets from the tip, with -1 denoting the tip,\n"
+"-2 denoting the revision prior to the tip, and so forth.\n"
+"\n"
+"A 40-digit hexadecimal string is treated as a unique revision\n"
+"identifier.\n"
+"\n"
+"A hexadecimal string less than 40 characters long is treated as a\n"
+"unique revision identifier and is referred to as a short-form\n"
+"identifier. A short-form identifier is only valid if it is the prefix\n"
+"of exactly one full-length identifier.\n"
+"\n"
+"Any other string is treated as a tag or branch name. A tag name is a\n"
+"symbolic name associated with a revision identifier. A branch name\n"
+"denotes the tipmost revision of that branch. Tag and branch names must\n"
+"not contain the \":\" character.\n"
+"\n"
+"The reserved name \"tip\" is a special tag that always identifies the\n"
+"most recent revision.\n"
+"\n"
+"The reserved name \"null\" indicates the null revision. This is the\n"
+"revision of an empty repository, and the parent of revision 0.\n"
+"\n"
+"The reserved name \".\" indicates the working directory parent. If no\n"
+"working directory is checked out, it is equivalent to null. If an\n"
+"uncommitted merge is in progress, \".\" is the revision of the first\n"
+"parent.\n"
+msgstr ""
+"O Mercurial aceita diversas notações para identificar revisões\n"
+"individuais.\n"
+"\n"
+"Um simples inteiro é tratado como um número de revisão. Inteiros\n"
+"negativos são contados a partir da tip, com -1 denotando a tip,\n"
+"-2 denotando a revisão anterior à tip, e assim por diante.\n"
+"\n"
+"Uma string hexadecimal de 40 dígitos é tratada como um\n"
+"identificador único de revisão.\n"
+"\n"
+"Uma string hexadecimal de menos de 40 caracteres é tratada como\n"
+"um identificador único de revisão, chamado de identificador\n"
+"curto. Um identificador curto é válido apenas se for o prefixo\n"
+"de um identificador completo.\n"
+"\n"
+"Qualquer outra string é tratada como um nome de etiqueta ou\n"
+"ramo. Um nome de etiqueta é um nome simbólico associado a um\n"
+"identificador de revisão. Um nome de ramo denota a revisão mais\n"
+"recente de tal ramo. Nomes de etiqueta ou de ramo não podem\n"
+"conter o caractere \":\".\n"
+"\n"
+"O nome reservado \"tip\" é uma etiqueta especial que sempre\n"
+"identifica a revisão mais recente.\n"
+"\n"
+"O nome reservado \"null\" indica a revisão nula. Essa é a revisão\n"
+"de um repositório vazio, e a revisão pai da revisão 0.\n"
+"\n"
+"O nome reservado \".\" indica a revisão pai do diretório de\n"
+"trabalho. Se nenhum diretório de trabalho estiver selecionado,\n"
+"será equivalente a null. Se uma mesclagem estiver em progresso,\n"
+"\".\" será a revisão do primeiro pai.\n"
+
+msgid ""
+"Mercurial allows you to customize output of commands through\n"
+"templates. You can either pass in a template from the command\n"
+"line, via the --template option, or select an existing\n"
+"template-style (--style).\n"
+"\n"
+"You can customize output for any \"log-like\" command: log,\n"
+"outgoing, incoming, tip, parents, heads and glog.\n"
+"\n"
+"Three styles are packaged with Mercurial: default (the style used\n"
+"when no explicit preference is passed), compact and changelog.\n"
+"Usage::\n"
+"\n"
+"    $ hg log -r1 --style changelog\n"
+"\n"
+"A template is a piece of text, with markup to invoke variable\n"
+"expansion::\n"
+"\n"
+"    $ hg log -r1 --template \"{node}\\n\"\n"
+"    b56ce7b07c52de7d5fd79fb89701ea538af65746\n"
+"\n"
+"Strings in curly braces are called keywords. The availability of\n"
+"keywords depends on the exact context of the templater. These\n"
+"keywords are usually available for templating a log-like command:\n"
+"\n"
+":author: String. The unmodified author of the changeset.\n"
+"\n"
+":branches: String. The name of the branch on which the changeset was\n"
+"    committed. Will be empty if the branch name was default.\n"
+"\n"
+":date: Date information. The date when the changeset was committed.\n"
+"\n"
+":desc: String. The text of the changeset description.\n"
+"\n"
+":diffstat: String. Statistics of changes with the following format:\n"
+"    \"modified files: +added/-removed lines\"\n"
+"\n"
+":files: List of strings. All files modified, added, or removed by this\n"
+"    changeset.\n"
+"\n"
+":file_adds: List of strings. Files added by this changeset.\n"
+"\n"
+":file_copies: List of strings. Files copied in this changeset with\n"
+"    their sources.\n"
+"\n"
+":file_copies_switch: List of strings. Like \"file_copies\" but displayed\n"
+"    only if the --copied switch is set.\n"
+"\n"
+":file_mods: List of strings. Files modified by this changeset.\n"
+"\n"
+":file_dels: List of strings. Files removed by this changeset.\n"
+"\n"
+":node: String. The changeset identification hash, as a 40-character\n"
+"    hexadecimal string.\n"
+"\n"
+":parents: List of strings. The parents of the changeset.\n"
+"\n"
+":rev: Integer. The repository-local changeset revision number.\n"
+"\n"
+":tags: List of strings. Any tags associated with the changeset.\n"
+"\n"
+":latesttag: String. Most recent global tag in the ancestors of this\n"
+"    changeset.\n"
+"\n"
+":latesttagdistance: Integer. Longest path to the latest tag.\n"
+"\n"
+"The \"date\" keyword does not produce human-readable output. If you\n"
+"want to use a date in your output, you can use a filter to process\n"
+"it. Filters are functions which return a string based on the input\n"
+"variable. You can also use a chain of filters to get the desired\n"
+"output::\n"
+"\n"
+"   $ hg tip --template \"{date|isodate}\\n\"\n"
+"   2008-08-21 18:22 +0000\n"
+"\n"
+"List of filters:\n"
+"\n"
+":addbreaks: Any text. Add an XHTML \"<br />\" tag before the end of\n"
+"    every line except the last.\n"
+"\n"
+":age: Date. Returns a human-readable date/time difference between the\n"
+"    given date/time and the current date/time.\n"
+"\n"
+":basename: Any text. Treats the text as a path, and returns the last\n"
+"    component of the path after splitting by the path separator\n"
+"    (ignoring trailing separators). For example, \"foo/bar/baz\" becomes\n"
+"    \"baz\" and \"foo/bar//\" becomes \"bar\".\n"
+"\n"
+":stripdir: Treat the text as path and strip a directory level, if\n"
+"    possible. For example, \"foo\" and \"foo/bar\" becomes \"foo\".\n"
+"\n"
+":date: Date. Returns a date in a Unix date format, including the\n"
+"    timezone: \"Mon Sep 04 15:13:13 2006 0700\".\n"
+"\n"
+":domain: Any text. Finds the first string that looks like an email\n"
+"    address, and extracts just the domain component. Example: ``User\n"
+"    <user@example.com>`` becomes ``example.com``.\n"
+"\n"
+":email: Any text. Extracts the first string that looks like an email\n"
+"    address. Example: ``User <user@example.com>`` becomes\n"
+"    ``user@example.com``.\n"
+"\n"
+":escape: Any text. Replaces the special XML/XHTML characters \"&\", \"<\"\n"
+"    and \">\" with XML entities.\n"
+"\n"
+":fill68: Any text. Wraps the text to fit in 68 columns.\n"
+"\n"
+":fill76: Any text. Wraps the text to fit in 76 columns.\n"
+"\n"
+":firstline: Any text. Returns the first line of text.\n"
+"\n"
+":nonempty: Any text. Returns '(none)' if the string is empty.\n"
+"\n"
+":hgdate: Date. Returns the date as a pair of numbers: \"1157407993\n"
+"    25200\" (Unix timestamp, timezone offset).\n"
+"\n"
+":isodate: Date. Returns the date in ISO 8601 format: \"2009-08-18 13:00\n"
+"    +0200\".\n"
+"\n"
+":isodatesec: Date. Returns the date in ISO 8601 format, including\n"
+"    seconds: \"2009-08-18 13:00:13 +0200\". See also the rfc3339date\n"
+"    filter.\n"
+"\n"
+":localdate: Date. Converts a date to local date.\n"
+"\n"
+":obfuscate: Any text. Returns the input text rendered as a sequence of\n"
+"    XML entities.\n"
+"\n"
+":person: Any text. Returns the text before an email address.\n"
+"\n"
+":rfc822date: Date. Returns a date using the same format used in email\n"
+"    headers: \"Tue, 18 Aug 2009 13:00:13 +0200\".\n"
+"\n"
+":rfc3339date: Date. Returns a date using the Internet date format\n"
+"    specified in RFC 3339: \"2009-08-18T13:00:13+02:00\".\n"
+"\n"
+":short: Changeset hash. Returns the short form of a changeset hash,\n"
+"    i.e. a 12-byte hexadecimal string.\n"
+"\n"
+":shortdate: Date. Returns a date like \"2006-09-18\".\n"
+"\n"
+":strip: Any text. Strips all leading and trailing whitespace.\n"
+"\n"
+":tabindent: Any text. Returns the text, with every line except the\n"
+"     first starting with a tab character.\n"
+"\n"
+":urlescape: Any text. Escapes all \"special\" characters. For example,\n"
+"    \"foo bar\" becomes \"foo%20bar\".\n"
+"\n"
+":user: Any text. Returns the user portion of an email address.\n"
+msgstr ""
+"O Mercurial permite que você personalize a saída de comandos\n"
+"usando modelos. Você pode tanto passar um modelo pela linha de\n"
+"comando, usando a opção --template, como selecionar um\n"
+"modelo-estilo existente (--style).\n"
+"\n"
+"Você pode personalizar a saída de qualquer comando semelhante\n"
+"ao log: log, outgoing, incoming, tip, parents, heads e glog.\n"
+"\n"
+"Três estilos são incluídos na distribuição do Mercurial: default\n"
+"(o estilo usado quando nenhuma preferência for passada), compact\n"
+"e changelog. Uso::\n"
+"\n"
+"    $ hg log -r1 --style changelog\n"
+"\n"
+"Um modelo é um texto com marcações que invocam expansão de\n"
+"variáveis::\n"
+"\n"
+"    $ hg log -r1 --template \"{node}\\n\"\n"
+"    b56ce7b07c52de7d5fd79fb89701ea538af65746\n"
+"\n"
+"Strings entre chaves são chamadas palavras chave. A\n"
+"disponibilidade de palavras chave depende do contexto exato do\n"
+"modelador. Estas palavras chave estão comumente disponíveis para\n"
+"modelar comandos semelhantes ao log:\n"
+"\n"
+":author: String. O autor da revisão, sem modificações.\n"
+"\n"
+":branches: String. O nome do ramo no qual a revisão foi\n"
+"    consolidada. Será vazio se o nome do ramo for default.\n"
+"\n"
+":date: Informação de data. A data de consolidação da revisão.\n"
+"\n"
+":desc: String. O texto da descrição da revisão.\n"
+"\n"
+":diffstat: String. Estatísticas de mudanças no seguinte\n"
+"    formato: \"modified files: +added/-removed lines\"\n"
+"\n"
+":files: Lista de strings. Todos os arquivos modificados,\n"
+"    adicionados ou removidos por esta revisão.\n"
+"\n"
+":file_adds: Lista de strings. Arquivos adicionados por esta revisão.\n"
+"\n"
+":file_mods: Lista de strings. Arquivos modificados por esta revisão.\n"
+"\n"
+":file_dels: Lista de strings. Arquivos removidos por esta revisão.\n"
+"\n"
+":node: String. O hash de identificação da revisão, como uma string\n"
+"    hexadecimal de 40 caracteres.\n"
+"\n"
+":parents: Lista de strings. Os pais da revisão.\n"
+"\n"
+":rev: Inteiro. O número de ordem da revisão no repositório local.\n"
+"\n"
+":tags: Lista de strings. Quaisquer etiquetas associadas à revisão.\n"
+"\n"
+":latesttag: String. A etiqueta global mais recente nos ancestrais desta\n"
+"    revisão.\n"
+"\n"
+":latesttagdistance: Inteiro. O caminho mais longo para a latesttag.\n"
+"\n"
+"A palavra chave \"date\" não produz saída legível para humanos.\n"
+"Se você quiser usar uma data em sua saída, você pode usar um\n"
+"filtro para processá-la. Filtros são funções que devolvem uma\n"
+"string baseada na variável de entrada. Você também pode encadear\n"
+"filtros para obter a saída desejada::\n"
+"\n"
+"   $ hg tip --template \"{date|isodate}\\n\"\n"
+"   2008-08-21 18:22 +0000\n"
+"\n"
+"Lista de filtros:\n"
+"\n"
+":addbreaks: Qualquer texto. Adiciona uma tag XHTML \"<br />\"\n"
+"    antes do fim de cada linha, exceto a última.\n"
+"\n"
+":age:         Data. Devolve uma diferença de data/tempo legível entre\n"
+"    a data/hora dada e a data/hora atual.\n"
+"\n"
+":basename: Qualquer texto. Trata o texto como um caminho, e\n"
+"    devolve o último componente do caminho após quebrá-lo\n"
+"    usando o separador de caminhos (ignorando separadores à\n"
+"    direita). Por exemple, \"foo/bar/baz\" se torna \"baz\"\n"
+"    e \"foo/bar//\" se torna \"bar\".\n"
+"\n"
+":date: Data. Devolve uma data em um formato de data Unix,\n"
+"    incluindo a diferença de fuso horário:\n"
+"    \"Mon Sep 04 15:13:13 2006 0700\".\n"
+"\n"
+":stripdir: Trata o texto como um caminho e remove um nível\n"
+"    de diretório, se possível. Por exemplo, \"foo\" e\n"
+"    \"foo/bar\" se tornam \"foo\".\n"
+"\n"
+":domain: Qualquer texto. Encontra a primeira string que se\n"
+"    pareça com um endereço de e-mail, e extrai apenas a parte\n"
+"    do domínio. Por exemplo:\n"
+"    ``User <user@example.com>`` se torna ``example.com``.\n"
+"\n"
+":email: Qualquer texto. Extrai a primeira string que se pareça\n"
+"    com um endereço de e-mail. Por exemplo:\n"
+"    ``User <user@example.com>`` se torna ``user@example.com``.\n"
+"\n"
+":escape: Qualquer texto. Substitui os caracteres especiais\n"
+"    XML/XHTML \"&\", \"<\" e \">\" por entidades XML.\n"
+"\n"
+":fill68: Qualquer texto. Quebra o texto para caber em 68\n"
+"    colunas.\n"
+"\n"
+":fill76: Qualquer texto. Quebra o texto para caber em 76\n"
+"    colunas.\n"
+"\n"
+":firstline: Qualquer texto. Devolve a primeira linha do texto.\n"
+"\n"
+":nonempty: Qualquer texto. Devolve (none) se o texto for vazio.\n"
+"\n"
+":hgdate: Data. Devolve a data como um par de números:\n"
+"    \"1157407993 25200\" (timestamp Unix, defasagem de fuso)\n"
+"\n"
+":isodate: Data. Devolve a data em formato ISO 8601:\n"
+"    \"2009-08-18 13:00 +0200\".\n"
+"\n"
+":localdate: Data. Converte para data local.\n"
+"\n"
+":obfuscate: Qualquer texto. Devolve o texto de entrada\n"
+"    renderizado como uma seqüência de entidades XML.\n"
+"\n"
+":person: Qualquer texto. Devolve o texto antes de um endereço\n"
+"    de e-mail.\n"
+"\n"
+":rfc822date: Data. Devolve uma data usando o mesmo formato utilizado\n"
+"    em cabeçalhos de e-mail:\n"
+"    \"Tue, 18 Aug 2009 13:00:13 +0200\".\n"
+"\n"
+":rfc3339date: Data. Devolve uma data usando o formato de data da\n"
+"    Internet especificado na RFC 3339:\n"
+"    \"2009-08-18T13:00:13+02:00\".\n"
+"\n"
+":short: Hash da revisão. Devolve a forma curta do hash de\n"
+"    uma revisão, ou seja, uma string hexadecimal de 12 bytes.\n"
+"\n"
+":shortdate: Data. Devolve uma data como \"2006-09-18\".\n"
+"\n"
+":strip: Qualquer texto. Remove todos os espaços em branco no\n"
+"    início e no final do texto.\n"
+"\n"
+":tabindent: Qualquer texto. Devolve o texto todo, com a adição\n"
+"    de um caractere de tabulação ao início de cada linha,\n"
+"    exceto da primeira.\n"
+"\n"
+":urlescape: Qualquer texto. Codifica todos os caracteres\n"
+"    \"especiais\". Por exemplo, \"foo bar\" se torna\n"
+"    \"foo%20bar\".\n"
+"\n"
+":user: Qualquer texto. Devolve a parte do usuário de um\n"
+"    endereço de e-mail.\n"
+
+msgid ""
+"Valid URLs are of the form::\n"
+"\n"
+"  local/filesystem/path[#revision]\n"
+"  file://local/filesystem/path[#revision]\n"
+"  http://[user[:pass]@]host[:port]/[path][#revision]\n"
+"  https://[user[:pass]@]host[:port]/[path][#revision]\n"
+"  ssh://[user[:pass]@]host[:port]/[path][#revision]\n"
+"\n"
+"Paths in the local filesystem can either point to Mercurial\n"
+"repositories or to bundle files (as created by 'hg bundle' or 'hg\n"
+"incoming --bundle').\n"
+"\n"
+"An optional identifier after # indicates a particular branch, tag, or\n"
+"changeset to use from the remote repository. See also 'hg help\n"
+"revisions'.\n"
+"\n"
+"Some features, such as pushing to http:// and https:// URLs are only\n"
+"possible if the feature is explicitly enabled on the remote Mercurial\n"
+"server.\n"
+"\n"
+"Some notes about using SSH with Mercurial:\n"
+"\n"
+"- SSH requires an accessible shell account on the destination machine\n"
+"  and a copy of hg in the remote path or specified with as remotecmd.\n"
+"- path is relative to the remote user's home directory by default. Use\n"
+"  an extra slash at the start of a path to specify an absolute path::\n"
+"\n"
+"    ssh://example.com//tmp/repository\n"
+"\n"
+"- Mercurial doesn't use its own compression via SSH; the right thing\n"
+"  to do is to configure it in your ~/.ssh/config, e.g.::\n"
+"\n"
+"    Host *.mylocalnetwork.example.com\n"
+"      Compression no\n"
+"    Host *\n"
+"      Compression yes\n"
+"\n"
+"  Alternatively specify \"ssh -C\" as your ssh command in your hgrc or\n"
+"  with the --ssh command line option.\n"
+"\n"
+"These URLs can all be stored in your hgrc with path aliases under the\n"
+"[paths] section like so::\n"
+"\n"
+"  [paths]\n"
+"  alias1 = URL1\n"
+"  alias2 = URL2\n"
+"  ...\n"
+"\n"
+"You can then use the alias for any command that uses a URL (for\n"
+"example 'hg pull alias1' will be treated as 'hg pull URL1').\n"
+"\n"
+"Two path aliases are special because they are used as defaults when\n"
+"you do not provide the URL to a command:\n"
+"\n"
+"default:\n"
+"  When you create a repository with hg clone, the clone command saves\n"
+"  the location of the source repository as the new repository's\n"
+"  'default' path. This is then used when you omit path from push- and\n"
+"  pull-like commands (including incoming and outgoing).\n"
+"\n"
+"default-push:\n"
+"  The push command will look for a path named 'default-push', and\n"
+"  prefer it over 'default' if both are defined.\n"
+msgstr ""
+"URLs válidas são da forma::\n"
+"\n"
+"  caminho/no/sistema/de/arquivos/local[#revisão]\n"
+"  file://caminho/no/sistema/de/arquivos/local[#revisão]\n"
+"  http://[usuário[:senha]@]servidor[:porta]/[caminho][#revisão]\n"
+"  https://[usuário[:senha]@]servidor[:porta]/[caminho][#revisão]\n"
+"  ssh://[usuário[:senha]@]servidor[:porta]/[caminho][#revisão]\n"
+"\n"
+"Caminhos no sistema de arquivos local podem tanto apontar para\n"
+"repositórios do Mercurial como para arquivos bundle (criados por\n"
+"'hg bundle' ou 'hg incoming --bundle').\n"
+"\n"
+"Um identificador opcional após # indica um ramo, etiqueta ou\n"
+"revisão do repositório remoto a ser usado. Veja também 'hg\n"
+"help revisions'.\n"
+"\n"
+"Certas funcionalidades, como o push para URLs http:// e https://\n"
+"são possíveis apenas se forem explicitamente habilitadas no\n"
+"servidor remoto do Mercurial.\n"
+"\n"
+"Algumas notas sobre o uso de SSH com o Mercurial:\n"
+"\n"
+"- o SSH necessita de uma conta shell acessível na máquina de\n"
+"  destino e uma cópia do hg no caminho de execução remoto ou\n"
+"  especificado em remotecmd.\n"
+"- o caminho é por padrão relativo ao diretório home do usuário\n"
+"  remoto.\n"
+"  Use uma barra extra no início de um caminho para especificar um\n"
+"  caminho absoluto::\n"
+"\n"
+"    ssh://exemplo.com//tmp/repositorio\n"
+"\n"
+"- o Mercurial não usa sua própria compressão via SSH; a coisa\n"
+"  certa a fazer é configurá-la em seu ~/.ssh/config, por exemplo::\n"
+"\n"
+"    Host *.minharedelocal.exemplo.com\n"
+"      Compression no\n"
+"    Host *\n"
+"      Compression yes\n"
+"\n"
+"  Alternativamente especifique \"ssh -C\" como seu comando ssh\n"
+"  em seu hgrc ou pela opção de linha de comando --ssh .\n"
+"\n"
+"Estas URLs podem ser todas armazenadas em seu hgrc com apelidos\n"
+"de caminho na seção [paths] , da seguinte forma::\n"
+"\n"
+"  [paths]\n"
+"  apelido1 = URL1\n"
+"  apelido2 = URL2\n"
+"  ...\n"
+"\n"
+"Você pode então usar o apelido em qualquer comando que receba uma\n"
+"URL (por exemplo 'hg pull apelido1' será tratado como 'hg pull URL1').\n"
+"\n"
+"Dois apelidos de caminho são especiais por serem usados como\n"
+"valores padrão quando você não fornece a URL para um comando:\n"
+"\n"
+"default:\n"
+"  Quando você cria um repositório com hg clone, o comando clone\n"
+"  grava a localização do repositório de origem como o novo\n"
+"  caminho 'default' do repositório. Ele é então usado quando você\n"
+"  omitir o caminho de comandos semelhantes ao push e ao pull\n"
+"  (incluindo incoming e outgoing).\n"
+"\n"
+"default-push:\n"
+"  O comando push procurará por um caminho chamado 'default-push',\n"
+"  e o usará ao invés de 'default' se ambos estiverem definidos.\n"
+
+msgid "dirstate branch not accessible"
+msgstr "ramo do dirstate inacessível"
+
 msgid "can only share local repositories"
 msgstr "só é possível compartilhar repositórios locais"
 
@@ -10891,6 +11219,10 @@
 msgstr "consolidando sub-repositório %s\n"
 
 #, python-format
+msgid "note: commit message saved in %s\n"
+msgstr "nota: mensagem de consolidação gravada em %s\n"
+
+#, python-format
 msgid "trouble committing %s!\n"
 msgstr "problemas ao consolidar %s!\n"
 
@@ -10957,8 +11289,8 @@
 "'changegroupsubset'."
 
 #, python-format
-msgid "abort: push creates new remote branch '%s'!\n"
-msgstr "abortado: push cria novo ramo remoto '%s'!\n"
+msgid "abort: push creates new remote heads on branch '%s'!\n"
+msgstr "abortado: push cria novas cabeças remotas no ramo '%s'!\n"
 
 msgid "abort: push creates new remote heads!\n"
 msgstr "abortado: push cria novas cabeças remotas!\n"
@@ -10966,6 +11298,16 @@
 msgid "(did you forget to merge? use push -f to force)\n"
 msgstr "(você esqueceu de mesclar? Use push -f para forçar)\n"
 
+msgid "(you should pull and merge or use push -f to force)\n"
+msgstr "(você deve fazer o pull e mesclar ou usar push -f para forçar)\n"
+
+#, python-format
+msgid "abort: push creates new remote branches: %s!\n"
+msgstr "abortado: push cria novos ramos remotos: '%s'!\n"
+
+msgid "(use 'hg push -f' to force)\n"
+msgstr "(use 'hg push -f' para forçar)\n"
+
 msgid "note: unsynced remote changes!\n"
 msgstr "aviso: mudanças remotas não sincronizadas!\n"
 
@@ -10993,6 +11335,10 @@
 msgstr "grupo recebido de arquivos revlog vazio"
 
 #, python-format
+msgid "missing file data for %s:%s - run hg verify"
+msgstr "faltando dados de arquivo para %s:%s - execute hg verify"
+
+#, python-format
 msgid " (%+d heads)"
 msgstr " (%+d cabeças)"
 
@@ -11276,6 +11622,9 @@
 msgid "unknown compression type %r"
 msgstr "tipo de compressão %r desconhecido"
 
+msgid "index entry flags need RevlogNG"
+msgstr "flags de entrada de índice exigem RevlogNG"
+
 #, python-format
 msgid "index %s unknown flags %#04x for format v0"
 msgstr "índice %s marcadores desconhecidos %#04x para o formato v0"
@@ -11360,6 +11709,13 @@
 msgstr "entrada inválida na fncache, linha %s"
 
 #, python-format
+msgid "subrepo spec file %s not found"
+msgstr "arquivo spec de subrepositório %s não encontrado"
+
+msgid "missing ] in subrepo source"
+msgstr "faltando ] na origem do subrepositório"
+
+#, python-format
 msgid ""
 " subrepository sources for %s differ\n"
 "use (l)ocal source (%s) or (r)emote source (%s)?"
@@ -11387,6 +11743,10 @@
 "use (c) a versão alterada ou (d) apague?"
 
 #, python-format
+msgid "unknown subrepo type %s"
+msgstr "tipo de subrepositório %s desconhecido"
+
+#, python-format
 msgid "removing subrepo %s\n"
 msgstr "removendo sub-repositório %s\n"
 
@@ -11398,6 +11758,13 @@
 msgid "pushing subrepo %s\n"
 msgstr "enviando sub-repositório %s\n"
 
+msgid "cannot commit svn externals"
+msgstr "não se pode consolidar svn externals"
+
+#, python-format
+msgid "not removing repo %s because it has changes.\n"
+msgstr "repositório %s não removido por possuir mudanças.\n"
+
 #, python-format
 msgid "%s, line %s: %s\n"
 msgstr "%s, linha %s: %s\n"
@@ -11507,6 +11874,12 @@
 msgid "http auth: user %s, password %s\n"
 msgstr "autenticação http: usuário %s, senha %s\n"
 
+msgid "certificate checking requires Python 2.6"
+msgstr "verificação de certificado exige Python 2.6"
+
+msgid "server identity verification succeeded\n"
+msgstr "verificação de identidade do servidor feita com sucesso\n"
+
 #, python-format
 msgid "command '%s' failed: %s"
 msgstr "falha ao executar o comando '%s' : %s"
--- a/i18n/sv.po	Mon Feb 15 00:17:18 2010 +0100
+++ b/i18n/sv.po	Wed Feb 17 23:10:22 2010 +0100
@@ -13,8 +13,8 @@
 msgstr ""
 "Project-Id-Version: Mercurial\n"
 "Report-Msgid-Bugs-To: <mercurial-devel@selenic.com>\n"
-"POT-Creation-Date: 2010-02-13 22:39+0100\n"
-"PO-Revision-Date: 2010-02-14 00:05+0100\n"
+"POT-Creation-Date: 2010-02-16 18:12+0100\n"
+"PO-Revision-Date: 2010-02-16 22:01+0100\n"
 "Last-Translator: Jens Bäckman <jens.backman@gmail.com>\n"
 "Language-Team: Swedish\n"
 "MIME-Version: 1.0\n"
@@ -2658,7 +2658,7 @@
 "\n"
 "    To set guards on another patch::\n"
 "\n"
-"      hg qguard -- other.patch +2.6.17 -stable\n"
+"      hg qguard other.patch -- +2.6.17 -stable\n"
 "    "
 msgstr ""
 
@@ -2915,7 +2915,7 @@
 msgid "drop all guards"
 msgstr ""
 
-msgid "hg qguard [-l] [-n] -- [PATCH] [+GUARD]... [-GUARD]..."
+msgid "hg qguard [-l] [-n] [PATCH] [-- [+GUARD]... [-GUARD]...]"
 msgstr ""
 
 msgid "hg qheader [PATCH]"
@@ -3486,8 +3486,8 @@
 msgid ""
 "show progress bars for some actions\n"
 "\n"
-"This extension uses the progress information commands can log with hg\n"
-"to draw progres bars that are as informative as possible. Some progress\n"
+"This extension uses the progress information logged by hg commands\n"
+"to draw progress bars that are as informative as possible. Some progress\n"
 "bars only offer indeterminate information, while others have a definite\n"
 "end point.\n"
 "\n"
@@ -3501,10 +3501,10 @@
 "                 # (that is, min(width, term width) will be used)\n"
 "  clear-complete = True # clear the progress bar after it's done\n"
 "\n"
-"Valid entries for the format field are topic, bar, number, unit, and item.\n"
-"item defaults to the last 20 characters of the item, but this can be\n"
-"changed by adding either -<num> which would take the last num characters,\n"
-"or +<num> for the first num characters.\n"
+"Valid entries for the format field are topic, bar, number, unit, and\n"
+"item. item defaults to the last 20 characters of the item, but this\n"
+"can be changed by adding either ``-<num>`` which would take the last\n"
+"num characters, or ``+<num>`` for the first num characters.\n"
 msgstr ""
 
 msgid "command to delete untracked files from the working directory"
@@ -4472,6 +4472,20 @@
 "    undo an add before that, see hg forget.\n"
 "\n"
 "    If no names are given, add all files to the repository.\n"
+"\n"
+"    .. container:: verbose\n"
+"\n"
+"       An example showing how new (unknown) files are added\n"
+"       automatically by ``hg add``::\n"
+"\n"
+"         $ ls\n"
+"         foo.c\n"
+"         $ hg status\n"
+"         ? foo.c\n"
+"         $ hg add\n"
+"         adding foo.c\n"
+"         $ hg status\n"
+"         A foo.c\n"
 "    "
 msgstr ""
 "lägg till de specificerade filerna i nästa arkivering\n"
@@ -4482,6 +4496,21 @@
 "    ångra en addering innan dess, se hg forget.\n"
 "\n"
 "    Om inga namn anges, läggs alla filer till i arkivet.\n"
+"\n"
+"    .. container:: verbose\n"
+"\n"
+"       An example showing how new (unknown) files are added\n"
+"       Ett exempel som visar hur nya (okända) filer läggs\n"
+"       till automatiskt av ``hg add``::\n"
+"\n"
+"         $ ls\n"
+"         foo.c\n"
+"         $ hg status\n"
+"         ? foo.c\n"
+"         $ hg add\n"
+"         adding foo.c\n"
+"         $ hg status\n"
+"         A foo.c\n"
 "    "
 
 msgid ""
@@ -5606,6 +5635,14 @@
 msgid "(no help text available)"
 msgstr "(ingen hjälptext tillgänglig)"
 
+#, python-format
+msgid ""
+"\n"
+"use \"hg -v help %s\" to show verbose help\n"
+msgstr ""
+"\n"
+"använd \"hg -v help %s\" för att visa utförlig hjälp\n"
+
 msgid "options:\n"
 msgstr "flaggor:\n"
 
@@ -8050,6 +8087,16 @@
 "    - if it's a directory, all files ending with .rc are added\n"
 "    - otherwise, the file itself will be added\n"
 "\n"
+"HGPLAIN\n"
+"    When set, this disables any options in .hgrc that might change\n"
+"    Mercurial's default output. This includes encoding, defaults,\n"
+"    verbose mode, debug mode, quiet mode, tracebacks, and\n"
+"    localization. This can be useful when scripting against Mercurial\n"
+"    in the face of existing user configuration.\n"
+"\n"
+"    Equivalent options set via command line flags or environment\n"
+"    variables are not overridden.\n"
+"\n"
 "HGUSER\n"
 "    This is the string used as the author of a commit. If not set,\n"
 "    available values will be considered in this order:\n"
@@ -8470,6 +8517,8 @@
 msgid ""
 "%d files updated, %d files merged, %d files removed, %d files unresolved\n"
 msgstr ""
+"%d filer uppdaterade, %d filer sammanfogade, %d filer raderade, %d filer "
+"olösta\n"
 
 msgid "use 'hg resolve' to retry unresolved file merges\n"
 msgstr ""
@@ -8789,30 +8838,30 @@
 msgstr "använd 'hg push -f' för att tvinga)\n"
 
 msgid "note: unsynced remote changes!\n"
-msgstr ""
+msgstr "notera: osynkade fjärrändringar!\n"
 
 #, python-format
 msgid "%d changesets found\n"
-msgstr ""
+msgstr "%d ändringar hittades\n"
 
 #, python-format
 msgid "empty or missing revlog for %s"
-msgstr ""
+msgstr "tom eller saknad revlog för %s"
 
 msgid "adding changesets\n"
-msgstr ""
+msgstr "lägger till ändringar\n"
 
 msgid "received changelog group is empty"
-msgstr ""
+msgstr "mottagen ändringsgrupp är tom"
 
 msgid "adding manifests\n"
-msgstr ""
+msgstr "lägger till manifest\n"
 
 msgid "adding file changes\n"
-msgstr ""
+msgstr "lägger till filändringar\n"
 
 msgid "received file revlog group is empty"
-msgstr ""
+msgstr "mottagen revlog-grupp för filer är tom"
 
 #, python-format
 msgid "missing file data for %s:%s - run hg verify"
--- a/mercurial/commands.py	Mon Feb 15 00:17:18 2010 +0100
+++ b/mercurial/commands.py	Wed Feb 17 23:10:22 2010 +0100
@@ -537,6 +537,7 @@
             has.update(repo.changelog.reachable(n))
         if revs:
             visit = list(revs)
+            has.difference_update(revs)
         else:
             visit = repo.changelog.heads()
         seen = {}
@@ -544,7 +545,8 @@
             n = visit.pop(0)
             parents = [p for p in repo.changelog.parents(n) if p not in has]
             if len(parents) == 0:
-                o.insert(0, n)
+                if n not in has:
+                    o.append(n)
             else:
                 for p in parents:
                     if p not in seen:
--- a/mercurial/filelog.py	Mon Feb 15 00:17:18 2010 +0100
+++ b/mercurial/filelog.py	Wed Feb 17 23:10:22 2010 +0100
@@ -35,7 +35,7 @@
         if meta or text.startswith('\1\n'):
             mt = ""
             if meta:
-                mt = ["%s: %s\n" % (k, v) for k, v in meta.iteritems()]
+                mt = ["%s: %s\n" % (k, v) for k, v in sorted(meta.iteritems())]
             text = "\1\n%s\1\n%s" % ("".join(mt), text)
         return self.addrevision(text, transaction, link, p1, p2)
 
--- a/mercurial/httprepo.py	Mon Feb 15 00:17:18 2010 +0100
+++ b/mercurial/httprepo.py	Wed Feb 17 23:10:22 2010 +0100
@@ -74,10 +74,15 @@
         q.update(args)
         qs = '?%s' % urllib.urlencode(q)
         cu = "%s%s" % (self._url, qs)
+        req = urllib2.Request(cu, data, headers)
+        if data is not None:
+            # len(data) is broken if data doesn't fit into Py_ssize_t
+            # add the header ourself to avoid OverflowError
+            size = data.__len__()
+            self.ui.debug("sending %s bytes\n" % size)
+            req.add_unredirected_header('Content-Length', '%d' % size)
         try:
-            if data:
-                self.ui.debug("sending %s bytes\n" % len(data))
-            resp = self.urlopener.open(urllib2.Request(cu, data, headers))
+            resp = self.urlopener.open(req)
         except urllib2.HTTPError, inst:
             if inst.code == 401:
                 raise util.Abort(_('authorization failed'))
--- a/mercurial/localrepo.py	Mon Feb 15 00:17:18 2010 +0100
+++ b/mercurial/localrepo.py	Wed Feb 17 23:10:22 2010 +0100
@@ -846,6 +846,8 @@
             msgfile.close()
 
             try:
+                hookp1, hookp2 = hex(p1), (p2 != nullid and hex(p2) or '')
+                self.hook("precommit", throw=True, parent1=hookp1, parent2=hookp2)
                 ret = self.commitctx(cctx, True)
             except:
                 if edited:
@@ -861,15 +863,14 @@
                 self.dirstate.forget(f)
             self.dirstate.setparents(ret)
             ms.reset()
-
-            return ret
-
         finally:
             wlock.release()
 
+        self.hook("commit", node=hex(ret), parent1=hookp1, parent2=hookp2)
+        return ret
+
     def commitctx(self, ctx, error=False):
         """Add a new revision to current repository.
-
         Revision information is passed via the context argument.
         """
 
@@ -880,9 +881,6 @@
         m2 = p2.manifest()
         user = ctx.user()
 
-        xp1, xp2 = p1.hex(), p2 and p2.hex() or ''
-        self.hook("precommit", throw=True, parent1=xp1, parent2=xp2)
-
         lock = self.lock()
         try:
             tr = self.transaction()
@@ -925,6 +923,7 @@
                                    trp, p1.node(), p2.node(),
                                    user, ctx.date(), ctx.extra().copy())
             p = lambda: self.changelog.writepending() and self.root or ""
+            xp1, xp2 = p1.hex(), p2 and p2.hex() or ''
             self.hook('pretxncommit', throw=True, node=hex(n), parent1=xp1,
                       parent2=xp2, pending=p)
             self.changelog.finalize(trp)
@@ -932,8 +931,6 @@
 
             if self._branchcache:
                 self.branchtags()
-
-            self.hook("commit", node=hex(n), parent1=xp1, parent2=xp2)
             return n
         finally:
             del tr
@@ -1342,7 +1339,7 @@
 
             if r:
                 reqcnt += 1
-                self.ui.progress('searching', reqcnt, unit='queries')
+                self.ui.progress(_('searching'), reqcnt, unit='queries')
                 self.ui.debug("request %d: %s\n" %
                             (reqcnt, " ".join(map(short, r))))
                 for p in xrange(0, len(r), 10):
@@ -1355,7 +1352,7 @@
         while search:
             newsearch = []
             reqcnt += 1
-            self.ui.progress('searching', reqcnt, unit='queries')
+            self.ui.progress(_('searching'), reqcnt, unit='queries')
             for n, l in zip(search, remote.between(search)):
                 l.append(n[1])
                 p = n[0]
@@ -1391,7 +1388,7 @@
         self.ui.debug("found new changesets starting at " +
                      " ".join([short(f) for f in fetch]) + "\n")
 
-        self.ui.progress('searching', None, unit='queries')
+        self.ui.progress(_('searching'), None, unit='queries')
         self.ui.debug("%d total queries\n" % reqcnt)
 
         return base.keys(), list(fetch), heads
@@ -1822,9 +1819,9 @@
             cnt = 0
             for chnk in group:
                 yield chnk
-                self.ui.progress('bundle changes', cnt, unit='chunks')
+                self.ui.progress(_('bundle changes'), cnt, unit='chunks')
                 cnt += 1
-            self.ui.progress('bundle changes', None, unit='chunks')
+            self.ui.progress(_('bundle changes'), None, unit='chunks')
 
 
             # Figure out which manifest nodes (of the ones we think might be
@@ -1850,9 +1847,9 @@
             cnt = 0
             for chnk in group:
                 yield chnk
-                self.ui.progress('bundle manifests', cnt, unit='chunks')
+                self.ui.progress(_('bundle manifests'), cnt, unit='chunks')
                 cnt += 1
-            self.ui.progress('bundle manifests', None, unit='chunks')
+            self.ui.progress(_('bundle manifests'), None, unit='chunks')
 
             # These are no longer needed, dereference and toss the memory for
             # them.
@@ -1901,7 +1898,7 @@
                     del msng_filenode_set[fname]
             # Signal that no more groups are left.
             yield changegroup.closechunk()
-            self.ui.progress('bundle files', None, unit='chunks')
+            self.ui.progress(_('bundle files'), None, unit='chunks')
 
             if msng_cl_lst:
                 self.hook('outgoing', node=hex(msng_cl_lst[0]), source=source)
@@ -1950,19 +1947,19 @@
 
             cnt = 0
             for chnk in cl.group(nodes, identity, collect):
-                self.ui.progress('bundle changes', cnt, unit='chunks')
+                self.ui.progress(_('bundle changes'), cnt, unit='chunks')
                 cnt += 1
                 yield chnk
-            self.ui.progress('bundle changes', None, unit='chunks')
+            self.ui.progress(_('bundle changes'), None, unit='chunks')
 
             mnfst = self.manifest
             nodeiter = gennodelst(mnfst)
             cnt = 0
             for chnk in mnfst.group(nodeiter, lookuprevlink_func(mnfst)):
-                self.ui.progress('bundle manifests', cnt, unit='chunks')
+                self.ui.progress(_('bundle manifests'), cnt, unit='chunks')
                 cnt += 1
                 yield chnk
-            self.ui.progress('bundle manifests', None, unit='chunks')
+            self.ui.progress(_('bundle manifests'), None, unit='chunks')
 
             cnt = 0
             for fname in sorted(changedfiles):
@@ -2025,7 +2022,7 @@
             self.ui.status(_("adding changesets\n"))
             clstart = len(cl)
             class prog(object):
-                step = 'changesets'
+                step = _('changesets')
                 count = 1
                 ui = self.ui
                 def __call__(self):
@@ -2037,11 +2034,11 @@
                 raise util.Abort(_("received changelog group is empty"))
             clend = len(cl)
             changesets = clend - clstart
-            self.ui.progress('changesets', None)
+            self.ui.progress(_('changesets'), None)
 
             # pull off the manifest group
             self.ui.status(_("adding manifests\n"))
-            pr.step = 'manifests'
+            pr.step = _('manifests')
             pr.count = 1
             chunkiter = changegroup.chunkiter(source, progress=pr)
             # no need to check for empty manifest group here:
@@ -2049,7 +2046,7 @@
             # no new manifest will be created and the manifest group will
             # be empty during the pull
             self.manifest.addgroup(chunkiter, revmap, trp)
-            self.ui.progress('manifests', None)
+            self.ui.progress(_('manifests'), None)
 
             needfiles = {}
             if self.ui.configbool('server', 'validate', default=False):
@@ -2085,7 +2082,7 @@
                             needs.remove(n)
                     if not needs:
                         del needfiles[f]
-            self.ui.progress('files', None)
+            self.ui.progress(_('files'), None)
 
             for f, needs in needfiles.iteritems():
                 fl = self.file(f)
--- a/mercurial/merge.py	Mon Feb 15 00:17:18 2010 +0100
+++ b/mercurial/merge.py	Wed Feb 17 23:10:22 2010 +0100
@@ -511,8 +511,9 @@
             repo.dirstate.setparents(fp1, fp2)
             if not branchmerge and not fastforward:
                 repo.dirstate.setbranch(p2.branch())
-            repo.hook('update', parent1=xp1, parent2=xp2, error=stats[3])
-
-        return stats
     finally:
         wlock.release()
+
+    if not partial:
+        repo.hook('update', parent1=xp1, parent2=xp2, error=stats[3])
+    return stats
--- a/mercurial/url.py	Mon Feb 15 00:17:18 2010 +0100
+++ b/mercurial/url.py	Wed Feb 17 23:10:22 2010 +0100
@@ -51,10 +51,11 @@
     else:
         hostport = host
     if user:
+        quote = lambda s: urllib.quote(s, safe='')
         if passwd:
-            userpass = urllib.quote(user) + ':' + urllib.quote(passwd)
+            userpass = quote(user) + ':' + quote(passwd)
         else:
-            userpass = urllib.quote(user)
+            userpass = quote(user)
         return userpass + '@' + hostport
     return hostport
 
@@ -268,11 +269,11 @@
             ssl = socket.ssl(sock, key_file, cert_file)
             return httplib.FakeSocket(sock, ssl)
 
-        _GLOBAL_DEFAULT_TIMEOUT = object()
-
     try:
         _create_connection = socket.create_connection
     except AttributeError:
+        _GLOBAL_DEFAULT_TIMEOUT = object()
+
         def _create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT,
                                source_address=None):
             # lifted from Python 2.6
--- a/mercurial/util.py	Mon Feb 15 00:17:18 2010 +0100
+++ b/mercurial/util.py	Wed Feb 17 23:10:22 2010 +0100
@@ -1343,14 +1343,17 @@
         if prevhandler is not None:
             signal.signal(signal.SIGCHLD, prevhandler)
 
-def any(iterable):
-    for i in iterable:
-        if i:
-            return True
-    return False
+try:
+    any, all = any, all
+except NameError:
+    def any(iterable):
+        for i in iterable:
+            if i:
+                return True
+        return False
 
-def all(iterable):
-    for i in iterable:
-        if not i:
-            return False
-    return True
+    def all(iterable):
+        for i in iterable:
+            if not i:
+                return False
+        return True
--- a/mercurial/verify.py	Mon Feb 15 00:17:18 2010 +0100
+++ b/mercurial/verify.py	Wed Feb 17 23:10:22 2010 +0100
@@ -122,7 +122,7 @@
     checklog(cl, "changelog", 0)
     total = len(repo)
     for i in repo:
-        ui.progress('changelog', i, total=total)
+        ui.progress(_('changelog'), i, total=total)
         n = cl.node(i)
         checkentry(cl, i, n, seen, [i], "changelog")
 
@@ -133,14 +133,14 @@
                 filelinkrevs.setdefault(f, []).append(i)
         except Exception, inst:
             exc(i, _("unpacking changeset %s") % short(n), inst)
-    ui.progress('changelog', None)
+    ui.progress(_('changelog'), None)
 
     ui.status(_("checking manifests\n"))
     seen = {}
     checklog(mf, "manifest", 0)
     total = len(mf)
     for i in mf:
-        ui.progress('manifests', i, total=total)
+        ui.progress(_('manifests'), i, total=total)
         n = mf.node(i)
         lr = checkentry(mf, i, n, seen, mflinkrevs.get(n, []), "manifest")
         if n in mflinkrevs:
@@ -156,7 +156,7 @@
                     filenodes.setdefault(f, {}).setdefault(fn, lr)
         except Exception, inst:
             exc(lr, _("reading manifest delta %s") % short(n), inst)
-    ui.progress('manifests', None)
+    ui.progress(_('manifests'), None)
 
     ui.status(_("crosschecking files in changesets and manifests\n"))
 
@@ -166,13 +166,13 @@
         for c, m in sorted([(c, m) for m in mflinkrevs
                             for c in mflinkrevs[m]]):
             count += 1
-            ui.progress('crosscheck', count, total=total)
+            ui.progress(_('crosscheck'), count, total=total)
             err(c, _("changeset refers to unknown manifest %s") % short(m))
         mflinkrevs = None # del is bad here due to scope issues
 
         for f in sorted(filelinkrevs):
             count += 1
-            ui.progress('crosscheck', count, total=total)
+            ui.progress(_('crosscheck'), count, total=total)
             if f not in filenodes:
                 lr = filelinkrevs[f][0]
                 err(lr, _("in changeset but not in manifest"), f)
@@ -180,7 +180,7 @@
     if havecl:
         for f in sorted(filenodes):
             count += 1
-            ui.progress('crosscheck', count, total=total)
+            ui.progress(_('crosscheck'), count, total=total)
             if f not in filelinkrevs:
                 try:
                     fl = repo.file(f)
@@ -189,7 +189,7 @@
                     lr = None
                 err(lr, _("in manifest but not in changeset"), f)
 
-    ui.progress('crosscheck', None)
+    ui.progress(_('crosscheck'), None)
 
     ui.status(_("checking files\n"))
 
@@ -203,7 +203,7 @@
     files = sorted(set(filenodes) | set(filelinkrevs))
     total = len(files)
     for i, f in enumerate(files):
-        ui.progress('files', i, item=f, total=total)
+        ui.progress(_('files'), i, item=f, total=total)
         try:
             linkrevs = filelinkrevs[f]
         except KeyError:
@@ -281,7 +281,7 @@
             fns = [(lr, n) for n, lr in filenodes[f].iteritems()]
             for lr, node in sorted(fns):
                 err(lr, _("%s in manifests not found") % short(node), f)
-    ui.progress('files', None)
+    ui.progress(_('files'), None)
 
     for f in storefiles:
         warn(_("warning: orphan revlog '%s'") % f)
--- a/tests/test-bundle-r	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-bundle-r	Wed Feb 17 23:10:22 2010 +0100
@@ -75,6 +75,8 @@
 
 # issue76 msg2163
 hg -R test bundle --base 3 -r 3 -r 3 test-bundle-cset-3.hg
+# issue1910
+hg -R test bundle --base 7 test-bundle-cset-7.hg
 
 hg clone test-2 test-9
 cd test-9
@@ -99,6 +101,11 @@
 echo % 6
 hg tip -q
 hg verify
+hg rollback
+hg unbundle ../test-bundle-cset-7.hg
+echo % 4
+hg tip -q
+hg verify
 
 cd ../test
 hg merge 7
--- a/tests/test-bundle-r.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-bundle-r.out	Wed Feb 17 23:10:22 2010 +0100
@@ -7,9 +7,9 @@
      2         8       7      2       2 4c982badb186 125144f7e028 000000000000
      3        15       9      3       3 19b1fc555737 4c982badb186 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       7 905359268f77 000000000000 000000000000
+     0         0      75      0       7 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       8 905359268f77 000000000000 000000000000
+     0         0      75      0       8 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       8      0       6 12ab3bcc5ea4 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
@@ -18,8 +18,8 @@
      2        96      48      2       2 626a32663c2f 8b89697eba2c 000000000000
      3       144      48      3       3 f54c32f13478 626a32663c2f 000000000000
      4       192      58      3       6 de68e904d169 626a32663c2f 000000000000
-     5       250      68      3       7 3b45cc2ab868 de68e904d169 000000000000
-     6       318      54      6       8 24d86153a002 f54c32f13478 000000000000
+     5       250      68      3       7 09bb521d218d de68e904d169 000000000000
+     6       318      54      6       8 1fde233dfb0f f54c32f13478 000000000000
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -128,7 +128,7 @@
 crosschecking files in changesets and manifests
 checking files
 3 files, 5 changesets, 6 total revisions
-4:80fe151401c2
+4:27f57c869697
 searching for changes
 5 changesets found
 adding changesets
@@ -141,7 +141,7 @@
 crosschecking files in changesets and manifests
 checking files
 2 files, 5 changesets, 5 total revisions
-4:836ac62537ab
+4:088ff9d6e1e1
 pulling from ../test-7
 searching for changes
 adding changesets
@@ -163,6 +163,7 @@
 6 changesets found
 1 changesets found
 1 changesets found
+4 changesets found
 updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % 2
@@ -179,7 +180,7 @@
 added 6 changesets with 4 changes to 4 files (+1 heads)
 (run 'hg heads' to see heads, 'hg merge' to merge)
 % 8
-8:836ac62537ab
+8:088ff9d6e1e1
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -194,7 +195,7 @@
 added 2 changesets with 2 changes to 2 files
 (run 'hg update' to get a working copy)
 % 4
-4:836ac62537ab
+4:088ff9d6e1e1
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -207,12 +208,25 @@
 added 4 changesets with 3 changes to 3 files (+1 heads)
 (run 'hg heads' to see heads, 'hg merge' to merge)
 % 6
-6:80fe151401c2
+6:27f57c869697
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
 checking files
 3 files, 7 changesets, 6 total revisions
+rolling back last transaction
+adding changesets
+adding manifests
+adding file changes
+added 2 changesets with 2 changes to 2 files
+(run 'hg update' to get a working copy)
+% 4
+4:088ff9d6e1e1
+checking changesets
+checking manifests
+crosschecking files in changesets and manifests
+checking files
+2 files, 5 changesets, 5 total revisions
 warning: detected divergent renames of afile to:
  anotherfile
  adifferentfile
@@ -227,7 +241,7 @@
 added 7 changesets with 4 changes to 4 files
 (run 'hg update' to get a working copy)
 % 9
-9:607fe5912aad
+9:e3061ea42e4c
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-bundle.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-bundle.out	Wed Feb 17 23:10:22 2010 +0100
@@ -65,14 +65,14 @@
 added 9 changesets with 7 changes to 4 files (+1 heads)
 (run 'hg heads' to see heads, 'hg merge' to merge)
 ====== Log -R full.hg in fresh empty
-changeset:   8:836ac62537ab
+changeset:   8:088ff9d6e1e1
 tag:         tip
 parent:      3:ac69c658229d
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     0.3m
 
-changeset:   7:80fe151401c2
+changeset:   7:27f57c869697
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     1.3m
@@ -146,14 +146,14 @@
 updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 ====== Log -R full.hg in partial
-changeset:   8:836ac62537ab
+changeset:   8:088ff9d6e1e1
 tag:         tip
 parent:      3:ac69c658229d
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     0.3m
 
-changeset:   7:80fe151401c2
+changeset:   7:27f57c869697
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     1.3m
@@ -213,12 +213,12 @@
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     1.3
 
-changeset:   7:80fe151401c2
+changeset:   7:27f57c869697
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     1.3m
 
-changeset:   8:836ac62537ab
+changeset:   8:088ff9d6e1e1
 tag:         tip
 parent:      3:ac69c658229d
 user:        test
@@ -244,12 +244,12 @@
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     1.3
 
-changeset:   7:80fe151401c2
+changeset:   7:27f57c869697
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     1.3m
 
-changeset:   8:836ac62537ab
+changeset:   8:088ff9d6e1e1
 tag:         tip
 parent:      3:ac69c658229d
 user:        test
@@ -266,14 +266,14 @@
 added 9 changesets with 7 changes to 4 files (+1 heads)
 updating to branch default
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-changeset:   8:836ac62537ab
+changeset:   8:088ff9d6e1e1
 tag:         tip
 parent:      3:ac69c658229d
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     0.3m
 
-changeset:   7:80fe151401c2
+changeset:   7:27f57c869697
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     1.3m
@@ -313,7 +313,7 @@
 checking files
 2 files, 2 changesets, 2 total revisions
 ====== diff against bundle
-diff -r 836ac62537ab anotherfile
+diff -r 088ff9d6e1e1 anotherfile
 --- a/anotherfile	Mon Jan 12 13:46:40 1970 +0000
 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
 @@ -1,4 +0,0 @@
--- a/tests/test-clone-r.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-clone-r.out	Wed Feb 17 23:10:22 2010 +0100
@@ -7,9 +7,9 @@
      2         8       7      2       2 4c982badb186 125144f7e028 000000000000
      3        15       9      3       3 19b1fc555737 4c982badb186 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       7 905359268f77 000000000000 000000000000
+     0         0      75      0       7 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       8 905359268f77 000000000000 000000000000
+     0         0      75      0       8 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       8      0       6 12ab3bcc5ea4 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
@@ -18,8 +18,8 @@
      2        96      48      2       2 626a32663c2f 8b89697eba2c 000000000000
      3       144      48      3       3 f54c32f13478 626a32663c2f 000000000000
      4       192      58      3       6 de68e904d169 626a32663c2f 000000000000
-     5       250      68      3       7 3b45cc2ab868 de68e904d169 000000000000
-     6       318      54      6       8 24d86153a002 f54c32f13478 000000000000
+     5       250      68      3       7 09bb521d218d de68e904d169 000000000000
+     6       318      54      6       8 1fde233dfb0f f54c32f13478 000000000000
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-command-template.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-command-template.out	Wed Feb 17 23:10:22 2010 +0100
@@ -8,7 +8,7 @@
 # revision with no copies (used to print a traceback)
 
 # compact style works
-8[tip]   3bdecc1cde0c   2020-01-01 10:01 +0000   test
+8[tip]   95c24699272e   2020-01-01 10:01 +0000   test
   third
 
 7:-1   29114dbae42b   1970-01-12 13:46 +0000   user
@@ -35,7 +35,7 @@
 0   1e4e1b8f71e0   1970-01-12 13:46 +0000   user
   line 1
 
-8[tip]   3bdecc1cde0c   2020-01-01 10:01 +0000   test
+8[tip]   95c24699272e   2020-01-01 10:01 +0000   test
   third
 
 7:-1   29114dbae42b   1970-01-12 13:46 +0000   User Name <user@hostname>
@@ -66,7 +66,7 @@
   line 1
 line 2
 
-8[tip]:7,-1   3bdecc1cde0c   2020-01-01 10:01 +0000   test
+8[tip]:7,-1   95c24699272e   2020-01-01 10:01 +0000   test
   third
 
 7:-1,-1   29114dbae42b   1970-01-12 13:46 +0000   User Name <user@hostname>
@@ -100,7 +100,7 @@
 # xml style works (--style xml)
 <?xml version="1.0"?>
 <log>
-<logentry revision="8" node="3bdecc1cde0c3d5fa6eaee3d9d9828f6ac468d57">
+<logentry revision="8" node="95c24699272ef57d062b8bccc32c878bf841784a">
 <tag>tip</tag>
 <author email="test">test</author>
 <date>2020-01-01T10:01:00+00:00</date>
@@ -159,7 +159,7 @@
 # xml style works (-v --style xml)
 <?xml version="1.0"?>
 <log>
-<logentry revision="8" node="3bdecc1cde0c3d5fa6eaee3d9d9828f6ac468d57">
+<logentry revision="8" node="95c24699272ef57d062b8bccc32c878bf841784a">
 <tag>tip</tag>
 <author email="test">test</author>
 <date>2020-01-01T10:01:00+00:00</date>
@@ -248,7 +248,7 @@
 # xml style works (--debug --style xml)
 <?xml version="1.0"?>
 <log>
-<logentry revision="8" node="3bdecc1cde0c3d5fa6eaee3d9d9828f6ac468d57">
+<logentry revision="8" node="95c24699272ef57d062b8bccc32c878bf841784a">
 <tag>tip</tag>
 <parent revision="7" node="29114dbae42b9f078cf2714dbe3a86bba8ec7453" />
 <parent revision="-1" node="0000000000000000000000000000000000000000" />
@@ -390,7 +390,7 @@
 
 	* fourth, second, third:
 	third
-	[3bdecc1cde0c] [tip]
+	[95c24699272e] [tip]
 
 1970-01-12  User Name  <user@hostname>
 
@@ -721,7 +721,7 @@
 files--debug: c
 files--debug: b
 files--debug: a
-manifest: 8:79c71159cb0a
+manifest: 8:94961b75a2da
 manifest: 7:f2dbc354b94e
 manifest: 6:91015e9dbdd7
 manifest: 5:4dc3def4f9b4
@@ -730,7 +730,7 @@
 manifest: 2:6e0e82995c35
 manifest: 1:4e8d705b1e53
 manifest: 0:a0c8bcbbb45c
-manifest--verbose: 8:79c71159cb0a
+manifest--verbose: 8:94961b75a2da
 manifest--verbose: 7:f2dbc354b94e
 manifest--verbose: 6:91015e9dbdd7
 manifest--verbose: 5:4dc3def4f9b4
@@ -739,7 +739,7 @@
 manifest--verbose: 2:6e0e82995c35
 manifest--verbose: 1:4e8d705b1e53
 manifest--verbose: 0:a0c8bcbbb45c
-manifest--debug: 8:79c71159cb0a1a84add78e7922a1e5e7be34c499
+manifest--debug: 8:94961b75a2da554b4df6fb599e5bfc7d48de0c64
 manifest--debug: 7:f2dbc354b94e5ec0b4f10680ee0cee816101d0bf
 manifest--debug: 6:91015e9dbdd76a6791085d12b0a0ec7fcd22ffbf
 manifest--debug: 5:4dc3def4f9b4c6e8de820f6ee74737f91e96a216
@@ -748,7 +748,7 @@
 manifest--debug: 2:6e0e82995c35d0d57a52aca8da4e56139e06b4b1
 manifest--debug: 1:4e8d705b1e53e3f9375e0e60dc7b525d8211fe55
 manifest--debug: 0:a0c8bcbbb45c63b90b70ad007bf38961f64f2af0
-node: 3bdecc1cde0c3d5fa6eaee3d9d9828f6ac468d57
+node: 95c24699272ef57d062b8bccc32c878bf841784a
 node: 29114dbae42b9f078cf2714dbe3a86bba8ec7453
 node: c7b487c6c50ef1cf464cafdc4f4f5e615fc5999f
 node: 13207e5a10d9fd28ec424934298e176197f2c67f
@@ -757,7 +757,7 @@
 node: 97054abb4ab824450e9164180baf491ae0078465
 node: b608e9d1a3f0273ccf70fb85fd6866b3482bf965
 node: 1e4e1b8f71e05681d422154f5421e385fec3454f
-node--verbose: 3bdecc1cde0c3d5fa6eaee3d9d9828f6ac468d57
+node--verbose: 95c24699272ef57d062b8bccc32c878bf841784a
 node--verbose: 29114dbae42b9f078cf2714dbe3a86bba8ec7453
 node--verbose: c7b487c6c50ef1cf464cafdc4f4f5e615fc5999f
 node--verbose: 13207e5a10d9fd28ec424934298e176197f2c67f
@@ -766,7 +766,7 @@
 node--verbose: 97054abb4ab824450e9164180baf491ae0078465
 node--verbose: b608e9d1a3f0273ccf70fb85fd6866b3482bf965
 node--verbose: 1e4e1b8f71e05681d422154f5421e385fec3454f
-node--debug: 3bdecc1cde0c3d5fa6eaee3d9d9828f6ac468d57
+node--debug: 95c24699272ef57d062b8bccc32c878bf841784a
 node--debug: 29114dbae42b9f078cf2714dbe3a86bba8ec7453
 node--debug: c7b487c6c50ef1cf464cafdc4f4f5e615fc5999f
 node--debug: 13207e5a10d9fd28ec424934298e176197f2c67f
@@ -984,7 +984,7 @@
 no person
 other 1
 line 1
-3bdecc1cde0c
+95c24699272e
 29114dbae42b
 c7b487c6c50e
 13207e5a10d9
--- a/tests/test-convert-darcs.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-convert-darcs.out	Wed Feb 17 23:10:22 2010 +0100
@@ -33,5 +33,5 @@
 
 7225b30cdf38257d5cc7780772c051b6f33e6d6b 644   a
 1e88685f5ddec574a34c70af492f95b6debc8741 644   b
-d278f41640da5fc303a4cf9894af31c2983fc11d 644   dir2/d
-ef5c76581d78340f568d5f48d679bf307452cbc9 644   ff
+37406831adc447ec2385014019599dfec953c806 644   dir2/d
+b783a337463792a5c7d548ad85a7d3253c16ba8c 644   ff
--- a/tests/test-convert-filemap.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-convert-filemap.out	Wed Feb 17 23:10:22 2010 +0100
@@ -21,7 +21,7 @@
 % final file versions in this repo:
 9463f52fe115e377cf2878d4fc548117211063f2 644   bar
 94c1be4dfde2ee8d78db8bbfcf81210813307c3d 644   baz
-6ca237634e1f6bee1b6db94292fb44f092a25842 644   copied
+7711d36246cc83e61fb29cd6d4ef394c63f1ceaf 644   copied
 3e20847584beff41d7cd16136b7331ab3d754be0 644   dir/file
 75e6d3f8328f5f6ace6bf10b98df793416a09dca 644   dir/file2
 5fe139720576e18e34bcc9f79174db8897c8afe9 644   dir/subdir/file3
@@ -135,7 +135,7 @@
 |
 o  0 "0: add foo baz dir/" files: foo
 
-6ca237634e1f6bee1b6db94292fb44f092a25842 644   copied
+7711d36246cc83e61fb29cd6d4ef394c63f1ceaf 644   copied
 9a7b52012991e4873687192c3e17e61ba3e837a3 644   foo
 copied renamed from foo:2ed2a3912a0b24502043eae84ee4b279c18b90dd
 @  4 "8: change foo" files: foo2
@@ -148,7 +148,7 @@
 |
 o  0 "0: add foo baz dir/" files: dir2/file dir2/subdir/file3 foo2
 
-e5e3d520be9be45937d0b06b004fadcd6c221fa2 644   copied2
+d43feacba7a4f1f2080dde4a4b985bd8a0236d46 644   copied2
 3e20847584beff41d7cd16136b7331ab3d754be0 644   dir2/file
 5fe139720576e18e34bcc9f79174db8897c8afe9 644   dir2/subdir/file3
 9a7b52012991e4873687192c3e17e61ba3e837a3 644   foo2
--- a/tests/test-convert-svn-encoding.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-convert-svn-encoding.out	Wed Feb 17 23:10:22 2010 +0100
@@ -1,5 +1,5 @@
 % convert while testing all possible outputs
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 % check tags are in UTF-8
-'1c1b4062874e8197a68e7ce9e498479a37d0215c branch\xc3\xa9e\n'
-'edc96568720ef79eefa6372677b18d855de3abee branch\xc3\xa9\n'
+'221c3fdaf24df5f14c0a64c597581e2eacfb47bb branch\xc3\xa9e\n'
+'7a40952c2db29cf00d9e31df3749e98d8a4bdcbf branch\xc3\xa9\n'
--- a/tests/test-convert-svn-sink.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-convert-svn-sink.out	Wed Feb 17 23:10:22 2010 +0100
@@ -55,7 +55,7 @@
 d1
 same
 % rename
-2:7009fc4efb34
+2:eb5169441d43
 assuming destination a-hg
 initializing svn wc 'a-hg-wc'
 scanning source...
@@ -93,7 +93,7 @@
 b
 d1
 % copy
-3:56c519973ce6
+3:60effef6ab48
 assuming destination a-hg
 initializing svn wc 'a-hg-wc'
 scanning source...
@@ -132,7 +132,7 @@
 c
 d1
 % remove
-4:ed4dc9a6f585
+4:87bbe3013fb6
 assuming destination a-hg
 initializing svn wc 'a-hg-wc'
 scanning source...
@@ -166,7 +166,7 @@
 c
 d1
 % executable
-5:f205b3636d77
+5:ff42e473c340
 assuming destination a-hg
 initializing svn wc 'a-hg-wc'
 scanning source...
--- a/tests/test-convert-tla.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-convert-tla.out	Wed Feb 17 23:10:22 2010 +0100
@@ -67,6 +67,6 @@
 o  0 "initial import" files:
 
 c4072c4b72e1cabace081888efa148ee80ca3cbb 644   a
-623942606de842342ac7b221ae9ccabc13b5d8c8 644   c
-43b4308708a4b36340566684df2e2a074b12ceb0 644 @ test/a-link
-73773e3389ef7ec5a070519b74895d2eaa4ad5db 644 @ test/b
+0201ac32a3a8e86e303dff60366382a54b48a72e 644   c
+c0067ba5ff0b7c9a3eb17270839d04614c435623 644 @ test/a-link
+375f4263d86feacdea7e3c27100abd1560f2a973 644 @ test/b
--- a/tests/test-copy-move-merge.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-copy-move-merge.out	Wed Feb 17 23:10:22 2010 +0100
@@ -9,7 +9,7 @@
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 583c7b748052 local fb3948d97f07+ remote 40da226db0f0
+ ancestor 583c7b748052 local fb3948d97f07+ remote 7f1309517659
  a: remote moved to c -> m
  a: remote moved to b -> m
 preserving a for resolve of b
@@ -18,12 +18,12 @@
 update: a 1/2 files (50.00%)
 picked tool 'internal:merge' for b (binary False symlink False)
 merging a and b to b
-my b@fb3948d97f07+ other b@40da226db0f0 ancestor a@583c7b748052
+my b@fb3948d97f07+ other b@7f1309517659 ancestor a@583c7b748052
  premerge successful
 update: a 2/2 files (100.00%)
 picked tool 'internal:merge' for c (binary False symlink False)
 merging a and c to c
-my c@fb3948d97f07+ other c@40da226db0f0 ancestor a@583c7b748052
+my c@fb3948d97f07+ other c@7f1309517659 ancestor a@583c7b748052
  premerge successful
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
--- a/tests/test-copy.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-copy.out	Wed Feb 17 23:10:22 2010 +0100
@@ -1,9 +1,9 @@
 A b
 b
  b: copy a:b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3
-committed changeset 1:386a3cc01532710ca78aed9a54fa2f459c04f29c
+committed changeset 1:76973b01f66a012648546c979ea4c41de9e7d8cd
 we should see two history entries
-changeset:   1:386a3cc01532
+changeset:   1:76973b01f66a
 tag:         tip
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
@@ -30,7 +30,7 @@
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       3      0       0 b789fdd96dc2 000000000000 000000000000
 we should see one log entry for b
-changeset:   1:386a3cc01532
+changeset:   1:76973b01f66a
 tag:         tip
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
@@ -38,11 +38,11 @@
 
 this should show a revision linked to changeset 1
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      65      0       1 9a263dd772e0 000000000000 000000000000
+     0         0      65      0       1 37d9b5d994ea 000000000000 000000000000
 this should show the rename information in the metadata
+copy: a
 copyrev: b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3
-copy: a
-ed156f22f0a6fde642de0b5eba0cbbb2  .hg/store/data/b.i
+4999f120a3b88713bbefddd195cf5133  .hg/store/data/b.i
 60b725f10c9c85c70d97880dfe8191b3  bsum
 60b725f10c9c85c70d97880dfe8191b3  asum
 checking changesets
--- a/tests/test-copy2.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-copy2.out	Wed Feb 17 23:10:22 2010 +0100
@@ -28,9 +28,9 @@
   foo
 # should show no parents for tip
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      69      0       1 6ca237634e1f 000000000000 000000000000
-     1        69       6      1       2 7a1ff8e75f5b 6ca237634e1f 000000000000
-     2        75      82      1       3 243dfe60f3d9 000000000000 000000000000
+     0         0      69      0       1 7711d36246cc 000000000000 000000000000
+     1        69       6      1       2 bdf70a2b8d03 7711d36246cc 000000000000
+     2        75      81      1       3 b2558327ea8d 000000000000 000000000000
 # should match
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       5      0       0 2ed2a3912a0b 000000000000 000000000000
--- a/tests/test-debugrename.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-debugrename.out	Wed Feb 17 23:10:22 2010 +0100
@@ -1,5 +1,5 @@
 adding a
 b renamed from a:b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3
-a renamed from b:9a263dd772e0159ddfa70fb8a448bb6c7ec8c69f
+a renamed from b:37d9b5d994eab34eda9c16b195ace52c7b129980
 % test with --rev
 b renamed from a:b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3
--- a/tests/test-double-merge.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-double-merge.out	Wed Feb 17 23:10:22 2010 +0100
@@ -1,5 +1,5 @@
 created new head
-changeset:   1:7731dad1c2b9
+changeset:   1:d9da848d0adf
 user:        test
 date:        Mon Jan 12 13:46:40 1970 +0000
 summary:     cp foo bar; change both
@@ -12,7 +12,7 @@
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 310fd17130da local 2092631ce82b+ remote 7731dad1c2b9
+ ancestor 310fd17130da local 2092631ce82b+ remote d9da848d0adf
  foo: versions differ -> m
  foo: remote copied to bar -> m
 preserving foo for resolve of bar
@@ -20,12 +20,12 @@
 update: foo 1/2 files (50.00%)
 picked tool 'internal:merge' for bar (binary False symlink False)
 merging foo and bar to bar
-my bar@2092631ce82b+ other bar@7731dad1c2b9 ancestor foo@310fd17130da
+my bar@2092631ce82b+ other bar@d9da848d0adf ancestor foo@310fd17130da
  premerge successful
 update: foo 2/2 files (100.00%)
 picked tool 'internal:merge' for foo (binary False symlink False)
 merging foo
-my foo@2092631ce82b+ other foo@7731dad1c2b9 ancestor foo@310fd17130da
+my foo@2092631ce82b+ other foo@d9da848d0adf ancestor foo@310fd17130da
  premerge successful
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
--- a/tests/test-hgweb-filelog.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-hgweb-filelog.out	Wed Feb 17 23:10:22 2010 +0100
@@ -1,30 +1,30 @@
 adding b
 adding a
 adding a
-changeset:   6:38d962e6234d
+changeset:   6:b7682196df1c
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 summary:     change c
 
-diff -r a3b6a9e4507e -r 38d962e6234d c
+diff -r 1a6696706df2 -r b7682196df1c c
 --- a/c	Thu Jan 01 00:00:00 1970 +0000
 +++ b/c	Thu Jan 01 00:00:00 1970 +0000
 @@ -1,1 +1,2 @@
  b
 +c
 
-changeset:   5:a3b6a9e4507e
+changeset:   5:1a6696706df2
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 summary:     mv b
 
-diff -r 52e848cdcd88 -r a3b6a9e4507e b
+diff -r 52e848cdcd88 -r 1a6696706df2 b
 --- a/b	Thu Jan 01 00:00:00 1970 +0000
 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
 @@ -1,1 +0,0 @@
 -b
-diff -r 52e848cdcd88 -r a3b6a9e4507e c
+diff -r 52e848cdcd88 -r 1a6696706df2 c
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
 +++ b/c	Thu Jan 01 00:00:00 1970 +0000
 @@ -0,0 +1,1 @@
@@ -523,27 +523,27 @@
 <a href="/graph?style=spartan">graph</a>
 <a href="/tags?style=spartan">tags</a>
 <a href="/branches?style=spartan">branches</a>
-<a href="/file/38d962e6234d/c?style=spartan">file</a>
-<a href="/annotate/38d962e6234d/c?style=spartan">annotate</a>
+<a href="/file/b7682196df1c/c?style=spartan">file</a>
+<a href="/annotate/b7682196df1c/c?style=spartan">annotate</a>
 <a type="application/rss+xml" href="/rss-log/tip/c">rss</a>
 <a type="application/atom+xml" href="/atom-log/tip/c" title="Atom feed for test:c">atom</a>
 </div>
 
 <h2>c revision history</h2>
 
-<p>navigate: <small class="navigate"><a href="/log/a3b6a9e4507e/c?style=spartan">(0)</a> <a href="/log/tip/c?style=spartan">tip</a> </small></p>
+<p>navigate: <small class="navigate"><a href="/log/1a6696706df2/c?style=spartan">(0)</a> <a href="/log/tip/c?style=spartan">tip</a> </small></p>
 
 <table class="logEntry parity0">
  <tr>
   <th class="age">1970-01-01:</th>
-  <th class="firstline"><a href="/rev/38d962e6234d?style=spartan">change c</a></th>
+  <th class="firstline"><a href="/rev/b7682196df1c?style=spartan">change c</a></th>
  </tr>
  <tr>
   <th class="revision">revision 1:</td>
   <td class="node">
-   <a href="/file/38d962e6234d/c?style=spartan">38d962e6234d</a>
-   <a href="/diff/38d962e6234d/c?style=spartan">(diff)</a>
-   <a href="/annotate/38d962e6234d/c?style=spartan">(annotate)</a>
+   <a href="/file/b7682196df1c/c?style=spartan">b7682196df1c</a>
+   <a href="/diff/b7682196df1c/c?style=spartan">(diff)</a>
+   <a href="/annotate/b7682196df1c/c?style=spartan">(annotate)</a>
   </td>
  </tr>
  
@@ -561,14 +561,14 @@
 <table class="logEntry parity1">
  <tr>
   <th class="age">1970-01-01:</th>
-  <th class="firstline"><a href="/rev/a3b6a9e4507e?style=spartan">mv b</a></th>
+  <th class="firstline"><a href="/rev/1a6696706df2?style=spartan">mv b</a></th>
  </tr>
  <tr>
   <th class="revision">revision 0:</td>
   <td class="node">
-   <a href="/file/a3b6a9e4507e/c?style=spartan">a3b6a9e4507e</a>
-   <a href="/diff/a3b6a9e4507e/c?style=spartan">(diff)</a>
-   <a href="/annotate/a3b6a9e4507e/c?style=spartan">(annotate)</a>
+   <a href="/file/1a6696706df2/c?style=spartan">1a6696706df2</a>
+   <a href="/diff/1a6696706df2/c?style=spartan">(diff)</a>
+   <a href="/annotate/1a6696706df2/c?style=spartan">(annotate)</a>
   </td>
  </tr>
  
--- a/tests/test-hook	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-hook	Wed Feb 17 23:10:22 2010 +0100
@@ -205,8 +205,8 @@
 echo '[hooks]' > .hg/hgrc
 echo 'commit.abort = python:hooktests.aborthook' >> .hg/hgrc
 
-echo a >> a
-hg --traceback commit -A -m a 2>&1 | grep '^Traceback'
+echo aa > a
+hg --traceback commit -d '0 0' -ma 2>&1 | grep '^Traceback'
 
 cd ..
 hg init c
@@ -224,9 +224,9 @@
 
 touch foo
 hg add foo
-hg ci -m 'add foo'
+hg ci -d '0 0' -m 'add foo'
 echo >> foo
-hg ci --debug -m 'change foo' | sed -e 's/ at .*>/>/'
+hg ci --debug -d '0 0' -m 'change foo' | sed -e 's/ at .*>/>/'
 
 hg showconfig hooks | sed -e 's/ at .*>/>/'
 
@@ -246,7 +246,7 @@
 echo "pre-commit.test = python:`pwd`/testhooks.py:testhook" >> ../repo/.hg/hgrc
 
 cd ../repo
-hg commit
+hg commit -d '0 0'
 
 cd ../../b
 echo '# make sure --traceback works on hook import failure'
@@ -260,6 +260,14 @@
 echo 'precommit.importfail = python:importfail.whatever' >> .hg/hgrc
 
 echo a >> a
-hg --traceback commit -Ama 2>&1 | egrep '^(exception|Traceback|ImportError)'
+hg --traceback commit -d '0 0' -ma 2>&1 | egrep '^(exception|Traceback|ImportError)'
+
+echo '# commit and update hooks should run after command completion (issue 1827)'
+echo '[hooks]' > .hg/hgrc
+echo 'commit = hg id' >> .hg/hgrc
+echo 'update = hg id' >> .hg/hgrc
+echo bb > a
+hg ci -d '0 0' -ma
+hg up 0
 
 exit 0
--- a/tests/test-hook.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-hook.out	Wed Feb 17 23:10:22 2010 +0100
@@ -171,3 +171,7 @@
 Traceback (most recent call last):
 ImportError: No module named hgext_importfail
 Traceback (most recent call last):
+# commit and update hooks should run after command completion (issue 1827)
+8da618c33484 tip
+29b62aeb769f
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
--- a/tests/test-http-clone-r.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-http-clone-r.out	Wed Feb 17 23:10:22 2010 +0100
@@ -8,9 +8,9 @@
      2         8       7      2       2 4c982badb186 125144f7e028 000000000000
      3        15       9      3       3 19b1fc555737 4c982badb186 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       7 905359268f77 000000000000 000000000000
+     0         0      75      0       7 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       8 905359268f77 000000000000 000000000000
+     0         0      75      0       8 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       8      0       6 12ab3bcc5ea4 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
@@ -19,8 +19,8 @@
      2        96      48      2       2 626a32663c2f 8b89697eba2c 000000000000
      3       144      48      3       3 f54c32f13478 626a32663c2f 000000000000
      4       192      58      3       6 de68e904d169 626a32663c2f 000000000000
-     5       250      68      3       7 3b45cc2ab868 de68e904d169 000000000000
-     6       318      54      6       8 24d86153a002 f54c32f13478 000000000000
+     5       250      68      3       7 09bb521d218d de68e904d169 000000000000
+     6       318      54      6       8 1fde233dfb0f f54c32f13478 000000000000
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-issue1175.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-issue1175.out	Wed Feb 17 23:10:22 2010 +0100
@@ -8,7 +8,7 @@
 b
  b: searching for copy revision for a
  b: copy a:b80de5d138758541c5f05265ad144ab9fa86d1db
-committed changeset 5:755e75751bf67eb4378bca61987df035d90a7a06
+committed changeset 5:89e8e4be0de296fa3d6dd7825ccc44d7dc0f1f3b
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
@@ -17,8 +17,8 @@
 # HG changeset patch
 # User test
 # Date 0 0
-# Node ID 755e75751bf67eb4378bca61987df035d90a7a06
-# Parent  7399822c2e395fe7d57c2fcf4b310f6fb22f8c2d
+# Node ID 89e8e4be0de296fa3d6dd7825ccc44d7dc0f1f3b
+# Parent  7fc86ba705e717a721dbc361bf8c9bc05a18ca2f
 5
 
 diff --git a/b b/b
--- a/tests/test-issue672.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-issue672.out	Wed Feb 17 23:10:22 2010 +0100
@@ -10,7 +10,7 @@
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 81f4b099af3d local c64f439569a9+ remote 2f8037f47a5c
+ ancestor 81f4b099af3d local c64f439569a9+ remote c12dcd37c90a
  1: other deleted -> r
  1a: remote created -> g
 update: 1 1/2 files (50.00%)
@@ -30,13 +30,13 @@
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor c64f439569a9 local ac7575e3c052+ remote 746e9549ea96
+ ancestor c64f439569a9 local e327dca35ac8+ remote 746e9549ea96
  1a: local copied/moved to 1 -> m
 preserving 1a for resolve of 1a
 update: 1a 1/1 files (100.00%)
 picked tool 'internal:merge' for 1a (binary False symlink False)
 merging 1a and 1 to 1a
-my 1a@ac7575e3c052+ other 1@746e9549ea96 ancestor 1@81f4b099af3d
+my 1a@e327dca35ac8+ other 1@746e9549ea96 ancestor 1@81f4b099af3d
  premerge successful
 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
@@ -49,14 +49,14 @@
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor c64f439569a9 local 746e9549ea96+ remote ac7575e3c052
+ ancestor c64f439569a9 local 746e9549ea96+ remote e327dca35ac8
  1: remote moved to 1a -> m
 preserving 1 for resolve of 1a
 removing 1
 update: 1 1/1 files (100.00%)
 picked tool 'internal:merge' for 1a (binary False symlink False)
 merging 1 and 1a to 1a
-my 1a@746e9549ea96+ other 1a@ac7575e3c052 ancestor 1@81f4b099af3d
+my 1a@746e9549ea96+ other 1a@e327dca35ac8 ancestor 1@81f4b099af3d
  premerge successful
 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
--- a/tests/test-keyword.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-keyword.out	Wed Feb 17 23:10:22 2010 +0100
@@ -169,12 +169,12 @@
 c
  c: copy a:0045e12f6c5791aac80ca6cbfd97709a88307292
 overwriting c expanding keywords
-committed changeset 2:e22d299ac0c2bd8897b3df5114374b9e4d4ca62f
+committed changeset 2:25736cf2f5cbe41f6be4e6784ef6ecf9f3bbcc7d
 % cat a c
 expand $Id: a,v ef63ca68695b 1970/01/01 00:00:00 user $
 do not process $Id:
 xxx $
-expand $Id: c,v e22d299ac0c2 1970/01/01 00:00:01 user $
+expand $Id: c,v 25736cf2f5cb 1970/01/01 00:00:01 user $
 do not process $Id:
 xxx $
 % touch copied c
@@ -320,9 +320,9 @@
 x/a
  x/a: copy a:779c764182ce5d43e2b1eb66ce06d7b47bfe342e
 overwriting x/a expanding keywords
-committed changeset 3:cfa68229c1167443337266ebac453c73b1d5d16e
+committed changeset 3:b4560182a3f9a358179fd2d835c15e9da379c1e4
 % cat a
-expand $Id: x/a cfa68229c116 Thu, 01 Jan 1970 00:00:03 +0000 user $
+expand $Id: x/a b4560182a3f9 Thu, 01 Jan 1970 00:00:03 +0000 user $
 do not process $Id:
 xxx $
 $Xinfo: User Name <user@example.com>: xa $
@@ -364,11 +364,11 @@
 # HG changeset patch
 # User User Name <user@example.com>
 # Date 3 0
-# Node ID cfa68229c1167443337266ebac453c73b1d5d16e
+# Node ID b4560182a3f9a358179fd2d835c15e9da379c1e4
 # Parent  bb948857c743469b22bbf51f7ec8112279ca5d83
 xa
 
-diff -r bb948857c743 -r cfa68229c116 x/a
+diff -r bb948857c743 -r b4560182a3f9 x/a
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
 +++ b/x/a	Thu Jan 01 00:00:03 1970 +0000
 @@ -0,0 +1,4 @@
@@ -400,7 +400,7 @@
 created new head
 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
-$Id: m 8731e1dadc99 Thu, 01 Jan 1970 00:00:00 +0000 test $
+$Id: m 27d48ee14f67 Thu, 01 Jan 1970 00:00:00 +0000 test $
 foo
 % conflict
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -418,24 +418,24 @@
 foo
 >>>>>>> other
 % resolve to local
-$Id: m 43dfd2854b5b Thu, 01 Jan 1970 00:00:00 +0000 test $
+$Id: m 41efa6d38e9b Thu, 01 Jan 1970 00:00:00 +0000 test $
 bar
 % test restricted mode with transplant -b
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 marked working directory as branch foo
 created new head
 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
-applying 1c4378f51c4d
-1c4378f51c4d transplanted to 7d855abcab87
+applying 4aa30d025d50
+4aa30d025d50 transplanted to 5a4da427c162
 % no expansion in changeset
-changeset:   11:7d855abcab87
+changeset:   11:5a4da427c162
 tag:         tip
-parent:      9:43dfd2854b5b
+parent:      9:41efa6d38e9b
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 summary:     9foobranch
 
-diff -r 43dfd2854b5b -r 7d855abcab87 a
+diff -r 41efa6d38e9b -r 5a4da427c162 a
 --- a/a	Thu Jan 01 00:00:00 1970 +0000
 +++ b/a	Thu Jan 01 00:00:00 1970 +0000
 @@ -1,3 +1,4 @@
@@ -446,7 +446,7 @@
 
 % expansion in file
 foobranch
-expand $Id: a 7d855abcab87 Thu, 01 Jan 1970 00:00:00 +0000 test $
+expand $Id: a 5a4da427c162 Thu, 01 Jan 1970 00:00:00 +0000 test $
 % switch off expansion
 % kwshrink with unknown file u
 overwriting a shrinking keywords
--- a/tests/test-log.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-log.out	Wed Feb 17 23:10:22 2010 +0100
@@ -7,23 +7,23 @@
 % -f, directory
 abort: cannot follow nonexistent file: "dir"
 % -f, but no args
-changeset:   4:b30c444c7c84
+changeset:   4:66c1345dc4f9
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:05 1970 +0000
 summary:     e
 
-changeset:   3:16b60bf3f99a
+changeset:   3:7c6c671bb7cc
 user:        test
 date:        Thu Jan 01 00:00:04 1970 +0000
 summary:     d
 
-changeset:   2:21fba396af4c
+changeset:   2:41dd4284081e
 user:        test
 date:        Thu Jan 01 00:00:03 1970 +0000
 summary:     c
 
-changeset:   1:c0296dabce9b
+changeset:   1:784de7cef101
 user:        test
 date:        Thu Jan 01 00:00:02 1970 +0000
 summary:     b
@@ -43,7 +43,7 @@
 
 
 % many renames
-changeset:   4:b30c444c7c84
+changeset:   4:66c1345dc4f9
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:05 1970 +0000
@@ -52,7 +52,7 @@
 e
 
 
-changeset:   2:21fba396af4c
+changeset:   2:41dd4284081e
 user:        test
 date:        Thu Jan 01 00:00:03 1970 +0000
 files:       b dir/b
@@ -60,7 +60,7 @@
 c
 
 
-changeset:   1:c0296dabce9b
+changeset:   1:784de7cef101
 user:        test
 date:        Thu Jan 01 00:00:02 1970 +0000
 files:       b
@@ -102,7 +102,7 @@
 % log copies, execute bit set
 6 
 % log -p d
-changeset:   3:16b60bf3f99a
+changeset:   3:7c6c671bb7cc
 user:        test
 date:        Thu Jan 01 00:00:04 1970 +0000
 files:       a b d
@@ -110,7 +110,7 @@
 d
 
 
-diff -r 21fba396af4c -r 16b60bf3f99a d
+diff -r 41dd4284081e -r 7c6c671bb7cc d
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
 +++ b/d	Thu Jan 01 00:00:04 1970 +0000
 @@ -0,0 +1,1 @@
--- a/tests/test-merge-commit.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-merge-commit.out	Wed Feb 17 23:10:22 2010 +0100
@@ -8,30 +8,30 @@
 line1
 line2
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      77      0       2 da78c0659611 000000000000 000000000000
-     1        77      76      0       3 4b358025380b 000000000000 da78c0659611
+     0         0      77      0       2 d35118874825 000000000000 000000000000
+     1        77      76      0       3 5345f5ab8abd 000000000000 d35118874825
 bar renamed from foo:9e25c27b87571a1edee5ae4dddee5687746cc8e2
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       7      0       0 690b295714ae 000000000000 000000000000
      1         7      13      1       1 9e25c27b8757 690b295714ae 000000000000
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 created new head
-4:2d2f9a22c82b 2:0a3ab4856510 
-3:7d3b554bfdf1 2:0a3ab4856510 1:5cd961e4045d 
-2:0a3ab4856510 0:2665aaee66e9 
+4:2263c1be0967 2:0f2ff26688b9 
+3:0555950ead28 2:0f2ff26688b9 1:5cd961e4045d 
+2:0f2ff26688b9 0:2665aaee66e9 
 1:5cd961e4045d 
 0:2665aaee66e9 
 % this should use bar@rev2 as the ancestor
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 0a3ab4856510 local 2d2f9a22c82b+ remote 7d3b554bfdf1
+ ancestor 0f2ff26688b9 local 2263c1be0967+ remote 0555950ead28
  bar: versions differ -> m
 preserving bar for resolve of bar
 update: bar 1/1 files (100.00%)
 picked tool 'internal:merge' for bar (binary False symlink False)
 merging bar
-my bar@2d2f9a22c82b+ other bar@7d3b554bfdf1 ancestor bar@0a3ab4856510
+my bar@2263c1be0967+ other bar@0555950ead28 ancestor bar@0f2ff26688b9
  premerge successful
 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
@@ -39,10 +39,10 @@
 line1
 line2
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      77      0       2 da78c0659611 000000000000 000000000000
-     1        77      76      0       3 4b358025380b 000000000000 da78c0659611
-     2       153       7      2       4 4defe5eec418 da78c0659611 000000000000
-     3       160      13      3       5 4663501da27b 4defe5eec418 4b358025380b
+     0         0      77      0       2 d35118874825 000000000000 000000000000
+     1        77      76      0       3 5345f5ab8abd 000000000000 d35118874825
+     2       153       7      2       4 ff4b45017382 d35118874825 000000000000
+     3       160      13      3       5 3701b4893544 ff4b45017382 5345f5ab8abd
 
 
 requesting all changes
@@ -59,30 +59,30 @@
 line1
 line2
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      77      0       2 da78c0659611 000000000000 000000000000
-     1        77      76      0       3 4b358025380b 000000000000 da78c0659611
+     0         0      77      0       2 d35118874825 000000000000 000000000000
+     1        77      76      0       3 5345f5ab8abd 000000000000 d35118874825
 bar renamed from foo:9e25c27b87571a1edee5ae4dddee5687746cc8e2
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       7      0       0 690b295714ae 000000000000 000000000000
      1         7      13      1       1 9e25c27b8757 690b295714ae 000000000000
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 created new head
-4:2d2f9a22c82b 2:0a3ab4856510 
-3:96ab80c60897 1:5cd961e4045d 2:0a3ab4856510 
-2:0a3ab4856510 0:2665aaee66e9 
+4:2263c1be0967 2:0f2ff26688b9 
+3:3ffa6b9e35f0 1:5cd961e4045d 2:0f2ff26688b9 
+2:0f2ff26688b9 0:2665aaee66e9 
 1:5cd961e4045d 
 0:2665aaee66e9 
 % this should use bar@rev2 as the ancestor
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 0a3ab4856510 local 2d2f9a22c82b+ remote 96ab80c60897
+ ancestor 0f2ff26688b9 local 2263c1be0967+ remote 3ffa6b9e35f0
  bar: versions differ -> m
 preserving bar for resolve of bar
 update: bar 1/1 files (100.00%)
 picked tool 'internal:merge' for bar (binary False symlink False)
 merging bar
-my bar@2d2f9a22c82b+ other bar@96ab80c60897 ancestor bar@0a3ab4856510
+my bar@2263c1be0967+ other bar@3ffa6b9e35f0 ancestor bar@0f2ff26688b9
  premerge successful
 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
@@ -90,7 +90,7 @@
 line1
 line2
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      77      0       2 da78c0659611 000000000000 000000000000
-     1        77      76      0       3 4b358025380b 000000000000 da78c0659611
-     2       153       7      2       4 4defe5eec418 da78c0659611 000000000000
-     3       160      13      3       5 4663501da27b 4defe5eec418 4b358025380b
+     0         0      77      0       2 d35118874825 000000000000 000000000000
+     1        77      76      0       3 5345f5ab8abd 000000000000 d35118874825
+     2       153       7      2       4 ff4b45017382 d35118874825 000000000000
+     3       160      13      3       5 3701b4893544 ff4b45017382 5345f5ab8abd
--- a/tests/test-merge10.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-merge10.out	Wed Feb 17 23:10:22 2010 +0100
@@ -12,7 +12,7 @@
 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 M testdir/subdir/a
-diff -r d02b3fc32762 testdir/subdir/a
+diff -r f7459795031e testdir/subdir/a
 --- a/testdir/subdir/a
 +++ b/testdir/subdir/a
 @@ -1,1 +1,1 @@
--- a/tests/test-mq-git.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-mq-git.out	Wed Feb 17 23:10:22 2010 +0100
@@ -18,7 +18,7 @@
 copy to b
 % git=auto: git patch when using --git
 # HG changeset patch
-# Parent 2962f232b49d41ebc26c591ec8d556724be213ab
+# Parent 99586d5f048c399e20f81cee41fbb3809c0e735d
 # Date 0 0
 
 diff --git a/regular b/regular
@@ -29,10 +29,10 @@
 +regular
 % git=auto: regular patch after qrefresh without --git
 # HG changeset patch
-# Parent 2962f232b49d41ebc26c591ec8d556724be213ab
+# Parent 99586d5f048c399e20f81cee41fbb3809c0e735d
 # Date 0 0
 
-diff -r 2962f232b49d regular
+diff -r 99586d5f048c regular
 --- /dev/null
 +++ b/regular
 @@ -0,0 +1,1 @@
@@ -88,7 +88,7 @@
 # Parent ef8dafc9fa4caff80f6e243eb0171bcd60c455b4
 # Date 0 0
 
-diff -r ef8dafc9fa4c -r 110cde11d262 b
+diff -r ef8dafc9fa4c -r a70404f79ba3 b
 --- /dev/null
 +++ b/b
 @@ -0,0 +1,1 @@
--- a/tests/test-push-r.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-push-r.out	Wed Feb 17 23:10:22 2010 +0100
@@ -7,9 +7,9 @@
      2         8       7      2       2 4c982badb186 125144f7e028 000000000000
      3        15       9      3       3 19b1fc555737 4c982badb186 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       7 905359268f77 000000000000 000000000000
+     0         0      75      0       7 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       8 905359268f77 000000000000 000000000000
+     0         0      75      0       8 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       8      0       6 12ab3bcc5ea4 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
@@ -18,8 +18,8 @@
      2        96      48      2       2 626a32663c2f 8b89697eba2c 000000000000
      3       144      48      3       3 f54c32f13478 626a32663c2f 000000000000
      4       192      58      3       6 de68e904d169 626a32663c2f 000000000000
-     5       250      68      3       7 3b45cc2ab868 de68e904d169 000000000000
-     6       318      54      6       8 24d86153a002 f54c32f13478 000000000000
+     5       250      68      3       7 09bb521d218d de68e904d169 000000000000
+     6       318      54      6       8 1fde233dfb0f f54c32f13478 000000000000
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-record.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-record.out	Wed Feb 17 23:10:22 2010 +0100
@@ -74,7 +74,7 @@
 rename from empty-rw
 rename to empty-rename
 examine changes to 'empty-rw' and 'empty-rename'? [Ynsfdaq?] 
-changeset:   1:df251d174da3
+changeset:   1:d695e8dcb197
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:01 1970 +0000
@@ -86,7 +86,7 @@
 copy from empty-rename
 copy to empty-copy
 examine changes to 'empty-rename' and 'empty-copy'? [Ynsfdaq?] 
-changeset:   2:b63ea3939f8d
+changeset:   2:1d4b90bea524
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:02 1970 +0000
@@ -97,7 +97,7 @@
 diff --git a/empty-copy b/empty-copy
 deleted file mode 100644
 examine changes to 'empty-copy'? [Ynsfdaq?] 
-changeset:   3:a2546574bce9
+changeset:   3:b39a238f01a1
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:03 1970 +0000
@@ -110,13 +110,13 @@
 new file mode 100644
 this is a binary file
 examine changes to 'tip.bundle'? [Ynsfdaq?] 
-changeset:   4:9e998a545a8b
+changeset:   4:ad816da3711e
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:04 1970 +0000
 summary:     binary
 
-diff -r a2546574bce9 -r 9e998a545a8b tip.bundle
+diff -r b39a238f01a1 -r ad816da3711e tip.bundle
 Binary file tip.bundle has changed
 
 % change binary file
@@ -124,13 +124,13 @@
 diff --git a/tip.bundle b/tip.bundle
 this modifies a binary file (all or nothing)
 examine changes to 'tip.bundle'? [Ynsfdaq?] 
-changeset:   5:93d05561507d
+changeset:   5:dccd6f3eb485
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:05 1970 +0000
 summary:     binary-change
 
-diff -r 9e998a545a8b -r 93d05561507d tip.bundle
+diff -r ad816da3711e -r dccd6f3eb485 tip.bundle
 Binary file tip.bundle has changed
 
 % rename and change binary file
@@ -140,28 +140,28 @@
 rename to top.bundle
 this modifies a binary file (all or nothing)
 examine changes to 'tip.bundle' and 'top.bundle'? [Ynsfdaq?] 
-changeset:   6:699cc1bea9aa
+changeset:   6:7fa44105f5b3
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:06 1970 +0000
 summary:     binary-change-rename
 
-diff -r 93d05561507d -r 699cc1bea9aa tip.bundle
+diff -r dccd6f3eb485 -r 7fa44105f5b3 tip.bundle
 Binary file tip.bundle has changed
-diff -r 93d05561507d -r 699cc1bea9aa top.bundle
+diff -r dccd6f3eb485 -r 7fa44105f5b3 top.bundle
 Binary file top.bundle has changed
 
 % add plain file
 diff --git a/plain b/plain
 new file mode 100644
 examine changes to 'plain'? [Ynsfdaq?] 
-changeset:   7:118ed744216b
+changeset:   7:11fb457c1be4
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:07 1970 +0000
 summary:     plain
 
-diff -r 699cc1bea9aa -r 118ed744216b plain
+diff -r 7fa44105f5b3 -r 11fb457c1be4 plain
 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
 +++ b/plain	Thu Jan 01 00:00:07 1970 +0000
 @@ -0,0 +1,10 @@
@@ -191,7 +191,7 @@
  9
  10
  11
-+cf81a2760718a74d44c0c2eecb72f659e63a69c5
++7264f99c5f5ff3261504828afa4fb4d406c3af54
 \ No newline at end of file
 record this change to 'plain'? [Ynsfdaq?] % modify end of plain file, add EOL
 diff --git a/plain b/plain
@@ -200,9 +200,9 @@
  9
  10
  11
--cf81a2760718a74d44c0c2eecb72f659e63a69c5
+-7264f99c5f5ff3261504828afa4fb4d406c3af54
 \ No newline at end of file
-+cf81a2760718a74d44c0c2eecb72f659e63a69c5
++7264f99c5f5ff3261504828afa4fb4d406c3af54
 record this change to 'plain'? [Ynsfdaq?] % modify beginning, trim end, record both
 diff --git a/plain b/plain
 2 hunks, 4 lines changed
@@ -217,15 +217,15 @@
  9
  10
 -11
--cf81a2760718a74d44c0c2eecb72f659e63a69c5
+-7264f99c5f5ff3261504828afa4fb4d406c3af54
 record change 2/2 to 'plain'? [Ynsfdaq?] 
-changeset:   11:d09ab1967dab
+changeset:   11:efca65c9b09e
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:10 1970 +0000
 summary:     begin-and-end
 
-diff -r e2ecd9b0b78d -r d09ab1967dab plain
+diff -r cd07d48e8cbe -r efca65c9b09e plain
 --- a/plain	Thu Jan 01 00:00:10 1970 +0000
 +++ b/plain	Thu Jan 01 00:00:10 1970 +0000
 @@ -1,4 +1,4 @@
@@ -239,7 +239,7 @@
  9
  10
 -11
--cf81a2760718a74d44c0c2eecb72f659e63a69c5
+-7264f99c5f5ff3261504828afa4fb4d406c3af54
 
 % trim beginning, modify end
 % record end
@@ -265,13 +265,13 @@
 -10
 +10.new
 record change 2/2 to 'plain'? [Ynsfdaq?] 
-changeset:   12:44516c9708ae
+changeset:   12:7d1e66983c15
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:11 1970 +0000
 summary:     end-only
 
-diff -r d09ab1967dab -r 44516c9708ae plain
+diff -r efca65c9b09e -r 7d1e66983c15 plain
 --- a/plain	Thu Jan 01 00:00:10 1970 +0000
 +++ b/plain	Thu Jan 01 00:00:11 1970 +0000
 @@ -7,4 +7,4 @@
@@ -292,13 +292,13 @@
  5
  6
 record this change to 'plain'? [Ynsfdaq?] 
-changeset:   13:3ebbace64a8d
+changeset:   13:a09fc62a0e61
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:12 1970 +0000
 summary:     begin-only
 
-diff -r 44516c9708ae -r 3ebbace64a8d plain
+diff -r 7d1e66983c15 -r a09fc62a0e61 plain
 --- a/plain	Thu Jan 01 00:00:11 1970 +0000
 +++ b/plain	Thu Jan 01 00:00:12 1970 +0000
 @@ -1,6 +1,3 @@
@@ -358,13 +358,13 @@
 +10
 +11
 record change 3/3 to 'plain'? [Ynsfdaq?] 
-changeset:   15:c1c639d8b268
+changeset:   15:7d137997f3a6
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:14 1970 +0000
 summary:     middle-only
 
-diff -r efc0dad7bd9f -r c1c639d8b268 plain
+diff -r c0b8e5fb0be6 -r 7d137997f3a6 plain
 --- a/plain	Thu Jan 01 00:00:13 1970 +0000
 +++ b/plain	Thu Jan 01 00:00:14 1970 +0000
 @@ -1,5 +1,10 @@
@@ -389,13 +389,13 @@
 +10
 +11
 record this change to 'plain'? [Ynsfdaq?] 
-changeset:   16:80b74bbc7808
+changeset:   16:4959e3ff13eb
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:15 1970 +0000
 summary:     end-only
 
-diff -r c1c639d8b268 -r 80b74bbc7808 plain
+diff -r 7d137997f3a6 -r 4959e3ff13eb plain
 --- a/plain	Thu Jan 01 00:00:14 1970 +0000
 +++ b/plain	Thu Jan 01 00:00:15 1970 +0000
 @@ -9,3 +9,5 @@
@@ -412,13 +412,13 @@
  a
 +a
 record this change to 'subdir/a'? [Ynsfdaq?] 
-changeset:   18:33ff5c4fb017
+changeset:   18:40698cd490b2
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:16 1970 +0000
 summary:     subdir-change
 
-diff -r aecf2b2ea83c -r 33ff5c4fb017 subdir/a
+diff -r 661eacdc08b9 -r 40698cd490b2 subdir/a
 --- a/subdir/a	Thu Jan 01 00:00:16 1970 +0000
 +++ b/subdir/a	Thu Jan 01 00:00:16 1970 +0000
 @@ -1,1 +1,2 @@
@@ -461,13 +461,13 @@
 examine changes to 'subdir/f1'? [Ynsfdaq?] diff --git a/subdir/f2 b/subdir/f2
 1 hunks, 1 lines changed
 examine changes to 'subdir/f2'? [Ynsfdaq?] 
-changeset:   20:094183e04b7c
+changeset:   20:d2d8c25276a8
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:18 1970 +0000
 summary:     x
 
-diff -r f9e855cd9374 -r 094183e04b7c subdir/f2
+diff -r 25eb2a7694fb -r d2d8c25276a8 subdir/f2
 --- a/subdir/f2	Thu Jan 01 00:00:17 1970 +0000
 +++ b/subdir/f2	Thu Jan 01 00:00:18 1970 +0000
 @@ -1,1 +1,2 @@
@@ -478,13 +478,13 @@
 diff --git a/subdir/f1 b/subdir/f1
 1 hunks, 1 lines changed
 examine changes to 'subdir/f1'? [Ynsfdaq?] 
-changeset:   21:38164785b0ef
+changeset:   21:1013f51ce32f
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:19 1970 +0000
 summary:     y
 
-diff -r 094183e04b7c -r 38164785b0ef subdir/f1
+diff -r d2d8c25276a8 -r 1013f51ce32f subdir/f1
 --- a/subdir/f1	Thu Jan 01 00:00:18 1970 +0000
 +++ b/subdir/f1	Thu Jan 01 00:00:19 1970 +0000
 @@ -1,1 +1,2 @@
@@ -501,7 +501,7 @@
  a
 +a
 record this change to 'subdir/f1'? [Ynsfdaq?] 
-changeset:   22:a891589cb933
+changeset:   22:5df857735621
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:20 1970 +0000
@@ -526,7 +526,7 @@
  a
 +b
 record this change to 'subdir/f1'? [Ynsfdaq?] 
-changeset:   23:befa0dae6201
+changeset:   23:a4ae36a78715
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:21 1970 +0000
@@ -552,7 +552,7 @@
  b
 +c
 record this change to 'subdir/f1'? [Ynsfdaq?] 
-changeset:   24:8fd83ff53ce6
+changeset:   24:1460f6e47966
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:22 1970 +0000
@@ -578,13 +578,13 @@
  c
 +d
 record this change to 'subdir/f1'? [Ynsfdaq?] 
-changeset:   25:49b3838dc9e7
+changeset:   25:5bacc1f6e9cf
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:23 1970 +0000
 summary:     w1
 
-diff -r 8fd83ff53ce6 -r 49b3838dc9e7 subdir/f1
+diff -r 1460f6e47966 -r 5bacc1f6e9cf subdir/f1
 --- a/subdir/f1	Thu Jan 01 00:00:22 1970 +0000
 +++ b/subdir/f1	Thu Jan 01 00:00:23 1970 +0000
 @@ -3,3 +3,4 @@
--- a/tests/test-rename-dir-merge.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-rename-dir-merge.out	Wed Feb 17 23:10:22 2010 +0100
@@ -21,7 +21,7 @@
   file a/d -> b/d
 resolving manifests
  overwrite None partial False
- ancestor f9b20c0d4c51 local ce36d17b18fb+ remote 55119e611c80
+ 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
@@ -68,7 +68,7 @@
   file a/c -> b/c
 resolving manifests
  overwrite None partial False
- ancestor f9b20c0d4c51 local 55119e611c80+ remote ce36d17b18fb
+ ancestor f9b20c0d4c51 local 397f8b00a740+ remote ce36d17b18fb
  None: local renamed directory to b/c -> d
 update:None 1/1 files (100.00%)
 getting a/c to b/c
--- a/tests/test-rename-merge1.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-rename-merge1.out	Wed Feb 17 23:10:22 2010 +0100
@@ -16,7 +16,7 @@
  a2: divergent renames -> dr
 resolving manifests
  overwrite None partial False
- ancestor af1939970a1c local f26ec4fc3fa3+ remote 8e765a822af2
+ ancestor af1939970a1c local 044f8520aeeb+ remote 85c198ef2f6c
  a: remote moved to b -> m
  b2: remote created -> g
 preserving a for resolve of b
@@ -24,7 +24,7 @@
 update: a 1/3 files (33.33%)
 picked tool 'internal:merge' for b (binary False symlink False)
 merging a and b to b
-my b@f26ec4fc3fa3+ other b@8e765a822af2 ancestor a@af1939970a1c
+my b@044f8520aeeb+ other b@85c198ef2f6c ancestor a@af1939970a1c
  premerge successful
 update: a2 2/3 files (66.67%)
 warning: detected divergent renames of a2 to:
@@ -41,6 +41,6 @@
 C c2
 blahblah
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      67      0       1 dc51707dfc98 000000000000 000000000000
-     1        67      72      1       3 b2494a44f0a9 000000000000 dc51707dfc98
+     0         0      67      0       1 57eacc201a7f 000000000000 000000000000
+     1        67      72      1       3 4727ba907962 000000000000 57eacc201a7f
 b renamed from a:dd03b83622e78778b403775d0d074b9ac7387a66
--- a/tests/test-rename-merge2.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-rename-merge2.out	Wed Feb 17 23:10:22 2010 +0100
@@ -10,7 +10,7 @@
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local e300d1c794ec+ remote 735846fee2d7
+ ancestor 924404dff337 local e300d1c794ec+ remote 4ce40f5aca24
  rev: versions differ -> m
  a: remote copied to b -> m
 preserving a for resolve of b
@@ -18,12 +18,12 @@
 update: a 1/2 files (50.00%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging a and b to b
-my b@e300d1c794ec+ other b@735846fee2d7 ancestor a@924404dff337
+my b@e300d1c794ec+ other b@4ce40f5aca24 ancestor a@924404dff337
  premerge successful
 update: rev 2/2 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@e300d1c794ec+ other rev@735846fee2d7 ancestor rev@924404dff337
+my rev@e300d1c794ec+ other rev@4ce40f5aca24 ancestor rev@924404dff337
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
@@ -44,7 +44,7 @@
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ac809aeed39a+ remote f4db7e329e71
+ ancestor 924404dff337 local 86a2aa42fc76+ remote f4db7e329e71
  a: remote is newer -> g
  b: local copied/moved to a -> m
  rev: versions differ -> m
@@ -55,12 +55,12 @@
 update: b 2/3 files (66.67%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b and a to b
-my b@ac809aeed39a+ other a@f4db7e329e71 ancestor a@924404dff337
+my b@86a2aa42fc76+ other a@f4db7e329e71 ancestor a@924404dff337
  premerge successful
 update: rev 3/3 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ac809aeed39a+ other rev@f4db7e329e71 ancestor rev@924404dff337
+my rev@86a2aa42fc76+ other rev@f4db7e329e71 ancestor rev@924404dff337
 1 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
@@ -81,7 +81,7 @@
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local e300d1c794ec+ remote e03727d2d66b
+ ancestor 924404dff337 local e300d1c794ec+ remote bdb19105162a
  rev: versions differ -> m
  a: remote moved to b -> m
 preserving a for resolve of b
@@ -90,12 +90,12 @@
 update: a 1/2 files (50.00%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging a and b to b
-my b@e300d1c794ec+ other b@e03727d2d66b ancestor a@924404dff337
+my b@e300d1c794ec+ other b@bdb19105162a ancestor a@924404dff337
  premerge successful
 update: rev 2/2 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@e300d1c794ec+ other rev@e03727d2d66b ancestor rev@924404dff337
+my rev@e300d1c794ec+ other rev@bdb19105162a ancestor rev@924404dff337
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
@@ -115,7 +115,7 @@
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ecf3cb2a4219+ remote f4db7e329e71
+ ancestor 924404dff337 local 02963e448370+ remote f4db7e329e71
  b: local copied/moved to a -> m
  rev: versions differ -> m
 preserving b for resolve of b
@@ -123,12 +123,12 @@
 update: b 1/2 files (50.00%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b and a to b
-my b@ecf3cb2a4219+ other a@f4db7e329e71 ancestor a@924404dff337
+my b@02963e448370+ other a@f4db7e329e71 ancestor a@924404dff337
  premerge successful
 update: rev 2/2 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ecf3cb2a4219+ other rev@f4db7e329e71 ancestor rev@924404dff337
+my rev@02963e448370+ other rev@f4db7e329e71 ancestor rev@924404dff337
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
@@ -148,7 +148,7 @@
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local 94b33a1b7f2d+ remote 735846fee2d7
+ ancestor 924404dff337 local 94b33a1b7f2d+ remote 4ce40f5aca24
  rev: versions differ -> m
  b: remote created -> g
 preserving rev for resolve of rev
@@ -157,7 +157,7 @@
 update: rev 2/2 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@94b33a1b7f2d+ other rev@735846fee2d7 ancestor rev@924404dff337
+my rev@94b33a1b7f2d+ other rev@4ce40f5aca24 ancestor rev@924404dff337
 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
@@ -177,13 +177,13 @@
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ac809aeed39a+ remote 97c705ade336
+ ancestor 924404dff337 local 86a2aa42fc76+ remote 97c705ade336
  rev: versions differ -> m
 preserving rev for resolve of rev
 update: rev 1/1 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ac809aeed39a+ other rev@97c705ade336 ancestor rev@924404dff337
+my rev@86a2aa42fc76+ other rev@97c705ade336 ancestor rev@924404dff337
 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
@@ -203,7 +203,7 @@
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local 94b33a1b7f2d+ remote e03727d2d66b
+ ancestor 924404dff337 local 94b33a1b7f2d+ remote bdb19105162a
  a: other deleted -> r
  rev: versions differ -> m
  b: remote created -> g
@@ -215,7 +215,7 @@
 update: rev 3/3 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@94b33a1b7f2d+ other rev@e03727d2d66b ancestor rev@924404dff337
+my rev@94b33a1b7f2d+ other rev@bdb19105162a ancestor rev@924404dff337
 1 files updated, 1 files merged, 1 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
@@ -234,13 +234,13 @@
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ecf3cb2a4219+ remote 97c705ade336
+ ancestor 924404dff337 local 02963e448370+ remote 97c705ade336
  rev: versions differ -> m
 preserving rev for resolve of rev
 update: rev 1/1 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ecf3cb2a4219+ other rev@97c705ade336 ancestor rev@924404dff337
+my rev@02963e448370+ other rev@97c705ade336 ancestor rev@924404dff337
 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
@@ -254,7 +254,7 @@
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ec03c2ca8642+ remote 79cc6877a3b7
+ ancestor 924404dff337 local 62e7bf090eba+ remote 49b6d8032493
  b: versions differ -> m
  rev: versions differ -> m
 preserving b for resolve of b
@@ -262,11 +262,11 @@
 update: b 1/2 files (50.00%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b
-my b@ec03c2ca8642+ other b@79cc6877a3b7 ancestor a@924404dff337
+my b@62e7bf090eba+ other b@49b6d8032493 ancestor a@924404dff337
 update: rev 2/2 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ec03c2ca8642+ other rev@79cc6877a3b7 ancestor rev@924404dff337
+my rev@62e7bf090eba+ other rev@49b6d8032493 ancestor rev@924404dff337
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
@@ -289,7 +289,7 @@
  a: divergent renames -> dr
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ecf3cb2a4219+ remote e6abcc1a30c2
+ ancestor 924404dff337 local 02963e448370+ remote fe905ef2c33e
  rev: versions differ -> m
  c: remote created -> g
 preserving rev for resolve of rev
@@ -302,7 +302,7 @@
 update: rev 3/3 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ecf3cb2a4219+ other rev@e6abcc1a30c2 ancestor rev@924404dff337
+my rev@02963e448370+ other rev@fe905ef2c33e ancestor rev@924404dff337
 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
@@ -317,7 +317,7 @@
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ac809aeed39a+ remote af30c7647fc7
+ ancestor 924404dff337 local 86a2aa42fc76+ remote af30c7647fc7
  b: versions differ -> m
  rev: versions differ -> m
 preserving b for resolve of b
@@ -325,11 +325,11 @@
 update: b 1/2 files (50.00%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b
-my b@ac809aeed39a+ other b@af30c7647fc7 ancestor b@000000000000
+my b@86a2aa42fc76+ other b@af30c7647fc7 ancestor b@000000000000
 update: rev 2/2 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ac809aeed39a+ other rev@af30c7647fc7 ancestor rev@924404dff337
+my rev@86a2aa42fc76+ other rev@af30c7647fc7 ancestor rev@924404dff337
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
@@ -344,7 +344,7 @@
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local 59318016310c+ remote e03727d2d66b
+ ancestor 924404dff337 local 59318016310c+ remote bdb19105162a
  a: other deleted -> r
  b: versions differ -> m
  rev: versions differ -> m
@@ -355,11 +355,11 @@
 update: b 2/3 files (66.67%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b
-my b@59318016310c+ other b@e03727d2d66b ancestor b@000000000000
+my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000
 update: rev 3/3 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@59318016310c+ other rev@e03727d2d66b ancestor rev@924404dff337
+my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337
 0 files updated, 2 files merged, 1 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
@@ -373,7 +373,7 @@
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ac809aeed39a+ remote 8dbce441892a
+ ancestor 924404dff337 local 86a2aa42fc76+ remote 8dbce441892a
  a: remote is newer -> g
  b: versions differ -> m
  rev: versions differ -> m
@@ -384,11 +384,11 @@
 update: b 2/3 files (66.67%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b
-my b@ac809aeed39a+ other b@8dbce441892a ancestor b@000000000000
+my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000
 update: rev 3/3 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ac809aeed39a+ other rev@8dbce441892a ancestor rev@924404dff337
+my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
 1 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
@@ -403,7 +403,7 @@
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local 59318016310c+ remote e03727d2d66b
+ ancestor 924404dff337 local 59318016310c+ remote bdb19105162a
  a: other deleted -> r
  b: versions differ -> m
  rev: versions differ -> m
@@ -414,11 +414,11 @@
 update: b 2/3 files (66.67%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b
-my b@59318016310c+ other b@e03727d2d66b ancestor b@000000000000
+my b@59318016310c+ other b@bdb19105162a ancestor b@000000000000
 update: rev 3/3 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@59318016310c+ other rev@e03727d2d66b ancestor rev@924404dff337
+my rev@59318016310c+ other rev@bdb19105162a ancestor rev@924404dff337
 0 files updated, 2 files merged, 1 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
@@ -432,7 +432,7 @@
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ac809aeed39a+ remote 8dbce441892a
+ ancestor 924404dff337 local 86a2aa42fc76+ remote 8dbce441892a
  a: remote is newer -> g
  b: versions differ -> m
  rev: versions differ -> m
@@ -443,11 +443,11 @@
 update: b 2/3 files (66.67%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b
-my b@ac809aeed39a+ other b@8dbce441892a ancestor b@000000000000
+my b@86a2aa42fc76+ other b@8dbce441892a ancestor b@000000000000
 update: rev 3/3 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ac809aeed39a+ other rev@8dbce441892a ancestor rev@924404dff337
+my rev@86a2aa42fc76+ other rev@8dbce441892a ancestor rev@924404dff337
 1 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
@@ -462,7 +462,7 @@
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local 0b76e65c8289+ remote 735846fee2d7
+ ancestor 924404dff337 local 0b76e65c8289+ remote 4ce40f5aca24
  b: versions differ -> m
  rev: versions differ -> m
 preserving b for resolve of b
@@ -470,11 +470,11 @@
 update: b 1/2 files (50.00%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b
-my b@0b76e65c8289+ other b@735846fee2d7 ancestor b@000000000000
+my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor b@000000000000
 update: rev 2/2 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@0b76e65c8289+ other rev@735846fee2d7 ancestor rev@924404dff337
+my rev@0b76e65c8289+ other rev@4ce40f5aca24 ancestor rev@924404dff337
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
@@ -489,7 +489,7 @@
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ecf3cb2a4219+ remote 8dbce441892a
+ ancestor 924404dff337 local 02963e448370+ remote 8dbce441892a
  b: versions differ -> m
  rev: versions differ -> m
 remote changed a which local deleted
@@ -502,11 +502,11 @@
 update: b 2/3 files (66.67%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b
-my b@ecf3cb2a4219+ other b@8dbce441892a ancestor b@000000000000
+my b@02963e448370+ other b@8dbce441892a ancestor b@000000000000
 update: rev 3/3 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ecf3cb2a4219+ other rev@8dbce441892a ancestor rev@924404dff337
+my rev@02963e448370+ other rev@8dbce441892a ancestor rev@924404dff337
 1 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
@@ -521,7 +521,7 @@
   searching for copies back to rev 1
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local 0b76e65c8289+ remote e03727d2d66b
+ ancestor 924404dff337 local 0b76e65c8289+ remote bdb19105162a
  local changed a which remote deleted
 use (c)hanged version or (d)elete? c
  a: prompt keep -> a
@@ -533,11 +533,11 @@
 update: b 2/3 files (66.67%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b
-my b@0b76e65c8289+ other b@e03727d2d66b ancestor b@000000000000
+my b@0b76e65c8289+ other b@bdb19105162a ancestor b@000000000000
 update: rev 3/3 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@0b76e65c8289+ other rev@e03727d2d66b ancestor rev@924404dff337
+my rev@0b76e65c8289+ other rev@bdb19105162a ancestor rev@924404dff337
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
@@ -557,7 +557,7 @@
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local e300d1c794ec+ remote 79cc6877a3b7
+ ancestor 924404dff337 local e300d1c794ec+ remote 49b6d8032493
  rev: versions differ -> m
  a: remote moved to b -> m
 preserving a for resolve of b
@@ -566,11 +566,11 @@
 update: a 1/2 files (50.00%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging a and b to b
-my b@e300d1c794ec+ other b@79cc6877a3b7 ancestor a@924404dff337
+my b@e300d1c794ec+ other b@49b6d8032493 ancestor a@924404dff337
 update: rev 2/2 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@e300d1c794ec+ other rev@79cc6877a3b7 ancestor rev@924404dff337
+my rev@e300d1c794ec+ other rev@49b6d8032493 ancestor rev@924404dff337
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
@@ -590,7 +590,7 @@
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ec03c2ca8642+ remote f4db7e329e71
+ ancestor 924404dff337 local 62e7bf090eba+ remote f4db7e329e71
  b: local copied/moved to a -> m
  rev: versions differ -> m
 preserving b for resolve of b
@@ -598,11 +598,11 @@
 update: b 1/2 files (50.00%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b and a to b
-my b@ec03c2ca8642+ other a@f4db7e329e71 ancestor a@924404dff337
+my b@62e7bf090eba+ other a@f4db7e329e71 ancestor a@924404dff337
 update: rev 2/2 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ec03c2ca8642+ other rev@f4db7e329e71 ancestor rev@924404dff337
+my rev@62e7bf090eba+ other rev@f4db7e329e71 ancestor rev@924404dff337
 0 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
@@ -624,7 +624,7 @@
   checking for directory renames
 resolving manifests
  overwrite None partial False
- ancestor 924404dff337 local ecf3cb2a4219+ remote 2b958612230f
+ ancestor 924404dff337 local 02963e448370+ remote 2b958612230f
  b: local copied/moved to a -> m
  rev: versions differ -> m
  c: remote created -> g
@@ -633,14 +633,14 @@
 update: b 1/3 files (33.33%)
 picked tool 'python ../merge' for b (binary False symlink False)
 merging b and a to b
-my b@ecf3cb2a4219+ other a@2b958612230f ancestor a@924404dff337
+my b@02963e448370+ other a@2b958612230f ancestor a@924404dff337
  premerge successful
 update: c 2/3 files (66.67%)
 getting c
 update: rev 3/3 files (100.00%)
 picked tool 'python ../merge' for rev (binary False symlink False)
 merging rev
-my rev@ecf3cb2a4219+ other rev@2b958612230f ancestor rev@924404dff337
+my rev@02963e448370+ other rev@2b958612230f ancestor rev@924404dff337
 1 files updated, 2 files merged, 0 files removed, 0 files unresolved
 (branch merge, don't forget to commit)
 --------------
--- a/tests/test-ssh-clone-r.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-ssh-clone-r.out	Wed Feb 17 23:10:22 2010 +0100
@@ -8,9 +8,9 @@
      2         8       7      2       2 4c982badb186 125144f7e028 000000000000
      3        15       9      3       3 19b1fc555737 4c982badb186 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       7 905359268f77 000000000000 000000000000
+     0         0      75      0       7 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
-     0         0      75      0       8 905359268f77 000000000000 000000000000
+     0         0      75      0       8 2565f3199a74 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
      0         0       8      0       6 12ab3bcc5ea4 000000000000 000000000000
    rev    offset  length   base linkrev nodeid       p1           p2
@@ -19,8 +19,8 @@
      2        96      48      2       2 626a32663c2f 8b89697eba2c 000000000000
      3       144      48      3       3 f54c32f13478 626a32663c2f 000000000000
      4       192      58      3       6 de68e904d169 626a32663c2f 000000000000
-     5       250      68      3       7 3b45cc2ab868 de68e904d169 000000000000
-     6       318      54      6       8 24d86153a002 f54c32f13478 000000000000
+     5       250      68      3       7 09bb521d218d de68e904d169 000000000000
+     6       318      54      6       8 1fde233dfb0f f54c32f13478 000000000000
 checking changesets
 checking manifests
 crosschecking files in changesets and manifests
--- a/tests/test-win32text.out	Mon Feb 15 00:17:18 2010 +0100
+++ b/tests/test-win32text.out	Wed Feb 17 23:10:22 2010 +0100
@@ -23,7 +23,7 @@
 adding file changes
 added 2 changesets with 2 changes to 2 files
 Attempt to commit or push text file(s) using CRLF line endings
-in b94ebd309a6d: g
+in bc2d09796734: g
 in b1aa5cde7ff4: f
 
 To prevent this mistake in your local repository,
@@ -56,14 +56,14 @@
 
 and now for something completely different
 Attempt to commit or push text file(s) using CRLF line endings
-in cefdb8d0b741: d/f2
+in 053ba1a3035a: d/f2
 transaction abort!
 rollback completed
 abort: pretxncommit.crlf hook failed
 forgetting d/f2
 
 
-changeset:   5:d4ea9ae21be3
+changeset:   5:f0b1c8d75fce
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
@@ -72,7 +72,7 @@
 5
 
 
-changeset:   4:6ba409927d51
+changeset:   4:77796dbcd4ad
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 files:       f
@@ -80,7 +80,7 @@
 4
 
 
-changeset:   3:788a4e595187
+changeset:   3:7c1b5430b350
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 files:       f g
@@ -88,7 +88,7 @@
 2.3
 
 
-changeset:   2:b94ebd309a6d
+changeset:   2:bc2d09796734
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 files:       g
@@ -120,7 +120,7 @@
 adding dupe/b
 adding dupe/c
 adding dupe/d
-changeset:   8:7654104f33c3
+changeset:   8:67ac5962ab43
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
@@ -129,7 +129,7 @@
 d
 
 
-changeset:   7:9be4c2808cc9
+changeset:   7:68c127d1834e
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 files:       b c
@@ -137,7 +137,7 @@
 b/c
 
 
-changeset:   6:aa4367ed325a
+changeset:   6:adbf8bf7f31d
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 files:       a
@@ -145,7 +145,7 @@
 a
 
 
-changeset:   5:d4ea9ae21be3
+changeset:   5:f0b1c8d75fce
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 files:       bin
@@ -153,7 +153,7 @@
 5
 
 
-changeset:   4:6ba409927d51
+changeset:   4:77796dbcd4ad
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 files:       f
@@ -161,7 +161,7 @@
 4
 
 
-changeset:   3:788a4e595187
+changeset:   3:7c1b5430b350
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 files:       f g
@@ -169,7 +169,7 @@
 2.3
 
 
-changeset:   2:b94ebd309a6d
+changeset:   2:bc2d09796734
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 files:       g
@@ -201,9 +201,9 @@
 adding file changes
 added 3 changesets with 4 changes to 4 files
 Attempt to commit or push text file(s) using CRLF line endings
-in 7654104f33c3: d
-in 9be4c2808cc9: b
-in 9be4c2808cc9: c
+in 67ac5962ab43: d
+in 68c127d1834e: b
+in 68c127d1834e: c
 
 To prevent this mistake in your local repository,
 add to Mercurial.ini or .hg/hgrc:
@@ -223,7 +223,7 @@
 rollback completed
 abort: pretxnchangegroup.crlf hook failed
 
-changeset:   5:d4ea9ae21be3
+changeset:   5:f0b1c8d75fce
 tag:         tip
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
@@ -232,7 +232,7 @@
 5
 
 
-changeset:   4:6ba409927d51
+changeset:   4:77796dbcd4ad
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 files:       f
@@ -240,7 +240,7 @@
 4
 
 
-changeset:   3:788a4e595187
+changeset:   3:7c1b5430b350
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 files:       f g
@@ -248,7 +248,7 @@
 2.3
 
 
-changeset:   2:b94ebd309a6d
+changeset:   2:bc2d09796734
 user:        test
 date:        Thu Jan 01 00:00:00 1970 +0000
 files:       g