[PATCH RFC] tests: require regexes in unified tests to be marked with " (re)"

Adrian Buehlmann adrian at cadifra.com
Tue Sep 21 16:52:44 CDT 2010


On 21.09.2010 20:36, Brodie Rao wrote:
> # HG changeset patch
> # User Brodie Rao <brodie at bitheap.org>
> # Date 1285094123 18000
> # Node ID 2ba3c74f410285bb2da18f6f5fa6ea3b863b8c94
> # Parent  dbca8f134f00fb10f7154b2f6cd9b8188095b1de
> tests: require regexes in unified tests to be marked with " (re)"
> 
> Consider this test:
> 
>   $ hg glog --template '{rev}:{node|short} "{desc}"\n'
>   @  2:20c4f79fd7ac "3"
>   |
>   | o  1:38f24201dcab "2"
>   |/
>   o  0:2a18120dc1c9 "1"
> 
> Because each line beginning with "|" can be compiled as a regular
> expression (equivalent to ".*|"), they will match any output.
> 
> By requiring regular expressions to be marked with " (re)", we reduce
> the potential for false negatives.
> 
> To match a line ending in " (re)", the line can be suffixed with "
> (re) (plain)". " (plain)" has no effect anywhere else.

I don't really like that. You justify this (re) syntax with an example
(graphlog output) that won't work anymore if combined with regular
expressions (unless you put a \ before every glog |).

Can't we just solve the graphlog | problem instead?

The only problematic character is '|' and near as I can tell it hasn't
been used anywhere in it's regex meaning in the tests so far.

Can't we simply declare that if a line starts with a '|', then '|' won't
be interpreted as regex '|' anywhere for the rest of that line?

(two other inline comments follow below)

> diff --git a/tests/run-tests.py b/tests/run-tests.py
> --- a/tests/run-tests.py
> +++ b/tests/run-tests.py
> @@ -503,9 +503,6 @@ def tsttest(test, options):
>  
>      def rematch(el, l):
>          try:
> -            # hack to deal with graphlog, which looks like bogus regexes
> -            if el.startswith('|'):
> -                el = '\\' + el
>              return re.match(el, l)
>          except re.error:
>              # el is an invalid regex
> @@ -528,12 +525,12 @@ def tsttest(test, options):
>              if pos in expected and expected[pos]:
>                  el = expected[pos].pop(0)
>  
> -            if el == l: # perfect match (fast)
> -                postout.append("  " + l)
> -            elif el and rematch(el, l): # fallback regex match
> -                postout.append("  " + el)
> -            else: # mismatch - let diff deal with it
> -                postout.append("  " + l)
> +            if el and el.endswith(" (re)\n") and rematch(el[:-6], l):
> +                postout.append("  " + el) # regex match
> +            elif el and el.endswith(" (re) (plain)\n"):
> +                postout.append("  " + l[:-1] + " (plain)\n") # disable regex
> +            else:
> +                postout.append("  " + l) # let diff deal with it
>  
>      if pos in after:
>          postout += after.pop(pos)
> diff --git a/tests/test-archive.t b/tests/test-archive.t
> --- a/tests/test-archive.t
> +++ b/tests/test-archive.t
> @@ -227,9 +227,9 @@ old file -- date clamped to 1980
>    $ hg archive ../old.zip
>    $ unzip -l ../old.zip
>    Archive:  ../old.zip
> -  \s*Length.*
> -  .*-----.*
> -  .*147.*80.*00:00.*old/.hg_archival.txt
> -  .*0.*80.*00:00.*old/old
> -  .*-----.*
> -  \s*147\s+2 files
> +  \s*Length.* (re)
> +  .*-----.* (re)
> +  .*147.*80.*00:00.*old/.hg_archival.txt (re)
> +  .*0.*80.*00:00.*old/old (re)
> +  .*-----.* (re)
> +  \s*147\s+2 files (re)
> diff --git a/tests/test-audit-path.t b/tests/test-audit-path.t
> --- a/tests/test-audit-path.t
> +++ b/tests/test-audit-path.t
> @@ -78,5 +78,5 @@ attack /tmp/test
>    $ hg manifest -r4
>    /tmp/test
>    $ hg update -Cr4
> -  abort: No such file or directory: .*/test-audit-path.t/target//tmp/test
> +  abort: No such file or directory: .*/test-audit-path.t/target//tmp/test (re)
>    [255]
> diff --git a/tests/test-bad-extension.t b/tests/test-bad-extension.t
> --- a/tests/test-bad-extension.t
> +++ b/tests/test-bad-extension.t
> @@ -8,8 +8,8 @@
>    $ echo "badext2 =" >> $HGRCPATH
>  
>    $ hg -q help help
> -  \*\*\* failed to import extension badext from .*/badext.py: bit bucket overflow
> -  \*\*\* failed to import extension badext2: No module named badext2
> +  \*\*\* failed to import extension badext from .*/badext.py: bit bucket overflow (re)
> +  \*\*\* failed to import extension badext2: No module named badext2 (re)

Why is (re) needed on this line?

>    hg help [TOPIC]
>    
>    show help for a given topic or a help overview
> diff --git a/tests/test-bad-pull.t b/tests/test-bad-pull.t
> --- a/tests/test-bad-pull.t
> +++ b/tests/test-bad-pull.t
> @@ -27,7 +27,7 @@ give the server some time to start runni
>    $ sleep 1
>  
>    $ hg clone http://localhost:$HGPORT/foo copy2 2>&1
> -  abort: HTTP Error 404: .*
> +  abort: HTTP Error 404: .* (re)
>    [255]
>  
>    $ echo $?
> diff --git a/tests/test-bookmarks-rebase.t b/tests/test-bookmarks-rebase.t
> --- a/tests/test-bookmarks-rebase.t
> +++ b/tests/test-bookmarks-rebase.t
> @@ -37,7 +37,7 @@ bookmark list
>  rebase
>  
>    $ hg rebase -s two -d one
> -  saved backup bundle to .*
> +  saved backup bundle to .* (re)
>  
>    $ hg log
>    changeset:   3:9163974d1cb5
> diff --git a/tests/test-bookmarks-strip.t b/tests/test-bookmarks-strip.t
> --- a/tests/test-bookmarks-strip.t
> +++ b/tests/test-bookmarks-strip.t
> @@ -50,7 +50,7 @@ bookmarks updated?
>  strip to revision 1
>  
>    $ hg strip 1
> -  saved backup bundle to .*
> +  saved backup bundle to .* (re)
>  
>  list bookmarks
>  
> diff --git a/tests/test-clone.t b/tests/test-clone.t
> --- a/tests/test-clone.t
> +++ b/tests/test-clone.t
> @@ -80,7 +80,7 @@ Check that path aliases are expanded:
>  
>    $ hg clone -q -U --config 'paths.foobar=a#0' foobar f
>    $ hg -R f showconfig paths.default
> -  .*/a#0
> +  .*/a#0 (re)
>  
>  Use --pull:
>  
> diff --git a/tests/test-committer.t b/tests/test-committer.t
> --- a/tests/test-committer.t
> +++ b/tests/test-committer.t
> @@ -53,7 +53,7 @@
>    [255]
>    $ rm .hg/hgrc
>    $ hg commit -m commit-1 2>&1
> -  No username found, using '[^']*' instead
> +  No username found, using '[^']*' instead (re)
>  
>    $ echo space > asdf
>    $ hg commit -u ' ' -m commit-1
> diff --git a/tests/test-default-push.t b/tests/test-default-push.t
> --- a/tests/test-default-push.t
> +++ b/tests/test-default-push.t
> @@ -18,7 +18,7 @@
>  Push should push to 'default' when 'default-push' not set:
>  
>    $ hg --cwd b push
> -  pushing to .*/a
> +  pushing to .*/a (re)
>    searching for changes
>    adding changesets
>    adding manifests
> @@ -29,7 +29,7 @@ Push should push to 'default-push' when 
>  
>    $ echo 'default-push = ../c' >> b/.hg/hgrc
>    $ hg --cwd b push
> -  pushing to .*/c
> +  pushing to .*/c (re)
>    searching for changes
>    adding changesets
>    adding manifests
> diff --git a/tests/test-globalopts.t b/tests/test-globalopts.t
> --- a/tests/test-globalopts.t
> +++ b/tests/test-globalopts.t
> @@ -240,12 +240,12 @@ Testing --time:
>  
>    $ hg --cwd a --time id
>    8580ff50825a tip
> -  Time: real .*
> +  Time: real .* (re)
>  
>  Testing --version:
>  
>    $ hg --version -q
> -  Mercurial Distributed SCM .*
> +  Mercurial Distributed SCM .* (re)
>  
>  Testing -h/--help:
>  
> diff --git a/tests/test-help.t b/tests/test-help.t
> --- a/tests/test-help.t
> +++ b/tests/test-help.t
> @@ -189,7 +189,7 @@ Short help:
>  Test short command list with verbose option
>  
>    $ hg -v help shortlist
> -  Mercurial Distributed SCM \(version .*?\)
> +  Mercurial Distributed SCM \(version .*?\) (re)
>    
>    Copyright (C) 2005-2010 Matt Mackall <mpm at selenic.com> and others
>    This is free software; see the source for copying conditions. There is NO
> @@ -341,7 +341,7 @@ Verbose help for add
>  Test help option with version option
>  
>    $ hg add -h --version
> -  Mercurial Distributed SCM \(version .+?\)
> +  Mercurial Distributed SCM \(version .+?\) (re)
>    
>    Copyright (C) 2005-2010 Matt Mackall <mpm at selenic.com> and others
>    This is free software; see the source for copying conditions. There is NO
> diff --git a/tests/test-hook.t b/tests/test-hook.t
> --- a/tests/test-hook.t
> +++ b/tests/test-hook.t
> @@ -415,12 +415,12 @@ make sure --traceback works
>    $ echo >> foo
>    $ hg ci --debug -d '0 0' -m 'change foo'
>    foo
> -  calling hook commit.auto: <function autohook at .*>
> +  calling hook commit.auto: <function autohook at .*> (re)
>    Automatically installed hook
>    committed changeset 1:52998019f6252a2b893452765fcb0a47351a5708
>  
>    $ hg showconfig hooks
> -  hooks.commit.auto=<function autohook at .*>
> +  hooks.commit.auto=<function autohook at .*> (re)
>  
>  test python hook configured with python:[file]:[hook] syntax
>  
> diff --git a/tests/test-install.t b/tests/test-install.t
> --- a/tests/test-install.t
> +++ b/tests/test-install.t
> @@ -1,7 +1,7 @@
>  hg debuginstall
>    $ hg debuginstall
>    Checking encoding (ascii)...
> -  Checking installed modules \(.*/mercurial\)...
> +  Checking installed modules \(.*/mercurial\)... (re)
>    Checking templates...
>    Checking patch...
>    Checking commit editor...
> @@ -11,7 +11,7 @@ hg debuginstall
>  hg debuginstall with no username
>    $ HGUSER= hg debuginstall
>    Checking encoding (ascii)...
> -  Checking installed modules \(.*/mercurial\)...
> +  Checking installed modules \(.*/mercurial\)... (re)
>    Checking templates...
>    Checking patch...
>    Checking commit editor...
> diff --git a/tests/test-journal-exists.t b/tests/test-journal-exists.t
> --- a/tests/test-journal-exists.t
> +++ b/tests/test-journal-exists.t
> @@ -27,7 +27,7 @@ Check that zero-size journals are correc
>  
>    $ hg -R foo unbundle repo.hg
>    adding changesets
> -  abort: Permission denied: .*
> +  abort: Permission denied: .* (re)
>    [255]
>  
>    $ if test -f foo/.hg/store/journal; then echo 'journal exists :-('; fi
> diff --git a/tests/test-keyword.t b/tests/test-keyword.t
> --- a/tests/test-keyword.t
> +++ b/tests/test-keyword.t
> @@ -26,14 +26,14 @@ as it would succeed without uisetup othe
>    RCSfile = {file|basename},v
>    Revision = {node|short}
>    Source = {root}/{file},v
> -  \$Author: test \$
> -  \$Date: ..../../.. ..:..:.. \$
> -  \$Header: .*/demo.txt,v ............ ..../../.. ..:..:.. test \$
> -  \$Id: demo.txt,v ............ ..../../.. ..:..:.. test \$
> -  \$RCSFile: demo.txt,v \$
> -  \$RCSfile: demo.txt,v \$
> -  \$Revision: ............ \$
> -  \$Source: .*/demo.txt,v \$
> +  \$Author: test \$ (re)
> +  \$Date: ..../../.. ..:..:.. \$ (re)
> +  \$Header: .*/demo.txt,v ............ ..../../.. ..:..:.. test \$ (re)
> +  \$Id: demo.txt,v ............ ..../../.. ..:..:.. test \$ (re)
> +  \$RCSFile: demo.txt,v \$ (re)
> +  \$RCSfile: demo.txt,v \$ (re)

is (re) really needed on these two lines?

> +  \$Revision: ............ \$ (re)
> +  \$Source: .*/demo.txt,v \$ (re)
>  
>    $ hg --quiet kwdemo "Branch = {branches}"
>    [extensions]
> @@ -71,7 +71,7 @@ A bundle to test this was made with:
>   hg bundle --base null ../test-keyword.hg
>  
>    $ hg pull -u "$TESTDIR"/test-keyword.hg
> -  pulling from .*test-keyword.hg
> +  pulling from .*test-keyword.hg (re)
>    requesting all changes
>    adding changesets
>    adding manifests
> @@ -150,7 +150,7 @@ hg cat files and symlink, no expansion
>    do not process $Id:
>    xxx $
>    ignore $Id$
> -  a.*
> +  a.* (re)
>  
>  Test hook execution
>  
> @@ -195,15 +195,15 @@ Pull from bundle and trigger notify
>    Content-Type: text/plain; charset="us-ascii"
>    MIME-Version: 1.0
>    Content-Transfer-Encoding: 7bit
> -  Date: .*
> -  Subject: changeset in .*
> +  Date: .* (re)
> +  Subject: changeset in .* (re)
>    From: mercurial
>    X-Hg-Notification: changeset a2392c293916
> -  Message-Id: <hg.a2392c293916.*>
> +  Message-Id: <hg.a2392c293916.*> (re)
>    To: Test
>    
> -  changeset a2392c293916 in .*
> -  details: .*?cmd=changeset;node=a2392c293916
> +  changeset a2392c293916 in .* (re)
> +  details: .*?cmd=changeset;node=a2392c293916 (re)
>    description:
>    	addsym
>    
> @@ -218,15 +218,15 @@ Pull from bundle and trigger notify
>    Content-Type: text/plain; charset="us-ascii"
>    MIME-Version: 1.0
>    Content-Transfer-Encoding: 7bit
> -  Date:.*
> -  Subject: changeset in.*
> +  Date:.* (re)
> +  Subject: changeset in.* (re)
>    From: User Name <user at example.com>
>    X-Hg-Notification: changeset ef63ca68695b
> -  Message-Id: <hg.ef63ca68695b.*>
> +  Message-Id: <hg.ef63ca68695b.*> (re)
>    To: Test
>    
> -  changeset ef63ca68695b in .*
> -  details: .*?cmd=changeset;node=ef63ca68695b
> +  changeset ef63ca68695b in .* (re)
> +  details: .*?cmd=changeset;node=ef63ca68695b (re)
>    description:
>    	absym
>    
> @@ -335,7 +335,7 @@ Diff remaining chunk
>    $ hg diff
>    diff -r d17e03c92c97 a
>    --- a/a	Wed Dec 31 23:59:51 1969 -0000
> -  \+\+\+ b/a	.*
> +  \+\+\+ b/a	.* (re)
>    @@ -2,3 +2,4 @@
>     foo
>     do not process $Id:
> @@ -479,7 +479,7 @@ Diff specific revision
>    $ hg diff --rev 1
>    diff -r ef63ca68695b c
>    --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
> -  \+\+\+ b/c	.*
> +  \+\+\+ b/c	.* (re)
>    @@ -0,0 +1,3 @@
>    +expand $Id$
>    +do not process $Id:
> @@ -527,7 +527,7 @@ Cat and hg cat files before custom expan
>    do not process $Id:
>    xxx $
>    ignore $Id$
> -  a.*
> +  a.* (re)
>  
>  Write custom keyword and prepare multiline commit message
>  
> @@ -577,7 +577,7 @@ Stat, verify and show custom expansion (
>    xxx $
>    $Xinfo: User Name <user at example.com>: firstline $
>    ignore $Id$
> -  a.*
> +  a.* (re)
>  
>  annotate
>  
> @@ -648,7 +648,7 @@ Clone to test incoming
>    > default = ../Test
>    > EOF
>    $ hg incoming
> -  comparing with .*test-keyword.t/Test
> +  comparing with .*test-keyword.t/Test (re)
>    searching for changes
>    changeset:   2:bb948857c743
>    tag:         tip
> @@ -718,7 +718,7 @@ kwshrink a inside directory x
>  kwexpand nonexistent
>  
>    $ hg kwexpand nonexistent
> -  nonexistent:.*
> +  nonexistent:.* (re)
>  
>  
>  hg serve
> @@ -907,7 +907,7 @@ Keywords shrunk in working directory, bu
>    xxx $
>    $Xinfo: User Name <user at example.com>: firstline $
>    ignore $Id$
> -  a.*
> +  a.* (re)
>  
>  Now disable keyword expansion
>  
> @@ -924,4 +924,4 @@ Now disable keyword expansion
>    xxx $
>    $Xinfo$
>    ignore $Id$
> -  a.*
> +  a.* (re)
> diff --git a/tests/test-mq-merge.t b/tests/test-mq-merge.t
> --- a/tests/test-mq-merge.t
> +++ b/tests/test-mq-merge.t
> @@ -32,7 +32,7 @@ Create a patch removing a:
>  Save the patch queue so we can merge it later:
>  
>    $ hg qsave -c -e
> -  copy .*/t/.hg/patches to .*/t/.hg/patches.1
> +  copy .*/t/.hg/patches to .*/t/.hg/patches.1 (re)
>    $ checkundo
>  
>  Update b and commit in an "update" changeset:
> @@ -52,7 +52,7 @@ Update b and commit in an "update" chang
>    b
>  
>    $ hg qpush -a -m
> -  merging with queue at: .*/t/.hg/patches.1
> +  merging with queue at: .*/t/.hg/patches.1 (re)
>    applying rm_a
>    now at: rm_a
>  
> @@ -91,14 +91,14 @@ Classic MQ merge sequence *with an expli
>  Create the reference queue:
>  
>    $ hg qsave -c -e -n refqueue
> -  copy .*/t2/.hg/patches to .*/t2/.hg/refqueue
> +  copy .*/t2/.hg/patches to .*/t2/.hg/refqueue (re)
>    $ hg up -C 1
>    1 files updated, 0 files merged, 1 files removed, 0 files unresolved
>  
>  Merge:
>  
>    $ HGMERGE=internal:other hg qpush -a -m -n refqueue
> -  merging with queue at: .*/t2/.hg/refqueue
> +  merging with queue at: .*/t2/.hg/refqueue (re)
>    applying patcha
>    patching file a
>    Hunk #1 FAILED at 0
> @@ -138,10 +138,10 @@ Check patcha2 is still a regular patch:
>  
>    $ cat .hg/patches/patcha2
>    # HG changeset patch
> -  # Parent ........................................
> +  # Parent ........................................ (re)
>    # Date 0 0
>    
> -  diff -r ............ -r ............ a
> +  diff -r ............ -r ............ a (re)
>    --- a/a
>    +++ b/a
>    @@ -1,2 +1,3 @@
> diff --git a/tests/test-mq-qfold.t b/tests/test-mq-qfold.t
> --- a/tests/test-mq-qfold.t
> +++ b/tests/test-mq-qfold.t
> @@ -59,7 +59,7 @@ Fold with local changes:
>    [255]
>  
>    $ hg diff -c .
> -  diff -r 07f494440405 -r ............ a
> +  diff -r 07f494440405 -r ............ a (re)
>    --- a/a
>    +++ b/a
>    @@ -1,1 +1,3 @@
> @@ -85,7 +85,7 @@ Fold git patch into a regular patch, exp
>  
>    $ cat .hg/patches/regular
>    # HG changeset patch
> -  # Parent ........................................
> +  # Parent ........................................ (re)
>    
>    diff --git a/a b/a
>    --- a/a
> @@ -127,7 +127,7 @@ Fold regular patch into a git patch, exp
>  
>    $ cat .hg/patches/git
>    # HG changeset patch
> -  # Parent ........................................
> +  # Parent ........................................ (re)
>    
>    diff --git a/a b/aa
>    copy from a
> diff --git a/tests/test-mq-qrefresh.t b/tests/test-mq-qrefresh.t
> --- a/tests/test-mq-qrefresh.t
> +++ b/tests/test-mq-qrefresh.t
> @@ -255,7 +255,7 @@ qrefresh --short tests:
>  diff shows what is not in patch:
>  
>    $ hg diff
> -  diff -r ............ orphanchild
> +  diff -r ............ orphanchild (re)
>    --- /dev/null
>    +++ b/orphanchild
>    @@ -0,0 +1,1 @@
> diff --git a/tests/test-mq-safety.t b/tests/test-mq-safety.t
> --- a/tests/test-mq-safety.t
> +++ b/tests/test-mq-safety.t
> @@ -39,7 +39,7 @@ qpop/qrefresh on the wrong revision
>    abort: popping would remove a revision not managed by this patch queue
>    [255]
>    $ hg qpop -n patches
> -  using patch queue: .*/repo/.hg/patches
> +  using patch queue: .*/repo/.hg/patches (re)
>    abort: popping would remove a revision not managed by this patch queue
>    [255]
>    $ hg qrefresh
> diff --git a/tests/test-mq-strip.t b/tests/test-mq-strip.t
> --- a/tests/test-mq-strip.t
> +++ b/tests/test-mq-strip.t
> @@ -77,7 +77,7 @@
>    summary:     e
>    
>    1 files updated, 0 files merged, 0 files removed, 0 files unresolved
> -  saved backup bundle to .*
> +  saved backup bundle to .* (re)
>    % after update 4, strip 4
>    changeset:   3:65bd5f99a4a3
>    tag:         tip
> @@ -96,7 +96,7 @@
>    summary:     e
>    
>    1 files updated, 0 files merged, 0 files removed, 0 files unresolved
> -  saved backup bundle to .*
> +  saved backup bundle to .* (re)
>    % after update 4, strip 3
>    changeset:   1:ef3a871183d7
>    user:        test
> @@ -111,7 +111,7 @@
>    date:        Thu Jan 01 00:00:00 1970 +0000
>    summary:     b
>    
> -  saved backup bundle to .*
> +  saved backup bundle to .* (re)
>    % after update 1, strip 4
>    changeset:   1:ef3a871183d7
>    user:        test
> @@ -127,7 +127,7 @@
>    date:        Thu Jan 01 00:00:00 1970 +0000
>    summary:     e
>    
> -  saved backup bundle to .*
> +  saved backup bundle to .* (re)
>    % after update 4, strip 2
>    changeset:   3:443431ffac4f
>    tag:         tip
> @@ -146,7 +146,7 @@
>    summary:     c
>    
>    1 files updated, 0 files merged, 0 files removed, 0 files unresolved
> -  saved backup bundle to .*
> +  saved backup bundle to .* (re)
>    % after update 4, strip 1
>    changeset:   0:9ab35a2d17cb
>    tag:         tip
> @@ -157,7 +157,7 @@
>    $ teststrip null 4
>    0 files updated, 0 files merged, 1 files removed, 0 files unresolved
>    % before update null, strip 4
> -  saved backup bundle to .*
> +  saved backup bundle to .* (re)
>    % after update null, strip 4
>  
>    $ hg log
> @@ -212,7 +212,7 @@ before strip of merge parent
>    
>    $ hg strip 4
>    1 files updated, 0 files merged, 0 files removed, 0 files unresolved
> -  saved backup bundle to .*
> +  saved backup bundle to .* (re)
>  
>  after strip of merge parent
>  
> @@ -258,7 +258,7 @@ after strip of merge parent
>  2 is parent of 3, only one strip should happen
>  
>    $ hg strip 2 3
> -  saved backup bundle to .*
> +  saved backup bundle to .* (re)
>    $ hg glog
>    @  changeset:   2:264128213d29
>    |  tag:         tip
> @@ -310,8 +310,8 @@ 2 different branches: 2 strips
>  
>    $ hg strip 2 4
>    0 files updated, 0 files merged, 0 files removed, 0 files unresolved
> -  saved backup bundle to .*
> -  saved backup bundle to .*
> +  saved backup bundle to .* (re)
> +  saved backup bundle to .* (re)
>    $ hg glog
>    @  changeset:   2:65bd5f99a4a3
>    |  tag:         tip
> @@ -335,14 +335,14 @@ 2 different branches and a common ancest
>  
>    $ hg strip 1 2 4
>    1 files updated, 0 files merged, 0 files removed, 0 files unresolved
> -  saved backup bundle to .*
> +  saved backup bundle to .* (re)
>    $ restore
>  
>  
>  remove branchy history for qimport tests
>  
>    $ hg strip 3
> -  saved backup bundle to .*
> +  saved backup bundle to .* (re)
>  
>  
>  strip of applied mq should cleanup status file
> @@ -364,7 +364,7 @@ stripping revision in queue
>  
>    $ hg strip 3
>    1 files updated, 0 files merged, 0 files removed, 0 files unresolved
> -  saved backup bundle to .*
> +  saved backup bundle to .* (re)
>  
>  applied patches after stripping rev in queue
>  
> @@ -375,7 +375,7 @@ stripping ancestor of queue
>  
>    $ hg strip 1
>    1 files updated, 0 files merged, 0 files removed, 0 files unresolved
> -  saved backup bundle to .*
> +  saved backup bundle to .* (re)
>  
>  applied patches after stripping ancestor of queue
>  
> diff --git a/tests/test-mq.t b/tests/test-mq.t
> --- a/tests/test-mq.t
> +++ b/tests/test-mq.t
> @@ -135,7 +135,7 @@ qinit -c should create both files if the
>    guards
>    $ cat .hg/patches/series
>    $ hg qinit -c
> -  abort: repository .* already exists!
> +  abort: repository .* already exists! (re)
>    [255]
>    $ cd ..
>  
> @@ -238,9 +238,9 @@ qrefresh
>    $ cat .hg/patches/test.patch
>    foo bar
>    
> -  diff -r [a-f0-9]* a
> -  --- a/a\t(?P<date>.*)
> -  \+\+\+ b/a\t(?P<date2>.*)
> +  diff -r [a-f0-9]* a (re)
> +  --- a/a\t(?P<date>.*) (re)
> +  \+\+\+ b/a\t(?P<date2>.*) (re)
>    @@ -1,1 +1,2 @@
>     a
>    +a
> @@ -291,7 +291,7 @@ Dump the tag cache to ensure that it has
>  .hg/tags.cache (pre qpush):
>  
>    $ cat .hg/tags.cache
> -  1 [\da-f]{40}
> +  1 [\da-f]{40} (re)
>    
>    $ hg qpush
>    applying test.patch
> @@ -301,7 +301,7 @@ Dump the tag cache to ensure that it has
>  .hg/tags.cache (post qpush):
>  
>    $ cat .hg/tags.cache
> -  2 [\da-f]{40}
> +  2 [\da-f]{40} (re)
>    
>    $ checkundo qpush
>    $ cd ..
> @@ -759,7 +759,7 @@ strip
>    adding x
>    $ hg strip tip
>    0 files updated, 0 files merged, 1 files removed, 0 files unresolved
> -  saved backup bundle to .*
> +  saved backup bundle to .* (re)
>    $ hg unbundle .hg/strip-backup/*
>    adding changesets
>    adding manifests
> @@ -782,7 +782,7 @@ strip with local changes, should complai
>  
>    $ hg strip -f tip
>    0 files updated, 0 files merged, 1 files removed, 0 files unresolved
> -  saved backup bundle to .*
> +  saved backup bundle to .* (re)
>  
>  
>  cd b; hg qrefresh
> @@ -804,14 +804,14 @@ cd b; hg qrefresh
>    foo
>    
>    diff -r cb9a9f314b8b a
> -  --- a/a\t(?P<date>.*)
> -  \+\+\+ b/a\t(?P<date>.*)
> +  --- a/a\t(?P<date>.*) (re)
> +  \+\+\+ b/a\t(?P<date>.*) (re)
>    @@ -1,1 +1,2 @@
>     a
>    +a
>    diff -r cb9a9f314b8b b/f
> -  --- /dev/null\t(?P<date>.*)
> -  \+\+\+ b/b/f\t(?P<date>.*)
> +  --- /dev/null\t(?P<date>.*) (re)
> +  \+\+\+ b/b/f\t(?P<date>.*) (re)
>    @@ -0,0 +1,1 @@
>    +f
>  
> @@ -822,8 +822,8 @@ hg qrefresh .
>    foo
>    
>    diff -r cb9a9f314b8b b/f
> -  --- /dev/null\t(?P<date>.*)
> -  \+\+\+ b/b/f\t(?P<date>.*)
> +  --- /dev/null\t(?P<date>.*) (re)
> +  \+\+\+ b/b/f\t(?P<date>.*) (re)
>    @@ -0,0 +1,1 @@
>    +f
>    $ hg status
> @@ -1140,7 +1140,7 @@ strip again
>    
>    $ hg strip 1
>    1 files updated, 0 files merged, 0 files removed, 0 files unresolved
> -  saved backup bundle to .*
> +  saved backup bundle to .* (re)
>    $ checkundo strip
>    $ hg log
>    changeset:   1:20cbbe65cff7
> diff --git a/tests/test-patchbomb.t b/tests/test-patchbomb.t
> --- a/tests/test-patchbomb.t
> +++ b/tests/test-patchbomb.t
> @@ -25,8 +25,8 @@
>    Content-Transfer-Encoding: 7bit
>    Subject: [PATCH] a
>    X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
> -  Message-Id: <8580ff50825a50c8f716.60 at .*
> -  User-Agent: Mercurial-patchbomb/.*
> +  Message-Id: <8580ff50825a50c8f716.60 at .* (re)
> +  User-Agent: Mercurial-patchbomb/.* (re)
>    Date: Thu, 01 Jan 1970 00:01:00 +0000
>    From: quux
>    To: foo
> @@ -80,8 +80,8 @@
>    MIME-Version: 1.0
>    Content-Transfer-Encoding: 7bit
>    Subject: [PATCH 0 of 2] test
> -  Message-Id: <patchbomb.120@[^>]*>
> -  User-Agent: Mercurial-patchbomb/.*
> +  Message-Id: <patchbomb.120@[^>]*> (re)
> +  User-Agent: Mercurial-patchbomb/.* (re)
>    Date: Thu, 01 Jan 1970 00:02:00 +0000
>    From: quux
>    To: foo
> @@ -94,10 +94,10 @@
>    Content-Transfer-Encoding: 7bit
>    Subject: [PATCH 1 of 2] a
>    X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
> -  Message-Id: <8580ff50825a50c8f716.121@[^>]*>
> -  In-Reply-To: <patchbomb.120@[^>]*>
> -  References: <patchbomb.120@[^>]*>
> -  User-Agent: Mercurial-patchbomb/.*
> +  Message-Id: <8580ff50825a50c8f716.121@[^>]*> (re)
> +  In-Reply-To: <patchbomb.120@[^>]*> (re)
> +  References: <patchbomb.120@[^>]*> (re)
> +  User-Agent: Mercurial-patchbomb/.* (re)
>    Date: Thu, 01 Jan 1970 00:02:01 +0000
>    From: quux
>    To: foo
> @@ -122,10 +122,10 @@
>    Content-Transfer-Encoding: 7bit
>    Subject: [PATCH 2 of 2] b
>    X-Mercurial-Node: 97d72e5f12c7e84f85064aa72e5a297142c36ed9
> -  Message-Id: <97d72e5f12c7e84f8506.122@[^>]*>
> -  In-Reply-To: <patchbomb.120@[^>]*>
> -  References: <patchbomb.120@[^>]*>
> -  User-Agent: Mercurial-patchbomb/.*
> +  Message-Id: <97d72e5f12c7e84f8506.122@[^>]*> (re)
> +  In-Reply-To: <patchbomb.120@[^>]*> (re)
> +  References: <patchbomb.120@[^>]*> (re)
> +  User-Agent: Mercurial-patchbomb/.* (re)
>    Date: Thu, 01 Jan 1970 00:02:02 +0000
>    From: quux
>    To: foo
> @@ -241,8 +241,8 @@ mime encoded mbox (base64):
>    Content-Transfer-Encoding: base64
>    Subject: [PATCH] charset=utf-8; content-transfer-encoding: base64
>    X-Mercurial-Node: c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
> -  Message-Id: <c3c9e37db9f4fe4882cd.240 at .*
> -  User-Agent: Mercurial-patchbomb/.*
> +  Message-Id: <c3c9e37db9f4fe4882cd.240 at .* (re)
> +  User-Agent: Mercurial-patchbomb/.* (re)
>    Date: Thu, 01 Jan 1970 00:04:00 +0000
>    From: quux
>    To: foo
> @@ -1810,8 +1810,8 @@ test multi-byte domain parsing:
>    Content-Transfer-Encoding: 7bit
>    Subject: [PATCH] test
>    X-Mercurial-Node: 8580ff50825a50c8f716709acdf8de0deddcd6ab
> -  Message-Id: <8580ff50825a50c8f716.315532860 at .*
> -  User-Agent: Mercurial-patchbomb/.*
> +  Message-Id: <8580ff50825a50c8f716.315532860 at .* (re)
> +  User-Agent: Mercurial-patchbomb/.* (re)
>    Date: Tue, 01 Jan 1980 00:01:00 +0000
>    From: quux
>    To: bar at xn--nicode-2ya.com
> @@ -1857,8 +1857,8 @@ test outgoing:
>    MIME-Version: 1.0
>    Content-Transfer-Encoding: 7bit
>    Subject: [PATCH 0 of 8] test
> -  Message-Id: <patchbomb.315532860 at .*
> -  User-Agent: Mercurial-patchbomb/.*
> +  Message-Id: <patchbomb.315532860 at .* (re)
> +  User-Agent: Mercurial-patchbomb/.* (re)
>    Date: Tue, 01 Jan 1980 00:01:00 +0000
>    From: test
>    To: foo
> @@ -1870,10 +1870,10 @@ test outgoing:
>    Content-Transfer-Encoding: 7bit
>    Subject: [PATCH 1 of 8] c
>    X-Mercurial-Node: ff2c9fa2018b15fa74b33363bda9527323e2a99f
> -  Message-Id: <ff2c9fa2018b15fa74b3.315532861 at .*
> -  In-Reply-To: <patchbomb.315532860@[^>]*>
> -  References: <patchbomb.315532860@[^>]*>
> -  User-Agent: Mercurial-patchbomb/.*
> +  Message-Id: <ff2c9fa2018b15fa74b3.315532861 at .* (re)
> +  In-Reply-To: <patchbomb.315532860@[^>]*> (re)
> +  References: <patchbomb.315532860@[^>]*> (re)
> +  User-Agent: Mercurial-patchbomb/.* (re)
>    Date: Tue, 01 Jan 1980 00:01:01 +0000
>    From: test
>    To: foo
> @@ -1897,10 +1897,10 @@ test outgoing:
>    Content-Transfer-Encoding: 8bit
>    Subject: [PATCH 2 of 8] charset=utf-8; content-transfer-encoding: base64
>    X-Mercurial-Node: c3c9e37db9f4fe4882cda39baf42fed6bad8b15a
> -  Message-Id: <c3c9e37db9f4fe4882cd.315532862 at .*
> -  In-Reply-To: <patchbomb.315532860@[^>]*>
> -  References: <patchbomb.315532860@[^>]*>
> -  User-Agent: Mercurial-patchbomb/.*
> +  Message-Id: <c3c9e37db9f4fe4882cd.315532862 at .* (re)
> +  In-Reply-To: <patchbomb.315532860@[^>]*> (re)
> +  References: <patchbomb.315532860@[^>]*> (re)
> +  User-Agent: Mercurial-patchbomb/.* (re)
>    Date: Tue, 01 Jan 1980 00:01:02 +0000
>    From: test
>    To: foo
> @@ -1932,10 +1932,10 @@ test outgoing:
>    Subject: [PATCH 3 of 8] charset=utf-8;
>     content-transfer-encoding: quoted-printable
>    X-Mercurial-Node: c655633f8c87700bb38cc6a59a2753bdc5a6c376
> -  Message-Id: <c655633f8c87700bb38c.315532863 at .*
> -  In-Reply-To: <patchbomb.315532860@[^>]*>
> -  References: <patchbomb.315532860@[^>]*>
> -  User-Agent: Mercurial-patchbomb/.*
> +  Message-Id: <c655633f8c87700bb38c.315532863 at .* (re)
> +  In-Reply-To: <patchbomb.315532860@[^>]*> (re)
> +  References: <patchbomb.315532860@[^>]*> (re)
> +  User-Agent: Mercurial-patchbomb/.* (re)
>    Date: Tue, 01 Jan 1980 00:01:03 +0000
>    From: test
>    To: foo
> @@ -1975,10 +1975,10 @@ test outgoing:
>    Content-Transfer-Encoding: 8bit
>    Subject: [PATCH 4 of 8] charset=us-ascii; content-transfer-encoding: 8bit
>    X-Mercurial-Node: 22d0f96be12f5945fd67d101af58f7bc8263c835
> -  Message-Id: <22d0f96be12f5945fd67.315532864 at .*
> -  In-Reply-To: <patchbomb.315532860@[^>]*>
> -  References: <patchbomb.315532860@[^>]*>
> -  User-Agent: Mercurial-patchbomb/.*
> +  Message-Id: <22d0f96be12f5945fd67.315532864 at .* (re)
> +  In-Reply-To: <patchbomb.315532860@[^>]*> (re)
> +  References: <patchbomb.315532860@[^>]*> (re)
> +  User-Agent: Mercurial-patchbomb/.* (re)
>    Date: Tue, 01 Jan 1980 00:01:04 +0000
>    From: test
>    To: foo
> @@ -2002,10 +2002,10 @@ test outgoing:
>    Content-Transfer-Encoding: 7bit
>    Subject: [PATCH 5 of 8] Added tag zero, zero.foo for changeset 8580ff50825a
>    X-Mercurial-Node: dd9c2b4b8a8a0934d5523c15f2c119b362360903
> -  Message-Id: <dd9c2b4b8a8a0934d552.315532865 at .*
> -  In-Reply-To: <patchbomb.315532860@[^>]*>
> -  References: <patchbomb.315532860@[^>]*>
> -  User-Agent: Mercurial-patchbomb/.*
> +  Message-Id: <dd9c2b4b8a8a0934d552.315532865 at .* (re)
> +  In-Reply-To: <patchbomb.315532860@[^>]*> (re)
> +  References: <patchbomb.315532860@[^>]*> (re)
> +  User-Agent: Mercurial-patchbomb/.* (re)
>    Date: Tue, 01 Jan 1980 00:01:05 +0000
>    From: test
>    To: foo
> @@ -2030,10 +2030,10 @@ test outgoing:
>    Content-Transfer-Encoding: 7bit
>    Subject: [PATCH 6 of 8] Added tag one, one.patch for changeset 97d72e5f12c7
>    X-Mercurial-Node: eae5fcf795eee29d0e45ffc9f519a91cd79fc9ff
> -  Message-Id: <eae5fcf795eee29d0e45.315532866 at .*
> -  In-Reply-To: <patchbomb.315532860@[^>]*>
> -  References: <patchbomb.315532860@[^>]*>
> -  User-Agent: Mercurial-patchbomb/.*
> +  Message-Id: <eae5fcf795eee29d0e45.315532866 at .* (re)
> +  In-Reply-To: <patchbomb.315532860@[^>]*> (re)
> +  References: <patchbomb.315532860@[^>]*> (re)
> +  User-Agent: Mercurial-patchbomb/.* (re)
>    Date: Tue, 01 Jan 1980 00:01:06 +0000
>    From: test
>    To: foo
> @@ -2060,10 +2060,10 @@ test outgoing:
>    Content-Transfer-Encoding: 7bit
>    Subject: [PATCH 7 of 8] Added tag two, two.diff for changeset ff2c9fa2018b
>    X-Mercurial-Node: e317db6a6f288748d1f6cb064f3810fcba66b1b6
> -  Message-Id: <e317db6a6f288748d1f6.315532867 at .*
> -  In-Reply-To: <patchbomb.315532860@[^>]*>
> -  References: <patchbomb.315532860@[^>]*>
> -  User-Agent: Mercurial-patchbomb/.*
> +  Message-Id: <e317db6a6f288748d1f6.315532867 at .* (re)
> +  In-Reply-To: <patchbomb.315532860@[^>]*> (re)
> +  References: <patchbomb.315532860@[^>]*> (re)
> +  User-Agent: Mercurial-patchbomb/.* (re)
>    Date: Tue, 01 Jan 1980 00:01:07 +0000
>    From: test
>    To: foo
> @@ -2091,10 +2091,10 @@ test outgoing:
>    Content-Transfer-Encoding: 7bit
>    Subject: [PATCH 8 of 8] d
>    X-Mercurial-Node: 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268
> -  Message-Id: <2f9fa9b998c5fe3ac2bd.315532868[^>]*>
> -  In-Reply-To: <patchbomb.315532860@[^>]*>
> -  References: <patchbomb.315532860@[^>]*>
> -  User-Agent: Mercurial-patchbomb/.*
> +  Message-Id: <2f9fa9b998c5fe3ac2bd.315532868[^>]*> (re)
> +  In-Reply-To: <patchbomb.315532860@[^>]*> (re)
> +  References: <patchbomb.315532860@[^>]*> (re)
> +  User-Agent: Mercurial-patchbomb/.* (re)
>    Date: Tue, 01 Jan 1980 00:01:08 +0000
>    From: test
>    To: foo
> @@ -2129,8 +2129,8 @@ dest#branch URIs:
>    Content-Transfer-Encoding: 7bit
>    Subject: [PATCH] test
>    X-Mercurial-Node: 2f9fa9b998c5fe3ac2bd9a2b14bfcbeecbc7c268
> -  Message-Id: <2f9fa9b998c5fe3ac2bd.315532860 at .*
> -  User-Agent: Mercurial-patchbomb/.*
> +  Message-Id: <2f9fa9b998c5fe3ac2bd.315532860 at .* (re)
> +  User-Agent: Mercurial-patchbomb/.* (re)
>    Date: Tue, 01 Jan 1980 00:01:00 +0000
>    From: test
>    To: foo
> diff --git a/tests/test-paths.t b/tests/test-paths.t
> --- a/tests/test-paths.t
> +++ b/tests/test-paths.t
> @@ -6,11 +6,11 @@
>    $ echo '[paths]' >> .hg/hgrc
>    $ echo 'dupe = ../b' >> .hg/hgrc
>    $ hg in dupe
> -  comparing with .*/test-paths.t/b
> +  comparing with .*/test-paths.t/b (re)
>    no changes found
>    [1]
>    $ cd ..
>    $ hg -R a in dupe
> -  comparing with .*/test-paths.t/b
> +  comparing with .*/test-paths.t/b (re)
>    no changes found
>    [1]
> diff --git a/tests/test-permissions.t b/tests/test-permissions.t
> --- a/tests/test-permissions.t
> +++ b/tests/test-permissions.t
> @@ -20,7 +20,7 @@
>    checking manifests
>    crosschecking files in changesets and manifests
>    checking files
> -  abort: Permission denied: .*
> +  abort: Permission denied: .* (re)
>    %%% verify failed
>  
>    $ chmod +r .hg/store/data/a.i
> @@ -37,7 +37,7 @@
>    $ echo barber > a
>    $ hg commit -m "2" || echo %%% commit failed
>    trouble committing a!
> -  abort: Permission denied: .*
> +  abort: Permission denied: .* (re)
>    %%% commit failed
>  
>    $ chmod -w .
> diff --git a/tests/test-push-validation.t b/tests/test-push-validation.t
> --- a/tests/test-push-validation.t
> +++ b/tests/test-push-validation.t
> @@ -40,7 +40,7 @@ Expected to fail:
>  Expected to fail:
>  
>    $ hg push
> -  pushing to .*
> +  pushing to .* (re)
>    searching for changes
>    adding changesets
>    adding manifests
> diff --git a/tests/test-relink.t b/tests/test-relink.t
> --- a/tests/test-relink.t
> +++ b/tests/test-relink.t
> @@ -60,7 +60,7 @@ clone and pull to break links
>  relink
>  
>    $ hg relink --debug | fix_path
> -  relinking .*/.hg/store
> +  relinking .*/.hg/store (re)
>    tip has 2 files, estimated total number of files: 3
>    collecting: 00changelog.i 1/3 files (33.33%)
>    collecting: 00manifest.i 2/3 files (66.67%)
> diff --git a/tests/test-rename.t b/tests/test-rename.t
> --- a/tests/test-rename.t
> +++ b/tests/test-rename.t
> @@ -263,8 +263,8 @@ overwrite existing files (d2/b)
>    R d1/ba
>    R d1/d11/a1
>    $ diff -u d1/b d2/b
> -  --- d1/b	.*
> -  \+\+\+ d2/b	.*
> +  --- d1/b	.* (re)
> +  \+\+\+ d2/b	.* (re)
>    @@ -1 +1 @@
>    -d1/b
>    +d2/b
> diff --git a/tests/test-subrepo-deep-nested-change.t b/tests/test-subrepo-deep-nested-change.t
> --- a/tests/test-subrepo-deep-nested-change.t
> +++ b/tests/test-subrepo-deep-nested-change.t
> @@ -27,7 +27,7 @@ Preparing the 'main' repo which depends 
>    $ echo "sub1 = ../sub1" > main/.hgsub
>    $ hg clone sub1 main/sub1
>    updating to branch default
> -  pulling subrepo sub2 from .*/sub2
> +  pulling subrepo sub2 from .*/sub2 (re)
>    requesting all changes
>    adding changesets
>    adding manifests
> @@ -55,13 +55,13 @@ Clone main
>  
>    $ hg clone main cloned
>    updating to branch default
> -  pulling subrepo sub1 from .*/sub1
> +  pulling subrepo sub1 from .*/sub1 (re)
>    requesting all changes
>    adding changesets
>    adding manifests
>    adding file changes
>    added 1 changesets with 3 changes to 3 files
> -  pulling subrepo sub1/sub2 from .*/sub2
> +  pulling subrepo sub1/sub2 from .*/sub2 (re)
>    requesting all changes
>    adding changesets
>    adding manifests
> diff --git a/tests/test-subrepo-paths.t b/tests/test-subrepo-paths.t
> --- a/tests/test-subrepo-paths.t
> +++ b/tests/test-subrepo-paths.t
> @@ -28,5 +28,5 @@ test bad subpaths pattern
>    > .* = \1
>    > EOF
>    $ hg debugsub
> -  abort: bad subrepository pattern in .*/test-subrepo-paths.t/outer/.hg/hgrc:2: invalid group reference
> +  abort: bad subrepository pattern in .*/test-subrepo-paths.t/outer/.hg/hgrc:2: invalid group reference (re)
>    [255]
> diff --git a/tests/test-subrepo-recursion.t b/tests/test-subrepo-recursion.t
> --- a/tests/test-subrepo-recursion.t
> +++ b/tests/test-subrepo-recursion.t
> @@ -252,13 +252,13 @@ Clone and test outgoing:
>    $ cd ..
>    $ hg clone repo repo2
>    updating to branch default
> -  pulling subrepo foo from .*/test-subrepo-recursion.t/repo/foo
> +  pulling subrepo foo from .*/test-subrepo-recursion.t/repo/foo (re)
>    requesting all changes
>    adding changesets
>    adding manifests
>    adding file changes
>    added 4 changesets with 7 changes to 3 files
> -  pulling subrepo foo/bar from .*/test-subrepo-recursion.t/repo/foo/bar
> +  pulling subrepo foo/bar from .*/test-subrepo-recursion.t/repo/foo/bar (re)
>    requesting all changes
>    adding changesets
>    adding manifests
> @@ -267,10 +267,10 @@ Clone and test outgoing:
>    3 files updated, 0 files merged, 0 files removed, 0 files unresolved
>    $ cd repo2
>    $ hg outgoing -S
> -  comparing with .*/test-subrepo-recursion.t/repo
> +  comparing with .*/test-subrepo-recursion.t/repo (re)
>    searching for changes
>    no changes found
> -  comparing with .*/test-subrepo-recursion.t/repo/foo
> +  comparing with .*/test-subrepo-recursion.t/repo/foo (re)
>    searching for changes
>    no changes found
>    [1]
> @@ -292,7 +292,7 @@ Make nested change:
>    $ hg commit -m 3-4-2
>    committing subrepository foo
>    $ hg outgoing -S
> -  comparing with .*/test-subrepo-recursion.t/repo
> +  comparing with .*/test-subrepo-recursion.t/repo (re)
>    searching for changes
>    changeset:   3:2655b8ecc4ee
>    tag:         tip
> @@ -300,7 +300,7 @@ Make nested change:
>    date:        Thu Jan 01 00:00:00 1970 +0000
>    summary:     3-4-2
>    
> -  comparing with .*/test-subrepo-recursion.t/repo/foo
> +  comparing with .*/test-subrepo-recursion.t/repo/foo (re)
>    searching for changes
>    changeset:   4:e96193d6cb36
>    tag:         tip
> @@ -318,7 +318,7 @@ Switch to original repo and setup defaul
>  Test incoming:
>  
>    $ hg incoming -S
> -  comparing with .*/test-subrepo-recursion.t/repo2
> +  comparing with .*/test-subrepo-recursion.t/repo2 (re)
>    searching for changes
>    changeset:   3:2655b8ecc4ee
>    tag:         tip
> @@ -326,7 +326,7 @@ Test incoming:
>    date:        Thu Jan 01 00:00:00 1970 +0000
>    summary:     3-4-2
>    
> -  comparing with .*/test-subrepo-recursion.t/repo2/foo
> +  comparing with .*/test-subrepo-recursion.t/repo2/foo (re)
>    searching for changes
>    changeset:   4:e96193d6cb36
>    tag:         tip
> diff --git a/tests/test-subrepo-relative-path.t b/tests/test-subrepo-relative-path.t
> --- a/tests/test-subrepo-relative-path.t
> +++ b/tests/test-subrepo-relative-path.t
> @@ -44,7 +44,7 @@ Clone main from hgweb
>    adding file changes
>    added 1 changesets with 3 changes to 3 files
>    updating to branch default
> -  pulling subrepo sub from http://localhost:[0-9]+/sub
> +  pulling subrepo sub from http://localhost:[0-9]+/sub (re)
>    requesting all changes
>    adding changesets
>    adding manifests
> diff --git a/tests/test-subrepo-svn.t b/tests/test-subrepo-svn.t
> --- a/tests/test-subrepo-svn.t
> +++ b/tests/test-subrepo-svn.t
> @@ -93,7 +93,7 @@ change file in svn and hg, commit
>    Transmitting file data .
>    Committed revision 3.
>    
> -  Fetching external item into '.*/s/externals'
> +  Fetching external item into '.*/s/externals' (re)
>    External at revision 1.
>    
>    At revision 3.
> diff --git a/tests/test-subrepo.t b/tests/test-subrepo.t
> --- a/tests/test-subrepo.t
> +++ b/tests/test-subrepo.t
> @@ -236,19 +236,19 @@ clone
>    $ cd ..
>    $ hg clone t tc
>    updating to branch default
> -  pulling subrepo s from .*/sub/t/s
> +  pulling subrepo s from .*/sub/t/s (re)
>    requesting all changes
>    adding changesets
>    adding manifests
>    adding file changes
>    added 4 changesets with 5 changes to 3 files
> -  pulling subrepo s/ss from .*/sub/t/s/ss
> +  pulling subrepo s/ss from .*/sub/t/s/ss (re)
>    requesting all changes
>    adding changesets
>    adding manifests
>    adding file changes
>    added 1 changesets with 1 changes to 1 files
> -  pulling subrepo t from .*/sub/t/t
> +  pulling subrepo t from .*/sub/t/t (re)
>    requesting all changes
>    adding changesets
>    adding manifests
> @@ -270,14 +270,14 @@ push
>    $ hg ci -m11
>    committing subrepository t
>    $ hg push
> -  pushing .*sub/t
> -  pushing .*sub/t/s/ss
> +  pushing .*sub/t (re)
> +  pushing .*sub/t/s/ss (re)
>    searching for changes
>    no changes found
> -  pushing .*sub/t/s
> +  pushing .*sub/t/s (re)
>    searching for changes
>    no changes found
> -  pushing .*sub/t/t
> +  pushing .*sub/t/t (re)
>    searching for changes
>    adding changesets
>    adding manifests
> @@ -295,27 +295,27 @@ push -f
>    $ hg ci -m12
>    committing subrepository s
>    $ hg push
> -  pushing .*sub/t
> -  pushing .*sub/t/s/ss
> +  pushing .*sub/t (re)
> +  pushing .*sub/t/s/ss (re)
>    searching for changes
>    no changes found
> -  pushing .*sub/t/s
> +  pushing .*sub/t/s (re)
>    searching for changes
>    abort: push creates new remote heads on branch 'default'!
>    (did you forget to merge? use push -f to force)
>    [255]
>    $ hg push -f
> -  pushing .*sub/t
> -  pushing .*sub/t/s/ss
> +  pushing .*sub/t (re)
> +  pushing .*sub/t/s/ss (re)
>    searching for changes
>    no changes found
> -  pushing .*sub/t/s
> +  pushing .*sub/t/s (re)
>    searching for changes
>    adding changesets
>    adding manifests
>    adding file changes
>    added 1 changesets with 1 changes to 1 files (+1 heads)
> -  pushing .*sub/t/t
> +  pushing .*sub/t/t (re)
>    searching for changes
>    no changes found
>    searching for changes
> @@ -337,7 +337,7 @@ pull
>  
>    $ cd ../tc
>    $ hg pull
> -  pulling .*sub/t
> +  pulling .*sub/t (re)
>    searching for changes
>    adding changesets
>    adding manifests
> @@ -348,7 +348,7 @@ pull
>  should pull t
>  
>    $ hg up
> -  pulling subrepo t from .*/sub/t/t
> +  pulling subrepo t from .*/sub/t/t (re)
>    searching for changes
>    adding changesets
>    adding manifests
> @@ -541,9 +541,9 @@ test repository cloning
>    $ cat mercurial2/main/nested_absolute/.hg/hgrc \
>    >     mercurial2/main/nested_relative/.hg/hgrc
>    [paths]
> -  default = .*/test-subrepo.t/sub/mercurial/nested_absolute
> +  default = .*/test-subrepo.t/sub/mercurial/nested_absolute (re)
>    [paths]
> -  default = .*/test-subrepo.t/sub/mercurial/nested_relative
> +  default = .*/test-subrepo.t/sub/mercurial/nested_relative (re)
>    $ rm -rf mercurial mercurial2
>  
>  issue 1977
> @@ -559,7 +559,7 @@ issue 1977
>    committing subrepository s
>    $ hg clone repo repo2
>    updating to branch default
> -  pulling subrepo s from .*/sub/repo/s
> +  pulling subrepo s from .*/sub/repo/s (re)
>    requesting all changes
>    adding changesets
>    adding manifests
> diff --git a/tests/test-tags.t b/tests/test-tags.t
> --- a/tests/test-tags.t
> +++ b/tests/test-tags.t
> @@ -299,7 +299,7 @@ Don't allow moving tag without -f:
>  Strip 1: expose an old head:
>  
>    $ hg --config extensions.mq= strip 5
> -  saved backup bundle to .*
> +  saved backup bundle to .* (re)
>    $ hg tags                  # partly stale cache
>    tip                                5:735c3ca72986
>    bar                                1:78391a272241
> @@ -310,7 +310,7 @@ Strip 1: expose an old head:
>  Strip 2: destroy whole branch, no old head exposed
>  
>    $ hg --config extensions.mq= strip 4
> -  saved backup bundle to .*
> +  saved backup bundle to .* (re)
>    $ hg tags                  # partly stale
>    tip                                4:735c3ca72986
>    bar                                0:bbd179dfa0a7
> diff --git a/tests/test-transplant.t b/tests/test-transplant.t
> --- a/tests/test-transplant.t
> +++ b/tests/test-transplant.t
> @@ -285,16 +285,16 @@ test filter
>    > EOF
>    $ chmod +x test-filter
>    $ hg transplant -s ../t -b tip -a --filter ./test-filter
> -  filtering .*
> +  filtering .* (re)
>    applying 17ab29e464c6
>    17ab29e464c6 transplanted to e9ffc54ea104
> -  filtering .*
> +  filtering .* (re)
>    applying 37a1297eb21b
>    37a1297eb21b transplanted to 348b36d0b6a5
> -  filtering .*
> +  filtering .* (re)
>    applying 722f4667af76
>    722f4667af76 transplanted to 0aa6979afb95
> -  filtering .*
> +  filtering .* (re)
>    applying a53251cdf717
>    a53251cdf717 transplanted to 14f8512272b5
>    $ hg log --template '{rev} {parents} {desc}\n'
> @@ -316,7 +316,7 @@ test filter with failed patch
>    adding test-filter
>    created new head
>    $ hg transplant 1 --filter ./test-filter
> -  filtering .*
> +  filtering .* (re)
>    applying 348b36d0b6a5
>    file b1 already exists
>    1 out of 1 hunks FAILED -- saving rejects to file b1.rej
> diff --git a/tests/test-url-rev.t b/tests/test-url-rev.t
> --- a/tests/test-url-rev.t
> +++ b/tests/test-url-rev.t
> @@ -42,7 +42,7 @@ Test basic functionality of url#rev synt
>    
>    $ cat clone/.hg/hgrc
>    [paths]
> -  default = .*/repo#foo
> +  default = .*/repo#foo (re)
>  
>  Changing original repo:
>  
> diff --git a/tests/test-walk.t b/tests/test-walk.t
> --- a/tests/test-walk.t
> +++ b/tests/test-walk.t
> @@ -216,7 +216,7 @@ Test absolute paths:
>    f  beans/pinto     beans/pinto
>    f  beans/turtle    beans/turtle
>    $ hg debugwalk `pwd`/..
> -  abort: .*/.. not under root
> +  abort: .*/.. not under root (re)
>    [255]
>  
>  Test patterns:
> 
> 


More information about the Mercurial-devel mailing list