changeset 17028:efd2e14f7235

merge with crew
author Matt Mackall <mpm@selenic.com>
date Thu, 21 Jun 2012 17:37:02 -0500
parents c8eda7bbdcab (current diff) 6c05eebd9fab (diff)
children 832f106945e8
files hgext/rebase.py tests/test-keyword.t
diffstat 47 files changed, 307 insertions(+), 179 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/rebase.py	Fri May 18 12:45:47 2012 -0700
+++ b/hgext/rebase.py	Thu Jun 21 17:37:02 2012 -0500
@@ -558,10 +558,11 @@
 def abort(repo, originalwd, target, state):
     'Restore the repository to its original state'
     dstates = [s for s in state.values() if s != nullrev]
-    if [d for d in dstates if not repo[d].mutable()]:
-        repo.ui.warn(_("warning: immutable rebased changeset detected, "
-                       "can't abort\n"))
-        return -1
+    immutable = [d for d in dstates if not repo[d].mutable()]
+    if immutable:
+        raise util.Abort(_("can't abort rebase due to immutable changesets %s")
+                         % ', '.join(str(repo[r]) for r in immutable),
+                         hint=_('see hg help phases for details'))
 
     descendants = set()
     if dstates:
--- a/mercurial/subrepo.py	Fri May 18 12:45:47 2012 -0700
+++ b/mercurial/subrepo.py	Thu Jun 21 17:37:02 2012 -0500
@@ -842,7 +842,6 @@
 
 class gitsubrepo(abstractsubrepo):
     def __init__(self, ctx, path, state):
-        # TODO add git version check.
         self._state = state
         self._ctx = ctx
         self._path = path
@@ -850,6 +849,29 @@
         self._abspath = ctx._repo.wjoin(path)
         self._subparent = ctx._repo
         self._ui = ctx._repo.ui
+        self._ensuregit()
+
+    def _ensuregit(self):
+        try:
+            self._gitexecutable = 'git'
+            out, err = self._gitnodir(['--version'])
+        except OSError, e:
+            if e.errno != 2 or os.name != 'nt':
+                raise
+            self._gitexecutable = 'git.cmd'
+            out, err = self._gitnodir(['--version'])
+        m = re.search(r'^git version (\d+)\.(\d+)\.(\d+)', out)
+        if not m:
+            self._ui.warn(_('cannot retrieve git version'))
+            return
+        version = (int(m.group(1)), m.group(2), m.group(3))
+        # git 1.4.0 can't work at all, but 1.5.X can in at least some cases,
+        # despite the docstring comment.  For now, error on 1.4.0, warn on
+        # 1.5.0 but attempt to continue.
+        if version < (1, 5, 0):
+            raise util.Abort(_('git subrepo requires at least 1.6.0 or later'))
+        elif version < (1, 6, 0):
+            self._ui.warn(_('git subrepo requires at least 1.6.0 or later'))
 
     def _gitcommand(self, commands, env=None, stream=False):
         return self._gitdir(commands, env=env, stream=stream)[0]
@@ -870,8 +892,8 @@
         errpipe = None
         if self._ui.quiet:
             errpipe = open(os.devnull, 'w')
-        p = subprocess.Popen(['git'] + commands, bufsize=-1, cwd=cwd, env=env,
-                             close_fds=util.closefds,
+        p = subprocess.Popen([self._gitexecutable] + commands, bufsize=-1,
+                             cwd=cwd, env=env, close_fds=util.closefds,
                              stdout=subprocess.PIPE, stderr=errpipe)
         if stream:
             return p.stdout, None
--- a/tests/get-with-headers.py	Fri May 18 12:45:47 2012 -0700
+++ b/tests/get-with-headers.py	Thu Jun 21 17:37:02 2012 -0500
@@ -21,14 +21,14 @@
 
 tag = None
 def request(host, path, show):
-
+    assert not path.startswith('/'), path
     global tag
     headers = {}
     if tag:
         headers['If-None-Match'] = tag
 
     conn = httplib.HTTPConnection(host)
-    conn.request("GET", path, None, headers)
+    conn.request("GET", '/' + path, None, headers)
     response = conn.getresponse()
     print response.status, reasons.get(response.reason, response.reason)
     for h in [h.lower() for h in show]:
--- a/tests/hghave.py	Fri May 18 12:45:47 2012 -0700
+++ b/tests/hghave.py	Thu Jun 21 17:37:02 2012 -0500
@@ -239,7 +239,9 @@
         return False
 
 def has_outer_repo():
-    return matchoutput('hg root 2>&1', r'')
+    # failing for other reasons than 'no repo' imply that there is a repo
+    return not matchoutput('hg root 2>&1',
+                           r'abort: no repository found', True)
 
 def has_ssl():
     try:
--- a/tests/printenv.py	Fri May 18 12:45:47 2012 -0700
+++ b/tests/printenv.py	Thu Jun 21 17:37:02 2012 -0500
@@ -3,7 +3,7 @@
 # put something like this in the repo .hg/hgrc:
 #
 #     [hooks]
-#     changegroup = python "$TESTDIR"/printenv.py <hookname> [exit] [output]
+#     changegroup = python "$TESTDIR/printenv.py" <hookname> [exit] [output]
 #
 #   - <hookname> is a mandatory argument (e.g. "changegroup")
 #   - [exit] is the exit code of the hook (default: 0)
--- a/tests/test-alias.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-alias.t	Thu Jun 21 17:37:02 2012 -0500
@@ -109,8 +109,10 @@
 
 optional repository
 
+#if no-outer-repo
   $ hg optionalrepo
   init
+#endif
   $ cd alias
   $ cat > .hg/hgrc <<EOF
   > [alias]
--- a/tests/test-archive.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-archive.t	Thu Jun 21 17:37:02 2012 -0500
@@ -20,10 +20,10 @@
   >     hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
   >     cat hg.pid >> $DAEMON_PIDS
   >     echo % $1 allowed should give 200
-  >     "$TESTDIR/get-with-headers.py" localhost:$HGPORT "/archive/tip.$2" | head -n 1
+  >     "$TESTDIR/get-with-headers.py" localhost:$HGPORT "archive/tip.$2" | head -n 1
   >     echo % $3 and $4 disallowed should both give 403
-  >     "$TESTDIR/get-with-headers.py" localhost:$HGPORT "/archive/tip.$3" | head -n 1
-  >     "$TESTDIR/get-with-headers.py" localhost:$HGPORT "/archive/tip.$4" | head -n 1
+  >     "$TESTDIR/get-with-headers.py" localhost:$HGPORT "archive/tip.$3" | head -n 1
+  >     "$TESTDIR/get-with-headers.py" localhost:$HGPORT "archive/tip.$4" | head -n 1
   >     "$TESTDIR/killdaemons.py"
   >     cat errors.log
   >     cp .hg/hgrc-base .hg/hgrc
@@ -56,7 +56,7 @@
 
 invalid arch type should give 404
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT "/archive/tip.invalid" | head -n 1
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT "archive/tip.invalid" | head -n 1
   404 Unsupported archive type: None
 
   $ TIP=`hg id -v | cut -f1 -d' '`
--- a/tests/test-bad-pull.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-bad-pull.t	Thu Jun 21 17:37:02 2012 -0500
@@ -1,8 +1,14 @@
   $ "$TESTDIR/hghave" serve || exit 80
 
+#if windows
+  $ hg clone http://localhost:$HGPORT/ copy
+  abort: * (glob)
+  [255]
+#else
   $ hg clone http://localhost:$HGPORT/ copy
   abort: error: Connection refused
   [255]
+#endif
 
   $ test -d copy
   [1]
--- a/tests/test-bookmarks-pushpull.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-bookmarks-pushpull.t	Thu Jun 21 17:37:02 2012 -0500
@@ -121,7 +121,7 @@
      foobar                    1:9b140be10808
 
   $ hg pull --config paths.foo=../a foo
-  pulling from $TESTTMP/a
+  pulling from $TESTTMP/a (glob)
   searching for changes
   adding changesets
   adding manifests
@@ -251,6 +251,4 @@
      foo                       -1:000000000000
      foobar                    1:9b140be10808
 
-  $ kill `cat ../hg.pid`
-
   $ cd ..
--- a/tests/test-bundle.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-bundle.t	Thu Jun 21 17:37:02 2012 -0500
@@ -206,7 +206,7 @@
 Pull ../full.hg into empty (with hook)
 
   $ echo "[hooks]" >> .hg/hgrc
-  $ echo "changegroup = python \"$TESTDIR\"/printenv.py changegroup" >> .hg/hgrc
+  $ echo "changegroup = python \"$TESTDIR/printenv.py\" changegroup" >> .hg/hgrc
 
 doesn't work (yet ?)
 
@@ -388,6 +388,9 @@
   [255]
   $ cd ..
 
+hide outer repo
+  $ hg init
+
 Direct clone from bundle (all-history)
 
   $ hg clone full.hg full-clone
--- a/tests/test-config-case.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-config-case.t	Thu Jun 21 17:37:02 2012 -0500
@@ -1,3 +1,6 @@
+hide outer repo
+  $ hg init
+
   $ echo '[Section]' >> $HGRCPATH
   $ echo 'KeY = Case Sensitive' >> $HGRCPATH
   $ echo 'key = lower case' >> $HGRCPATH
--- a/tests/test-convert-cvs.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-convert-cvs.t	Thu Jun 21 17:37:02 2012 -0500
@@ -143,9 +143,9 @@
   sorting...
   converting...
   updating tags
-  $ hg cat -r tip srcfull-hg/src/a
+  $ hg cat -r tip --cwd srcfull-hg src/a
   a
-  $ hg cat -r tip srcfull-hg/src/b/c
+  $ hg cat -r tip --cwd srcfull-hg src/b/c
   c
   c
 
--- a/tests/test-convert-darcs.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-convert-darcs.t	Thu Jun 21 17:37:02 2012 -0500
@@ -14,12 +14,16 @@
   >     exit 80
   > fi
 
+#if no-outer-repo
+
 try converting darcs1 repository
 
   $ hg clone -q "$TESTDIR/bundles/darcs1.hg" darcs
   $ hg convert -s darcs darcs/darcs1 2>&1 | grep darcs-1.0
   darcs-1.0 repository format is unsupported, please upgrade
 
+#endif
+
 initialize darcs repo
 
   $ mkdir darcs-repo
--- a/tests/test-convert-svn-sink.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-convert-svn-sink.t	Thu Jun 21 17:37:02 2012 -0500
@@ -1,4 +1,4 @@
-  $ "$TESTDIR/hghave" svn13 no-outer-repo || exit 80
+  $ "$TESTDIR/hghave" svn13 || exit 80
 
   $ fixpath()
   > {
@@ -356,7 +356,7 @@
   use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
   [1]
   $ hg --cwd b revert -r 2 b
-  $ hg resolve -m b
+  $ hg --cwd b resolve -m b
   $ hg --cwd b ci -d '5 0' -m 'merge'
 
 Expect 4 changes
--- a/tests/test-dispatch.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-dispatch.t	Thu Jun 21 17:37:02 2012 -0500
@@ -1,9 +1,5 @@
 test command parsing and dispatch
 
-  $ "$TESTDIR/hghave" no-outer-repo || exit 80
-
-  $ dir=`pwd`
-
   $ hg init a
   $ cd a
 
@@ -48,6 +44,10 @@
   a: no such file in rev 000000000000
   [1]
 
+  $ cd "$TESTTMP"
+
+#if no-outer-repo
+
 No repo:
 
   $ cd $dir
@@ -55,3 +55,4 @@
   abort: no repository found in '$TESTTMP' (.hg not found)!
   [255]
 
+#endif
--- a/tests/test-extension.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-extension.t	Thu Jun 21 17:37:02 2012 -0500
@@ -1,7 +1,5 @@
 Test basic extension support
 
-  $ "$TESTDIR/hghave" no-outer-repo || exit 80
-
   $ cat > foobar.py <<EOF
   > import os
   > from mercurial import commands
@@ -132,6 +130,9 @@
 
   $ cd ..
 
+hide outer repo
+  $ hg init
+
   $ cat > empty.py <<EOF
   > '''empty cmdtable
   > '''
--- a/tests/test-globalopts.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-globalopts.t	Thu Jun 21 17:37:02 2012 -0500
@@ -1,5 +1,3 @@
-  $ "$TESTDIR/hghave" no-outer-repo || exit 80
-
   $ hg init a
   $ cd a
   $ echo a > a
@@ -77,6 +75,8 @@
   8580ff50825a tip
   $ cd ..
 
+#if no-outer-repo
+
 Implicit -R:
 
   $ hg ann a/a
@@ -93,6 +93,8 @@
   abort: no repository found in '$TESTTMP' (.hg not found)!
   [255]
 
+#endif
+
 Abbreviation of long option:
 
   $ hg --repo c tip
@@ -272,6 +274,9 @@
   $ hg --version -q
   Mercurial Distributed SCM * (glob)
 
+hide outer repo
+  $ hg init
+
 Testing -h/--help:
 
   $ hg -h
--- a/tests/test-glog.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-glog.t	Thu Jun 21 17:37:02 2012 -0500
@@ -69,8 +69,6 @@
 o  (0) root
 
 
-  $ "$TESTDIR/hghave" no-outer-repo || exit 80
-
   $ commit()
   > {
   >   rev=$1
@@ -1136,8 +1134,11 @@
 Empty revision range - display nothing:
   $ hg glog -r 1..0
 
+  $ cd ..
+
+#if no-outer-repo
+
 From outer space:
-  $ cd ..
   $ hg glog -l1 repo
   @  changeset:   34:fea3ac5810e0
   |  tag:         tip
@@ -1156,6 +1157,8 @@
   |
   $ hg glog -l1 repo/missing
 
+#endif
+
 File log with revs != cset revs:
   $ hg init flog
   $ cd flog
--- a/tests/test-hgrc.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-hgrc.t	Thu Jun 21 17:37:02 2012 -0500
@@ -1,3 +1,6 @@
+hide outer repo
+  $ hg init
+
 Use hgrc within $TESTTMP
 
   $ HGRCPATH=`pwd`/hgrc
@@ -63,6 +66,7 @@
 make sure global options given on the cmdline take precedence
 
   $ hg showconfig --config ui.verbose=True --quiet
+  bundle.mainreporoot=$TESTTMP
   ui.verbose=False
   ui.debug=False
   ui.quiet=True
@@ -93,6 +97,7 @@
   $ cd ..
 
   $ hg showconfig
+  bundle.mainreporoot=$TESTTMP
   ui.username=$FAKEUSER
 
   $ unset FAKEUSER
@@ -117,7 +122,6 @@
 
 HGPLAIN
 
-  $ p=`pwd`
   $ echo "[ui]" > $HGRC
   $ echo "debug=true" >> $HGRC
   $ echo "fallbackencoding=ASCII" >> $HGRC
@@ -137,6 +141,7 @@
   $ hg showconfig
   read config from: $TESTTMP/hgrc
   $TESTTMP/hgrc:13: alias.log=log -g
+  none: bundle.mainreporoot=$TESTTMP
   $TESTTMP/hgrc:11: defaults.identify=-n
   $TESTTMP/hgrc:2: ui.debug=true
   $TESTTMP/hgrc:3: ui.fallbackencoding=ASCII
@@ -152,6 +157,7 @@
   $ HGPLAIN=; export HGPLAIN
   $ hg showconfig --config ui.traceback=True --debug
   read config from: $TESTTMP/hgrc
+  none: bundle.mainreporoot=$TESTTMP
   none: ui.traceback=True
   none: ui.verbose=False
   none: ui.debug=True
@@ -169,6 +175,7 @@
   $ hg showconfig --config ui.traceback=True --debug
   plain: True
   read config from: $TESTTMP/hgrc
+  none: bundle.mainreporoot=$TESTTMP
   $TESTTMP/hgrc:15: extensions.plain=./plain.py
   none: ui.traceback=True
   none: ui.verbose=False
@@ -178,6 +185,7 @@
   $ hg showconfig --config ui.traceback=True --debug
   plain: True
   read config from: $TESTTMP/hgrc
+  none: bundle.mainreporoot=$TESTTMP
   $TESTTMP/hgrc:15: extensions.plain=./plain.py
   none: ui.traceback=True
   none: ui.verbose=False
@@ -187,6 +195,7 @@
   $ hg showconfig --config ui.traceback=True --debug
   plain: True
   read config from: $TESTTMP/hgrc
+  none: bundle.mainreporoot=$TESTTMP
   $TESTTMP/hgrc:15: extensions.plain=./plain.py
   none: ui.traceback=True
   none: ui.verbose=False
--- a/tests/test-hgweb-commands.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-hgweb-commands.t	Thu Jun 21 17:37:02 2012 -0500
@@ -37,7 +37,7 @@
 
 Logs and changes
 
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log/?style=atom'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/?style=atom'
   200 Script output follows
   
   <?xml version="1.0" encoding="ascii"?>
@@ -115,7 +115,7 @@
    </entry>
   
   </feed>
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log/1/?style=atom'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/1/?style=atom'
   200 Script output follows
   
   <?xml version="1.0" encoding="ascii"?>
@@ -193,7 +193,7 @@
    </entry>
   
   </feed>
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log/1/foo/?style=atom'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log/1/foo/?style=atom'
   200 Script output follows
   
   <?xml version="1.0" encoding="ascii"?>
@@ -221,7 +221,7 @@
    </entry>
   
   </feed>
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/shortlog/'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'shortlog/'
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -326,7 +326,7 @@
   </body>
   </html>
   
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/rev/0/'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/0/'
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -453,7 +453,7 @@
   </body>
   </html>
   
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/rev/1/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'rev/1/?style=raw'
   200 Script output follows
   
   
@@ -470,7 +470,7 @@
   @@ -0,0 +1,1 @@
   +2ef0ac749a14e4f57a5a822464a0902c6f7f448f 1.0
   
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/log?rev=base'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'log?rev=base'
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -548,11 +548,11 @@
 
 File-related
 
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/foo/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/1/foo/?style=raw'
   200 Script output follows
   
   foo
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/annotate/1/foo/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'annotate/1/foo/?style=raw'
   200 Script output follows
   
   
@@ -561,7 +561,7 @@
   
   
   
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/1/?style=raw'
   200 Script output follows
   
   
@@ -570,7 +570,7 @@
   -rw-r--r-- 4 foo
   
   
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/1/foo'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/1/foo'
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -663,7 +663,7 @@
   </body>
   </html>
   
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/filediff/0/foo/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'filediff/0/foo/?style=raw'
   200 Script output follows
   
   
@@ -677,7 +677,7 @@
   
   
 
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/filediff/1/foo/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'filediff/1/foo/?style=raw'
   200 Script output follows
   
   
@@ -688,23 +688,23 @@
 
 Overviews
 
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/raw-tags'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'raw-tags'
   200 Script output follows
   
   tip	ba87b23d29ca67a305625d81a20ac279c1e3f444
   1.0	2ef0ac749a14e4f57a5a822464a0902c6f7f448f
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/raw-branches'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'raw-branches'
   200 Script output follows
   
   unstable	ba87b23d29ca67a305625d81a20ac279c1e3f444	open
   stable	1d22e65f027e5a0609357e7d8e7508cd2ba5d2fe	inactive
   default	a4f92ed23982be056b9852de5dfe873eaac7f0de	inactive
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/raw-bookmarks'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'raw-bookmarks'
   200 Script output follows
   
   anotherthing	2ef0ac749a14e4f57a5a822464a0902c6f7f448f
   something	ba87b23d29ca67a305625d81a20ac279c1e3f444
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/summary/?style=gitweb'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'summary/?style=gitweb'
   200 Script output follows
   
   <?xml version="1.0" encoding="ascii"?>
@@ -906,7 +906,7 @@
   </body>
   </html>
   
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/graph/?style=gitweb'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/?style=gitweb'
   200 Script output follows
   
   <?xml version="1.0" encoding="ascii"?>
@@ -1049,7 +1049,7 @@
   
 raw graph
 
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/graph/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/?style=raw'
   200 Script output follows
   
   
@@ -1147,7 +1147,7 @@
 
 Static files
 
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/static/style.css'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'static/style.css'
   200 Script output follows
   
   a { text-decoration:none; }
@@ -1270,7 +1270,7 @@
 
 Graph json escape of multibyte character
 
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/graph/' \
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'graph/' \
   >     | grep '^var data ='
   var data = [["548001d11f45", [0, 1], [[0, 0, 1, -1, ""]], "\u80fd", "test", "1970-01-01", ["unstable", true], ["tip"], ["something"]], ["ba87b23d29ca", [0, 1], [[0, 0, 1, 3, "FF0000"]], "branch", "test", "1970-01-01", ["unstable", false], [], []], ["1d22e65f027e", [0, 1], [[0, 0, 1, 3, ""]], "branch", "test", "1970-01-01", ["stable", true], [], []], ["a4f92ed23982", [0, 1], [[0, 0, 1, 3, ""]], "Added tag 1.0 for changeset 2ef0ac749a14", "test", "1970-01-01", ["default", true], [], []], ["2ef0ac749a14", [0, 1], [], "base", "test", "1970-01-01", ["default", false], ["1.0"], ["anotherthing"]]];
 
--- a/tests/test-hgweb-descend-empties.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-hgweb-descend-empties.t	Thu Jun 21 17:37:02 2012 -0500
@@ -29,7 +29,7 @@
 
 manifest with descending
 
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file'
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
--- a/tests/test-hgweb-diffs.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-hgweb-diffs.t	Thu Jun 21 17:37:02 2012 -0500
@@ -23,7 +23,7 @@
 
 revision
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/rev/0'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'rev/0'
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -153,7 +153,7 @@
 
 raw revision
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/raw-rev/0'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'raw-rev/0'
   200 Script output follows
   
   
@@ -178,7 +178,7 @@
 
 diff removed file
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/tip/b'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'diff/tip/b'
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -283,7 +283,7 @@
 
 revision
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/rev/0'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'rev/0'
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -415,7 +415,7 @@
 
 revision
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/raw-rev/0'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'raw-rev/0'
   200 Script output follows
   
   
@@ -442,7 +442,7 @@
 
 diff removed file
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/tip/a'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'diff/tip/a'
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -572,7 +572,7 @@
   > EOF
   $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
   $ cat hg.pid >> $DAEMON_PIDS
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/raw-rev/0'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'raw-rev/0'
   200 Script output follows
   
   Block: 1
--- a/tests/test-hgweb-empty.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-hgweb-empty.t	Thu Jun 21 17:37:02 2012 -0500
@@ -6,7 +6,7 @@
   $ cd test
   $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
   $ cat hg.pid >> $DAEMON_PIDS
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/shortlog')
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'shortlog')
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -91,7 +91,7 @@
   </body>
   </html>
   
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/log')
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log')
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -176,7 +176,7 @@
   </body>
   </html>
   
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/graph')
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'graph')
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -322,7 +322,7 @@
   </body>
   </html>
   
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file')
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file')
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
--- a/tests/test-hgweb-filelog.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-hgweb-filelog.t	Thu Jun 21 17:37:02 2012 -0500
@@ -109,7 +109,7 @@
 
 tip - two revisions
 
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/log/tip/a')
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/tip/a')
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -210,7 +210,7 @@
 
 second version - two revisions
 
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/log/3/a')
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/3/a')
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -311,7 +311,7 @@
 
 first deleted - one revision
 
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/log/2/a')
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/2/a')
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -407,7 +407,7 @@
 
 first version - one revision
 
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/log/1/a')
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/1/a')
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -503,7 +503,7 @@
 
 before addition - error
 
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/log/0/a')
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/0/a')
   404 Not Found
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -567,7 +567,7 @@
 
 should show base link, use spartan because it shows it
 
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/log/tip/c?style=spartan')
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'log/tip/c?style=spartan')
   200 Script output follows
   
   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
@@ -676,7 +676,7 @@
 
 rss log
 
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/rss-log/tip/a')
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'rss-log/tip/a')
   200 Script output follows
   
   <?xml version="1.0" encoding="ascii"?>
@@ -707,7 +707,7 @@
 
 atom log
 
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/atom-log/tip/a')
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'atom-log/tip/a')
   200 Script output follows
   
   <?xml version="1.0" encoding="ascii"?>
--- a/tests/test-hgweb-raw.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-hgweb-raw.t	Thu Jun 21 17:37:02 2012 -0500
@@ -17,7 +17,7 @@
   $ hg serve -p $HGPORT -A access.log -E error.log -d --pid-file=hg.pid
 
   $ cat hg.pid >> $DAEMON_PIDS
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/?f=bf0ff59095c9;file=sub/some%20text%25.txt;style=raw' content-type content-length content-disposition) >getoutput.txt
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '?f=bf0ff59095c9;file=sub/some%20text%25.txt;style=raw' content-type content-length content-disposition) >getoutput.txt
 
   $ while kill `cat hg.pid` 2>/dev/null; do sleep 0; done
 
@@ -39,7 +39,7 @@
   > --config web.guessmime=True
 
   $ cat hg.pid >> $DAEMON_PIDS
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/?f=bf0ff59095c9;file=sub/some%20text%25.txt;style=raw' content-type content-length content-disposition) >getoutput.txt
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '?f=bf0ff59095c9;file=sub/some%20text%25.txt;style=raw' content-type content-length content-disposition) >getoutput.txt
   $ while kill `cat hg.pid` 2>/dev/null; do sleep 0; done
 
   $ cat getoutput.txt
--- a/tests/test-hgweb-removed.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-hgweb-removed.t	Thu Jun 21 17:37:02 2012 -0500
@@ -17,7 +17,7 @@
 
 revision
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/rev/tip'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'rev/tip'
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -135,7 +135,7 @@
 
 diff removed file
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/tip/a'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'diff/tip/a'
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
--- a/tests/test-hgweb.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-hgweb.t	Thu Jun 21 17:37:02 2012 -0500
@@ -15,7 +15,7 @@
 
 manifest
 
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/?style=raw')
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/?style=raw')
   200 Script output follows
   
   
@@ -23,7 +23,7 @@
   -rw-r--r-- 4 foo
   
   
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/da?style=raw')
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/da?style=raw')
   200 Script output follows
   
   
@@ -33,14 +33,14 @@
 
 plain file
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/foo?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/foo?style=raw'
   200 Script output follows
   
   foo
 
 should give a 404 - static file that does not exist
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/static/bogus'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'static/bogus'
   404 Not Found
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -104,7 +104,7 @@
 
 should give a 404 - bad revision
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/spam/foo?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/spam/foo?style=raw'
   404 Not Found
   
   
@@ -113,7 +113,7 @@
 
 should give a 400 - bad command
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/foo?cmd=spam&style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/foo?cmd=spam&style=raw'
   400* (glob)
   
   
@@ -122,13 +122,13 @@
 
 should give a 404 - file does not exist
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/bork?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/bork?style=raw'
   404 Not Found
   
   
   error: bork@2ef0ac749a14: not found in manifest
   [1]
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/bork'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/bork'
   404 Not Found
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -189,7 +189,7 @@
   </html>
   
   [1]
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/tip/bork?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'diff/tip/bork?style=raw'
   404 Not Found
   
   
@@ -198,7 +198,7 @@
 
 try bad style
 
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/?style=foobar')
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/?style=foobar')
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -306,7 +306,7 @@
 
 static file
 
-  $ "$TESTDIR/get-with-headers.py" --twice localhost:$HGPORT '/static/style-gitweb.css'
+  $ "$TESTDIR/get-with-headers.py" --twice localhost:$HGPORT 'static/style-gitweb.css'
   200 Script output follows
   
   body { font-family: sans-serif; font-size: 12px; margin:0px; border:solid #d9d8d1; border-width:1px; margin:10px; }
--- a/tests/test-hgwebdir.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-hgwebdir.t	Thu Jun 21 17:37:02 2012 -0500
@@ -1,5 +1,10 @@
   $ "$TESTDIR/hghave" serve || exit 80
 
+hide outer repo and work in dir without '.hg'
+  $ hg init
+  $ mkdir dir
+  $ cd dir
+
 Tests some basic hgwebdir functionality. Tests setting up paths and
 collection, different forms of 404s and the subdirectory support.
 
@@ -59,6 +64,8 @@
   $ rm -R nostore/.hg/store
   $ root=`pwd`
   $ cd ..
+
+serve
   $ cat > paths.conf <<EOF
   > [paths]
   > a=$root/a
@@ -70,7 +77,7 @@
 
 should give a 404 - file does not exist
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/a/file/tip/bork?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'a/file/tip/bork?style=raw'
   404 Not Found
   
   
@@ -79,25 +86,25 @@
 
 should succeed
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '?style=raw'
   200 Script output follows
   
   
   /a/
   /b/
   
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/a/file/tip/a?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'a/file/tip/a?style=raw'
   200 Script output follows
   
   a
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/b/file/tip/b?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'b/file/tip/b?style=raw'
   200 Script output follows
   
   b
 
 should give a 404 - repo is not published
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/c/file/tip/c?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'c/file/tip/c?style=raw'
   404 Not Found
   
   
@@ -106,14 +113,14 @@
 
 atom-log without basedir
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/a/atom-log' | grep '<link'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'a/atom-log' | grep '<link'
    <link rel="self" href="http://*:$HGPORT/a/atom-log"/> (glob)
    <link rel="alternate" href="http://*:$HGPORT/a/"/> (glob)
     <link href="http://*:$HGPORT/a/rev/8580ff50825a"/> (glob)
 
 rss-log without basedir
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/a/rss-log' | grep '<guid'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'a/rss-log' | grep '<guid'
       <guid isPermaLink="true">http://*:$HGPORT/a/rev/8580ff50825a</guid> (glob)
   $ cat > paths.conf <<EOF
   > [paths]
@@ -131,7 +138,7 @@
 
 should succeed, slashy names
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '?style=raw'
   200 Script output follows
   
   
@@ -170,7 +177,7 @@
   /astar/
   /astar/.hg/patches/
   
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/?style=paper'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '?style=paper'
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -483,19 +490,19 @@
   </body>
   </html>
   
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 't?style=raw'
   200 Script output follows
   
   
   /t/a/
   
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 't/?style=raw'
   200 Script output follows
   
   
   /t/a/
   
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/?style=paper'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 't/?style=paper'
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -544,7 +551,7 @@
   </body>
   </html>
   
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/a?style=atom'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 't/a?style=atom'
   200 Script output follows
   
   <?xml version="1.0" encoding="ascii"?>
@@ -574,7 +581,7 @@
    </entry>
   
   </feed>
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/a/?style=atom'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 't/a/?style=atom'
   200 Script output follows
   
   <?xml version="1.0" encoding="ascii"?>
@@ -604,14 +611,14 @@
    </entry>
   
   </feed>
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/a/file/tip/a?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 't/a/file/tip/a?style=raw'
   200 Script output follows
   
   a
 
 Test [paths] '*' extension
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/coll/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'coll/?style=raw'
   200 Script output follows
   
   
@@ -622,14 +629,14 @@
   /coll/notrepo/e/
   /coll/notrepo/f/
   
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/coll/a/file/tip/a?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'coll/a/file/tip/a?style=raw'
   200 Script output follows
   
   a
 
 Test [paths] '**' extension
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/rcoll/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/?style=raw'
   200 Script output follows
   
   
@@ -643,7 +650,7 @@
   /rcoll/notrepo/f/
   /rcoll/notrepo/f/f2/
   
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/rcoll/b/d/file/tip/d?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/b/d/file/tip/d?style=raw'
   200 Script output follows
   
   d
@@ -658,7 +665,7 @@
   $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
   >     -A access-paths.log -E error-paths-3.log
   $ cat hg.pid >> $DAEMON_PIDS
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/coll/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'coll/?style=raw'
   200 Script output follows
   
   
@@ -668,11 +675,11 @@
   /coll/c/
   /coll/notrepo/
   
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/coll/a/file/tip/a?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'coll/a/file/tip/a?style=raw'
   200 Script output follows
   
   a
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/rcoll/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/?style=raw'
   200 Script output follows
   
   
@@ -683,14 +690,14 @@
   /rcoll/c/
   /rcoll/notrepo/
   
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/rcoll/b/d/file/tip/d?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/b/d/file/tip/d?style=raw'
   200 Script output follows
   
   d
 
 Test intermediate directories
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/rcoll/notrepo/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/notrepo/?style=raw'
   200 Script output follows
   
   
@@ -702,14 +709,14 @@
 
 Test repositories inside intermediate directories
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/rcoll/notrepo/e/file/tip/e?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/notrepo/e/file/tip/e?style=raw'
   200 Script output follows
   
   e
 
 Test subrepositories inside intermediate directories
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/rcoll/notrepo/f/f2/file/tip/f2?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/notrepo/f/f2/file/tip/f2?style=raw'
   200 Script output follows
   
   f2
@@ -723,7 +730,7 @@
   $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
   >     -A access-paths.log -E error-paths-4.log
   $ cat hg.pid >> $DAEMON_PIDS
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/coll/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'coll/?style=raw'
   200 Script output follows
   
   
@@ -731,11 +738,11 @@
   /coll/b/
   /coll/c/
   
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/coll/a/file/tip/a?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'coll/a/file/tip/a?style=raw'
   200 Script output follows
   
   a
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/rcoll/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/?style=raw'
   200 Script output follows
   
   
@@ -743,14 +750,14 @@
   /rcoll/b/
   /rcoll/c/
   
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/rcoll/b/d/file/tip/d?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/b/d/file/tip/d?style=raw'
   200 Script output follows
   
   d
 
 Test intermediate directories
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/rcoll/notrepo/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/notrepo/?style=raw'
   200 Script output follows
   
   
@@ -760,14 +767,14 @@
 
 Test repositories inside intermediate directories
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/rcoll/notrepo/e/file/tip/e?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/notrepo/e/file/tip/e?style=raw'
   200 Script output follows
   
   e
 
 Test subrepositories inside intermediate directories
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/rcoll/notrepo/f/f2/file/tip/f2?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 'rcoll/notrepo/f/f2/file/tip/f2?style=raw'
   200 Script output follows
   
   f2
@@ -787,7 +794,7 @@
   $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
   >     -A access-paths.log -E error-paths-5.log
   $ cat hg.pid >> $DAEMON_PIDS
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '?style=raw'
   200 Script output follows
   
   
@@ -795,7 +802,7 @@
   /t/b/
   /c/
   
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 't/?style=raw'
   200 Script output follows
   
   
@@ -813,14 +820,14 @@
   $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
   >     -A access-paths.log -E error-paths-6.log
   $ cat hg.pid >> $DAEMON_PIDS
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '?style=raw'
   200 Script output follows
   
   
   /t/
   /c/
   
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 't/?style=raw'
   200 Script output follows
   
   
@@ -837,13 +844,13 @@
   $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf paths.conf \
   >     -A access-paths.log -E error-paths-7.log
   $ cat hg.pid >> $DAEMON_PIDS
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '?style=raw'
   200 Script output follows
   
   
   /c/
   
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/t/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 't/?style=raw'
   200 Script output follows
   
   
@@ -862,7 +869,7 @@
 
 test inexistent and inaccessible repo should be ignored silently
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 ''
   200 Script output follows
   
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
@@ -914,7 +921,7 @@
 
 collections: should succeed
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '?style=raw'
   200 Script output follows
   
   
@@ -925,29 +932,29 @@
   /notrepo/e/
   /notrepo/f/
   
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/a/file/tip/a?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 'a/file/tip/a?style=raw'
   200 Script output follows
   
   a
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/b/file/tip/b?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 'b/file/tip/b?style=raw'
   200 Script output follows
   
   b
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/c/file/tip/c?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 'c/file/tip/c?style=raw'
   200 Script output follows
   
   c
 
 atom-log with basedir /
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/a/atom-log' | grep '<link'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 'a/atom-log' | grep '<link'
    <link rel="self" href="http://hg.example.com:8080/a/atom-log"/>
    <link rel="alternate" href="http://hg.example.com:8080/a/"/>
     <link href="http://hg.example.com:8080/a/rev/8580ff50825a"/>
 
 rss-log with basedir /
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/a/rss-log' | grep '<guid'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 'a/rss-log' | grep '<guid'
       <guid isPermaLink="true">http://hg.example.com:8080/a/rev/8580ff50825a</guid>
   $ "$TESTDIR/killdaemons.py"
   $ hg serve --config web.baseurl=http://hg.example.com:8080/foo/ -p $HGPORT2 -d \
@@ -957,14 +964,14 @@
 
 atom-log with basedir /foo/
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/a/atom-log' | grep '<link'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 'a/atom-log' | grep '<link'
    <link rel="self" href="http://hg.example.com:8080/foo/a/atom-log"/>
    <link rel="alternate" href="http://hg.example.com:8080/foo/a/"/>
     <link href="http://hg.example.com:8080/foo/a/rev/8580ff50825a"/>
 
 rss-log with basedir /foo/
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/a/rss-log' | grep '<guid'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 'a/rss-log' | grep '<guid'
       <guid isPermaLink="true">http://hg.example.com:8080/foo/a/rev/8580ff50825a</guid>
 
 paths errors 1
--- a/tests/test-hgwebdirsym.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-hgwebdirsym.t	Thu Jun 21 17:37:02 2012 -0500
@@ -1,6 +1,10 @@
 Tests whether or not hgwebdir properly handles various symlink topologies.
 
   $ "$TESTDIR/hghave" serve symlink || exit 80
+
+hide outer repo
+  $ hg init
+
   $ hg init a
   $ echo a > a/a
   $ hg --cwd a ci -Ama -d'1 0'
@@ -29,7 +33,7 @@
 
 should succeed
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '?style=raw'
   200 Script output follows
   
   
@@ -37,34 +41,34 @@
   /b/
   /c/
   
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/al/file/tip/a?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'al/file/tip/a?style=raw'
   200 Script output follows
   
   a
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/b/file/tip/b?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'b/file/tip/b?style=raw'
   200 Script output follows
   
   b
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/c/file/tip/c?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'c/file/tip/c?style=raw'
   200 Script output follows
   
   c
 
 should fail
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/circle/al/file/tip/a?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'circle/al/file/tip/a?style=raw'
   404 Not Found
   
   
   error: repository circle/al/file/tip/a not found
   [1]
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/circle/b/file/tip/a?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'circle/b/file/tip/a?style=raw'
   404 Not Found
   
   
   error: repository circle/b/file/tip/a not found
   [1]
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/circle/c/file/tip/a?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'circle/c/file/tip/a?style=raw'
   404 Not Found
   
   
--- a/tests/test-highlight.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-highlight.t	Thu Jun 21 17:37:02 2012 -0500
@@ -55,7 +55,7 @@
 
 hgweb filerevision, html
 
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/primes.py') \
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/primes.py') \
   >     | sed "s/class=\"k\"/class=\"kn\"/g" | sed "s/class=\"mf\"/class=\"mi\"/g"
   200 Script output follows
   
@@ -183,7 +183,7 @@
 
 hgweb fileannotate, html
 
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/annotate/tip/primes.py') \
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'annotate/tip/primes.py') \
   >     | sed "s/class=\"k\"/class=\"kn\"/g" | sed "s/class=\"mi\"/class=\"mf\"/g"
   200 Script output follows
   
@@ -509,7 +509,7 @@
 
 hgweb fileannotate, raw
 
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/annotate/tip/primes.py?style=raw') \
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'annotate/tip/primes.py?style=raw') \
   >     | sed "s/test@//" > a
   $ echo "200 Script output follows" > b
   $ echo "" >> b
@@ -523,7 +523,7 @@
 
 hgweb filerevision, raw
 
-  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/primes.py?style=raw') \
+  $ ("$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/primes.py?style=raw') \
   >     > a
   $ echo "200 Script output follows" > b
   $ echo "" >> b
@@ -532,7 +532,7 @@
 
 hgweb highlightcss friendly
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/highlightcss' > out
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'highlightcss' > out
   $ head -n 4 out
   200 Script output follows
   
@@ -559,7 +559,7 @@
 
 hgweb highlightcss fruity
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/highlightcss' > out
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'highlightcss' > out
   $ head -n 4 out
   200 Script output follows
   
@@ -583,7 +583,7 @@
   >     cat hg.pid >> $DAEMON_PIDS
   > 
   >     echo % hgweb filerevision, html
-  >     "$TESTDIR/get-with-headers.py" localhost:$HGPORT "/file/tip/$2" \
+  >     "$TESTDIR/get-with-headers.py" localhost:$HGPORT "file/tip/$2" \
   >         | grep '<div class="parity0 source">'
   >     echo % errors encountered
   >     cat errors.log
--- a/tests/test-http.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-http.t	Thu Jun 21 17:37:02 2012 -0500
@@ -17,9 +17,15 @@
 
 Test server address cannot be reused
 
+#if windows
+  $ hg serve -p $HGPORT1 2>&1
+  abort: cannot start server at ':$HGPORT1': * (glob)
+  [255]
+#else
   $ hg serve -p $HGPORT1 2>&1
   abort: cannot start server at ':$HGPORT1': Address already in use
   [255]
+#endif
   $ cd ..
   $ cat hg1.pid hg2.pid >> $DAEMON_PIDS
 
@@ -93,7 +99,7 @@
 
   $ cd copy-pull
   $ echo '[hooks]' >> .hg/hgrc
-  $ echo 'changegroup = python "$TESTDIR"/printenv.py changegroup' >> .hg/hgrc
+  $ echo "changegroup = python \"$TESTDIR/printenv.py\" changegroup" >> .hg/hgrc
   $ hg pull
   pulling from http://localhost:$HGPORT1/
   searching for changes
--- a/tests/test-https.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-https.t	Thu Jun 21 17:37:02 2012 -0500
@@ -104,9 +104,15 @@
 
 Test server address cannot be reused
 
+#if windows
+  $ hg serve -p $HGPORT --certificate=$PRIV 2>&1
+  abort: cannot start server at ':$HGPORT': (glob)
+  [255]
+#else
   $ hg serve -p $HGPORT --certificate=$PRIV 2>&1
   abort: cannot start server at ':$HGPORT': Address already in use
   [255]
+#endif
   $ cd ..
 
 clone via pull
@@ -137,7 +143,7 @@
 
   $ cd copy-pull
   $ echo '[hooks]' >> .hg/hgrc
-  $ echo "changegroup = python '$TESTDIR'/printenv.py changegroup" >> .hg/hgrc
+  $ echo "changegroup = python \"$TESTDIR/printenv.py\" changegroup" >> .hg/hgrc
   $ hg pull
   warning: localhost certificate with fingerprint 91:4f:1a:ff:87:24:9c:09:b6:85:9b:88:b1:90:6d:30:75:64:91:ca not verified (check hostfingerprints or web.cacerts config setting)
   pulling from https://localhost:$HGPORT/
--- a/tests/test-i18n.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-i18n.t	Thu Jun 21 17:37:02 2012 -0500
@@ -2,6 +2,8 @@
 
   $ "$TESTDIR/hghave" gettext || exit 80
 
+#if no-outer-repo
+
 Test that translations are compiled and installed correctly.
 
 Default encoding in tests is "ascii" and the translation is encoded
@@ -23,6 +25,8 @@
   abortado: n\xe3o foi encontrado um reposit\xf3rio em '$TESTTMP' (.hg n\xe3o encontrado)! (esc)
   [255]
 
+#endif
+
 Test keyword search in translated help text:
 
   $ HGENCODING=UTF-8 LANGUAGE=de hg help -k blättern
--- a/tests/test-identify.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-identify.t	Thu Jun 21 17:37:02 2012 -0500
@@ -1,4 +1,6 @@
-  $ "$TESTDIR/hghave" no-outer-repo serve || exit 80
+  $ "$TESTDIR/hghave" serve || exit 80
+
+#if no-outer-repo
 
 no repo
 
@@ -6,6 +8,8 @@
   abort: there is no Mercurial repository here (.hg not found)
   [255]
 
+#endif
+
 create repo
 
   $ hg init test
@@ -51,8 +55,10 @@
   $ cd ..
   $ hg -R test id
   cb9a9f314b8b+ tip
+#if no-outer-repo
   $ hg id test
   cb9a9f314b8b+ tip
+#endif
 
 with remote http repo
 
@@ -111,7 +117,8 @@
   [255]
 
   $ cd ..
+#if no-outer-repo
   $ hg id test
   abort: unknown repository format: requires features 'fake' (upgrade Mercurial)!
   [255]
-
+#endif
--- a/tests/test-interhg.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-interhg.t	Thu Jun 21 17:37:02 2012 -0500
@@ -23,7 +23,7 @@
 
 log
 
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/' | grep bts
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '' | grep bts
     <td class="description"><a href="/rev/1b0e7ece6bd6"><a href="http://bts.example.org/issue123">Issue123</a>: fixed the <i class="x">bug</i>!</a><span class="branchhead">default</span> <span class="tag">tip</span> </td>
 
 errors
--- a/tests/test-keyword.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-keyword.t	Thu Jun 21 17:37:02 2012 -0500
@@ -11,6 +11,9 @@
   > interactive = true
   > EOF
 
+hide outer repo
+  $ hg init
+
 Run kwdemo before [keyword] files are set up
 as it would succeed without uisetup otherwise
 
@@ -928,14 +931,14 @@
 
   $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
   $ cat hg.pid >> $DAEMON_PIDS
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/file/tip/a/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'file/tip/a/?style=raw'
   200 Script output follows
   
   expand $Id: a bb948857c743 Thu, 01 Jan 1970 00:00:02 +0000 user $
   do not process $Id:
   xxx $
   $Xinfo: User Name <user@example.com>: firstline $
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/annotate/tip/a/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'annotate/tip/a/?style=raw'
   200 Script output follows
   
   
@@ -947,7 +950,7 @@
   
   
   
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/rev/tip/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'rev/tip/?style=raw'
   200 Script output follows
   
   
@@ -967,7 +970,7 @@
   +xxx $
   +$Xinfo$
   
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/bb948857c743/a?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'diff/bb948857c743/a?style=raw'
   200 Script output follows
   
   
--- a/tests/test-largefiles.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-largefiles.t	Thu Jun 21 17:37:02 2012 -0500
@@ -146,7 +146,7 @@
 
   $ hg serve -d -p $HGPORT --pid-file ../hg.pid
   $ cat ../hg.pid >> $DAEMON_PIDS
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/tip/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/tip/?style=raw'
   200 Script output follows
   
   
@@ -155,7 +155,7 @@
   -rw-r--r-- 9 normal3
   
   
-  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '/file/tip/sub/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT 'file/tip/sub/?style=raw'
   200 Script output follows
   
   
--- a/tests/test-mq-qclone-http.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-mq-qclone-http.t	Thu Jun 21 17:37:02 2012 -0500
@@ -1,5 +1,8 @@
   $ "$TESTDIR/hghave" serve || exit 80
 
+hide outer repo
+  $ hg init
+
   $ echo "[extensions]" >> $HGRCPATH
   $ echo "mq=" >> $HGRCPATH
   $ mkdir webdir
@@ -31,7 +34,7 @@
   $ hg serve -p $HGPORT -d --pid-file=hg.pid --webdir-conf collections.conf \
   >     -A access-paths.log -E error-paths-1.log
   $ cat hg.pid >> $DAEMON_PIDS
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '?style=raw'
   200 Script output follows
   
   
@@ -70,7 +73,7 @@
   $ hg serve -p $HGPORT1 -d --pid-file=hg.pid --webdir-conf collections1.conf \
   >     -A access-paths.log -E error-paths-1.log
   $ cat hg.pid >> $DAEMON_PIDS
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT1 '?style=raw'
   200 Script output follows
   
   
@@ -109,7 +112,7 @@
   $ hg serve -p $HGPORT2 -d --pid-file=hg.pid --webdir-conf collections2.conf \
   >     -A access-paths.log -E error-paths-1.log
   $ cat hg.pid >> $DAEMON_PIDS
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '/?style=raw'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT2 '?style=raw'
   200 Script output follows
   
   
--- a/tests/test-mq.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-mq.t	Thu Jun 21 17:37:02 2012 -0500
@@ -211,6 +211,8 @@
 
   $ cd ..
 
+#if no-outer-repo
+
 init --mq without repo
 
   $ mkdir f
@@ -220,6 +222,8 @@
   [255]
   $ cd ..
 
+#endif
+
 init --mq with repo path
 
   $ hg init g
--- a/tests/test-push-http.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-push-http.t	Thu Jun 21 17:37:02 2012 -0500
@@ -55,7 +55,7 @@
 
   $ echo 'allow_push = *' >> .hg/hgrc
   $ echo '[hooks]' >> .hg/hgrc
-  $ echo 'changegroup = python "$TESTDIR"/printenv.py changegroup 0' >> .hg/hgrc
+  $ echo "changegroup = python \"$TESTDIR/printenv.py\" changegroup 0" >> .hg/hgrc
   $ req
   pushing to http://localhost:$HGPORT/
   searching for changes
--- a/tests/test-rebase-interruptions.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-rebase-interruptions.t	Thu Jun 21 17:37:02 2012 -0500
@@ -248,7 +248,8 @@
 Abort the rebasing:
 
   $ hg rebase --abort
-  warning: immutable rebased changeset detected, can't abort
+  abort: can't abort rebase due to immutable changesets 45396c49d53b
+  (see hg help phases for details)
   [255]
 
   $ hg tglogp
--- a/tests/test-share.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-share.t	Thu Jun 21 17:37:02 2012 -0500
@@ -99,7 +99,7 @@
 
   $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid
   $ cat hg.pid >> $DAEMON_PIDS
-  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT '/raw-file/'
+  $ "$TESTDIR/get-with-headers.py" localhost:$HGPORT 'raw-file/'
   200 Script output follows
   
   
--- a/tests/test-ssh.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-ssh.t	Thu Jun 21 17:37:02 2012 -0500
@@ -14,7 +14,7 @@
   > uncompressed = True
   > 
   > [hooks]
-  > changegroup = python "$TESTDIR"/printenv.py changegroup-in-remote 0 ../dummylog
+  > changegroup = python "$TESTDIR/printenv.py" changegroup-in-remote 0 ../dummylog
   > EOF
   $ cd ..
 
@@ -70,7 +70,7 @@
   checking files
   2 files, 1 changesets, 2 total revisions
   $ echo '[hooks]' >> .hg/hgrc
-  $ echo 'changegroup = python "$TESTDIR"/printenv.py changegroup-in-local 0 ../dummylog' >> .hg/hgrc
+  $ echo "changegroup = python \"$TESTDIR/printenv.py\" changegroup-in-local 0 ../dummylog" >> .hg/hgrc
 
 empty default pull
 
@@ -271,6 +271,9 @@
 
   $ cd ..
 
+hide outer repo
+  $ hg init
+
 Test remote paths with spaces (issue2983):
 
   $ hg init --ssh "python \"$TESTDIR/dummyssh\"" "ssh://user@dummy/a repo"
--- a/tests/test-static-http.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-static-http.t	Thu Jun 21 17:37:02 2012 -0500
@@ -1,8 +1,14 @@
   $ "$TESTDIR/hghave" serve || exit 80
 
+#if windows
+  $ hg clone http://localhost:$HGPORT/ copy
+  abort: * (glob)
+  [255]
+#else
   $ hg clone http://localhost:$HGPORT/ copy
   abort: error: Connection refused
   [255]
+#endif
   $ test -d copy
   [1]
 
@@ -66,7 +72,7 @@
   $ rm .hg/cache/*
   $ cd ../local
   $ echo '[hooks]' >> .hg/hgrc
-  $ echo 'changegroup = python "$TESTDIR"/printenv.py changegroup' >> .hg/hgrc
+  $ echo "changegroup = python \"$TESTDIR/printenv.py\" changegroup" >> .hg/hgrc
   $ hg pull
   pulling from static-http://localhost:$HGPORT/remote
   searching for changes
--- a/tests/test-subrepo-git.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-subrepo-git.t	Thu Jun 21 17:37:02 2012 -0500
@@ -2,6 +2,8 @@
 
 make git commits repeatable
 
+  $ echo "[core]" >> $HOME/.gitconfig
+  $ echo "autocrlf = false" >> $HOME/.gitconfig
   $ GIT_AUTHOR_NAME='test'; export GIT_AUTHOR_NAME
   $ GIT_AUTHOR_EMAIL='test@example.org'; export GIT_AUTHOR_EMAIL
   $ GIT_AUTHOR_DATE='1234567891 +0000'; export GIT_AUTHOR_DATE
@@ -133,7 +135,7 @@
 user b push changes
 
   $ hg push 2>/dev/null
-  pushing to $TESTTMP/t
+  pushing to $TESTTMP/t (glob)
   pushing branch testing of subrepo s
   searching for changes
   adding changesets
@@ -145,7 +147,7 @@
 
   $ cd ../ta
   $ hg pull
-  pulling from $TESTTMP/t
+  pulling from $TESTTMP/t (glob)
   searching for changes
   adding changesets
   adding manifests
@@ -173,7 +175,7 @@
    source   ../gitroot
    revision f47b465e1bce645dbf37232a00574aa1546ca8d3
   $ hg push 2>/dev/null
-  pushing to $TESTTMP/t
+  pushing to $TESTTMP/t (glob)
   pushing branch testing of subrepo s
   searching for changes
   adding changesets
@@ -205,7 +207,7 @@
   $ echo aa >> a
   $ hg commit -m aa
   $ hg push
-  pushing to $TESTTMP/t
+  pushing to $TESTTMP/t (glob)
   searching for changes
   adding changesets
   adding manifests
@@ -292,7 +294,7 @@
   M inner/s/f
   $ hg commit --subrepos -m nested
   committing subrepository inner
-  committing subrepository inner/s
+  committing subrepository inner/s (glob)
 
 nested archive
 
@@ -509,8 +511,14 @@
 
 Test forgetting files, not implemented in git subrepo, used to
 traceback
+#if no-windows
   $ hg forget 'notafile*'
   notafile*: No such file or directory
   [1]
+#else
+  $ hg forget 'notafile'
+  notafile: * (glob)
+  [1]
+#endif
 
   $ cd ..
--- a/tests/test-subrepo-relative-path.t	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-subrepo-relative-path.t	Thu Jun 21 17:37:02 2012 -0500
@@ -29,6 +29,9 @@
   0 files updated, 0 files merged, 3 files removed, 0 files unresolved
   $ rm -rf main/sub
 
+hide outer repo
+  $ hg init
+
 Serving them both using hgweb
 
   $ printf '[paths]\n/main = main\nsub = sub\n' > webdir.conf
--- a/tests/test-symlink-os-yes-fs-no.py	Fri May 18 12:45:47 2012 -0700
+++ b/tests/test-symlink-os-yes-fs-no.py	Thu Jun 21 17:37:02 2012 -0500
@@ -8,8 +8,11 @@
 if not getattr(os, "symlink", False):
     sys.exit(80) # SKIPPED_STATUS defined in run-tests.py
 
+u = ui.ui()
+# hide outer repo
+hg.peer(u, {}, '.', create=True)
+
 # clone with symlink support
-u = ui.ui()
 hg.clone(u, {}, BUNDLEPATH, 'test0')
 
 repo = hg.repository(u, 'test0')