changeset 8457:e33baed7c1bc

merge with crew
author Benoit Boissinot <benoit.boissinot@ens-lyon.org>
date Sun, 17 May 2009 03:14:37 +0200
parents e9e2a2c9b294 (current diff) cb93eee1fbcd (diff)
children f6c99b1628d7
files tests/repr.py tests/test-bdiff tests/test-bdiff.out tests/test-demandimport tests/test-demandimport.out tests/test-ui-config tests/test-ui-config.out tests/test-ui-verbosity tests/test-ui-verbosity.out
diffstat 29 files changed, 451 insertions(+), 439 deletions(-) [+]
line wrap: on
line diff
--- a/tests/get-with-headers.py	Sun May 17 03:04:17 2009 +0200
+++ b/tests/get-with-headers.py	Sun May 17 03:14:37 2009 +0200
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-__doc__ = """This does HTTP get requests given a host:port and path and returns
+"""This does HTTP GET requests given a host:port and path and returns
 a subset of the headers plus the body of the result."""
 
 import httplib, sys, re
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/printrepr.py	Sun May 17 03:14:37 2009 +0200
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+#
+# Copyright 2009 Matt Mackall <mpm@selenic.com> and others
+#
+# This software may be used and distributed according to the terms of the
+# GNU General Public License version 2, incorporated herein by reference.
+
+"""prints repr(sys.stdin) but preserves newlines in input"""
+
+import sys
+print repr(sys.stdin.read())[1:-1].replace('\\n', '\n'),
--- a/tests/repr.py	Sun May 17 03:04:17 2009 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2009 Matt Mackall <mpm@selenic.com> and others
-#
-# This software may be used and distributed according to the terms of the
-# GNU General Public License version 2, incorporated herein by reference.
-
-"""prints repr(sys.stdin) but preserves newlines in input"""
-
-import sys
-print repr(sys.stdin.read())[1:-1].replace('\\n', '\n'),
--- a/tests/test-bdiff	Sun May 17 03:04:17 2009 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-#!/usr/bin/env python
-
-import sys, struct
-from mercurial import bdiff, mpatch
-
-def test1(a, b):
-    d = bdiff.bdiff(a, b)
-    c = a
-    if d:
-        c = mpatch.patches(a, [d])
-    if c != b:
-        print "***", repr(a), repr(b)
-        print "bad:"
-        print repr(c)[:200]
-        print repr(d)
-
-def test(a, b):
-    print "***", repr(a), repr(b)
-    test1(a, b)
-    test1(b, a)
-
-test("a\nc\n\n\n\n", "a\nb\n\n\n")
-test("a\nb\nc\n", "a\nc\n")
-test("", "")
-test("a\nb\nc", "a\nb\nc")
-test("a\nb\nc\nd\n", "a\nd\n")
-test("a\nb\nc\nd\n", "a\nc\ne\n")
-test("a\nb\nc\n", "a\nc\n")
-test("a\n", "c\na\nb\n")
-test("a\n", "")
-test("a\n", "b\nc\n")
-test("a\n", "c\na\n")
-test("", "adjfkjdjksdhfksj")
-test("", "ab")
-test("", "abc")
-test("a", "a")
-test("ab", "ab")
-test("abc", "abc")
-test("a\n", "a\n")
-test("a\nb", "a\nb")
-
-#issue1295
-def showdiff(a, b):
-    bin = bdiff.bdiff(a, b)
-    pos = 0
-    while pos < len(bin):
-        p1, p2, l = struct.unpack(">lll", bin[pos:pos + 12])
-        pos += 12
-        print p1, p2, repr(bin[pos:pos + l])
-        pos += l
-showdiff("x\n\nx\n\nx\n\nx\n\nz\n", "x\n\nx\n\ny\n\nx\n\nx\n\nz\n")
-showdiff("x\n\nx\n\nx\n\nx\n\nz\n", "x\n\nx\n\ny\n\nx\n\ny\n\nx\n\nz\n")
-
-print "done"
--- a/tests/test-bdiff.out	Sun May 17 03:04:17 2009 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-*** 'a\nc\n\n\n\n' 'a\nb\n\n\n'
-*** 'a\nb\nc\n' 'a\nc\n'
-*** '' ''
-*** 'a\nb\nc' 'a\nb\nc'
-*** 'a\nb\nc\nd\n' 'a\nd\n'
-*** 'a\nb\nc\nd\n' 'a\nc\ne\n'
-*** 'a\nb\nc\n' 'a\nc\n'
-*** 'a\n' 'c\na\nb\n'
-*** 'a\n' ''
-*** 'a\n' 'b\nc\n'
-*** 'a\n' 'c\na\n'
-*** '' 'adjfkjdjksdhfksj'
-*** '' 'ab'
-*** '' 'abc'
-*** 'a' 'a'
-*** 'ab' 'ab'
-*** 'abc' 'abc'
-*** 'a\n' 'a\n'
-*** 'a\nb' 'a\nb'
-6 6 'y\n\n'
-6 6 'y\n\n'
-9 9 'y\n\n'
-done
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-bdiff.py	Sun May 17 03:14:37 2009 +0200
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+
+import sys, struct
+from mercurial import bdiff, mpatch
+
+def test1(a, b):
+    d = bdiff.bdiff(a, b)
+    c = a
+    if d:
+        c = mpatch.patches(a, [d])
+    if c != b:
+        print "***", repr(a), repr(b)
+        print "bad:"
+        print repr(c)[:200]
+        print repr(d)
+
+def test(a, b):
+    print "***", repr(a), repr(b)
+    test1(a, b)
+    test1(b, a)
+
+test("a\nc\n\n\n\n", "a\nb\n\n\n")
+test("a\nb\nc\n", "a\nc\n")
+test("", "")
+test("a\nb\nc", "a\nb\nc")
+test("a\nb\nc\nd\n", "a\nd\n")
+test("a\nb\nc\nd\n", "a\nc\ne\n")
+test("a\nb\nc\n", "a\nc\n")
+test("a\n", "c\na\nb\n")
+test("a\n", "")
+test("a\n", "b\nc\n")
+test("a\n", "c\na\n")
+test("", "adjfkjdjksdhfksj")
+test("", "ab")
+test("", "abc")
+test("a", "a")
+test("ab", "ab")
+test("abc", "abc")
+test("a\n", "a\n")
+test("a\nb", "a\nb")
+
+#issue1295
+def showdiff(a, b):
+    bin = bdiff.bdiff(a, b)
+    pos = 0
+    while pos < len(bin):
+        p1, p2, l = struct.unpack(">lll", bin[pos:pos + 12])
+        pos += 12
+        print p1, p2, repr(bin[pos:pos + l])
+        pos += l
+showdiff("x\n\nx\n\nx\n\nx\n\nz\n", "x\n\nx\n\ny\n\nx\n\nx\n\nz\n")
+showdiff("x\n\nx\n\nx\n\nx\n\nz\n", "x\n\nx\n\ny\n\nx\n\ny\n\nx\n\nz\n")
+
+print "done"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-bdiff.py.out	Sun May 17 03:14:37 2009 +0200
@@ -0,0 +1,23 @@
+*** 'a\nc\n\n\n\n' 'a\nb\n\n\n'
+*** 'a\nb\nc\n' 'a\nc\n'
+*** '' ''
+*** 'a\nb\nc' 'a\nb\nc'
+*** 'a\nb\nc\nd\n' 'a\nd\n'
+*** 'a\nb\nc\nd\n' 'a\nc\ne\n'
+*** 'a\nb\nc\n' 'a\nc\n'
+*** 'a\n' 'c\na\nb\n'
+*** 'a\n' ''
+*** 'a\n' 'b\nc\n'
+*** 'a\n' 'c\na\n'
+*** '' 'adjfkjdjksdhfksj'
+*** '' 'ab'
+*** '' 'abc'
+*** 'a' 'a'
+*** 'ab' 'ab'
+*** 'abc' 'abc'
+*** 'a\n' 'a\n'
+*** 'a\nb' 'a\nb'
+6 6 'y\n\n'
+6 6 'y\n\n'
+9 9 'y\n\n'
+done
--- a/tests/test-convert-cvs-builtincvsps-cvsnt-mergepoints	Sun May 17 03:04:17 2009 +0200
+++ b/tests/test-convert-cvs-builtincvsps-cvsnt-mergepoints	Sun May 17 03:14:37 2009 +0200
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
 
 "$TESTDIR/hghave" cvs || exit 80
 
--- a/tests/test-demandimport	Sun May 17 03:04:17 2009 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-#!/usr/bin/env python
-
-from mercurial import demandimport
-demandimport.enable()
-
-import re
-
-rsub = re.sub
-def f(obj):
-    l = repr(obj)
-    l = rsub("0x[0-9a-fA-F]+", "0x?", l)
-    l = rsub("from '.*'", "from '?'", l)
-    return l
-
-import os
-
-print "os =", f(os)
-print "os.system =", f(os.system)
-print "os =", f(os)
-
-from mercurial import util
-
-print "util =", f(util)
-print "util.system =", f(util.system)
-print "util =", f(util)
-print "util.system =", f(util.system)
-
-import re as fred
-print "fred =", f(fred)
-
-import sys as re
-print "re =", f(re)
-
-print "fred =", f(fred)
-print "fred.sub =", f(fred.sub)
-print "fred =", f(fred)
-
-print "re =", f(re)
-print "re.stdout =", f(re.stdout)
-print "re =", f(re)
--- a/tests/test-demandimport.out	Sun May 17 03:04:17 2009 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-os = <unloaded module 'os'>
-os.system = <built-in function system>
-os = <module 'os' from '?'>
-util = <unloaded module 'util'>
-util.system = <function system at 0x?>
-util = <module 'mercurial.util' from '?'>
-util.system = <function system at 0x?>
-fred = <unloaded module 're'>
-re = <unloaded module 'sys'>
-fred = <unloaded module 're'>
-fred.sub = <function sub at 0x?>
-fred = <proxied module 're'>
-re = <unloaded module 'sys'>
-re.stdout = <open file '<stdout>', mode 'w' at 0x?>
-re = <proxied module 'sys'>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-demandimport.py	Sun May 17 03:14:37 2009 +0200
@@ -0,0 +1,40 @@
+#!/usr/bin/env python
+
+from mercurial import demandimport
+demandimport.enable()
+
+import re
+
+rsub = re.sub
+def f(obj):
+    l = repr(obj)
+    l = rsub("0x[0-9a-fA-F]+", "0x?", l)
+    l = rsub("from '.*'", "from '?'", l)
+    return l
+
+import os
+
+print "os =", f(os)
+print "os.system =", f(os.system)
+print "os =", f(os)
+
+from mercurial import util
+
+print "util =", f(util)
+print "util.system =", f(util.system)
+print "util =", f(util)
+print "util.system =", f(util.system)
+
+import re as fred
+print "fred =", f(fred)
+
+import sys as re
+print "re =", f(re)
+
+print "fred =", f(fred)
+print "fred.sub =", f(fred.sub)
+print "fred =", f(fred)
+
+print "re =", f(re)
+print "re.stdout =", f(re.stdout)
+print "re =", f(re)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-demandimport.py.out	Sun May 17 03:14:37 2009 +0200
@@ -0,0 +1,15 @@
+os = <unloaded module 'os'>
+os.system = <built-in function system>
+os = <module 'os' from '?'>
+util = <unloaded module 'util'>
+util.system = <function system at 0x?>
+util = <module 'mercurial.util' from '?'>
+util.system = <function system at 0x?>
+fred = <unloaded module 're'>
+re = <unloaded module 'sys'>
+fred = <unloaded module 're'>
+fred.sub = <function sub at 0x?>
+fred = <proxied module 're'>
+re = <unloaded module 'sys'>
+re.stdout = <open file '<stdout>', mode 'w' at 0x?>
+re = <proxied module 'sys'>
--- a/tests/test-hgweb-commands	Sun May 17 03:04:17 2009 +0200
+++ b/tests/test-hgweb-commands	Sun May 17 03:14:37 2009 +0200
@@ -50,7 +50,7 @@
 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=branches'
 echo % changegroup
 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=changegroup' \
-    | $TESTDIR/repr.py
+    | $TESTDIR/printrepr.py
 echo % stream_out
 "$TESTDIR/get-with-headers.py" 127.0.0.1:$HGPORT '?cmd=stream_out'
 echo % failing unbundle, requires POST request
--- a/tests/test-hgweb-diffs	Sun May 17 03:04:17 2009 +0200
+++ b/tests/test-hgweb-diffs	Sun May 17 03:14:37 2009 +0200
@@ -1,3 +1,5 @@
+#!/bin/sh
+
 echo % setting up repo
 hg init test
 cd test
--- a/tests/test-hgweb-filelog	Sun May 17 03:04:17 2009 +0200
+++ b/tests/test-hgweb-filelog	Sun May 17 03:14:37 2009 +0200
@@ -1,3 +1,5 @@
+#!/bin/sh
+
 hg init test
 cd test
 
--- a/tests/test-hgweb-removed	Sun May 17 03:04:17 2009 +0200
+++ b/tests/test-hgweb-removed	Sun May 17 03:14:37 2009 +0200
@@ -1,3 +1,5 @@
+#!/bin/sh
+
 echo % setting up repo
 hg init test
 cd test
--- a/tests/test-highlight.out	Sun May 17 03:04:17 2009 +0200
+++ b/tests/test-highlight.out	Sun May 17 03:14:37 2009 +0200
@@ -12,7 +12,7 @@
 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
 
 <link rel="stylesheet" href="/highlightcss" type="text/css" />
-<title>test: 7c3facd7c58a get-with-headers.py</title>
+<title>test: 93b701795893 get-with-headers.py</title>
 </head>
 <body>
 
@@ -23,27 +23,27 @@
 <img src="/static/hglogo.png" alt="mercurial" /></a>
 </div>
 <ul>
-<li><a href="/shortlog/7c3facd7c58a">log</a></li>
-<li><a href="/graph/7c3facd7c58a">graph</a></li>
+<li><a href="/shortlog/93b701795893">log</a></li>
+<li><a href="/graph/93b701795893">graph</a></li>
 <li><a href="/tags">tags</a></li>
 <li><a href="/branches">branches</a></li>
 </ul>
 <ul>
-<li><a href="/rev/7c3facd7c58a">changeset</a></li>
-<li><a href="/file/7c3facd7c58a/">browse</a></li>
+<li><a href="/rev/93b701795893">changeset</a></li>
+<li><a href="/file/93b701795893/">browse</a></li>
 </ul>
 <ul>
 <li class="active">file</li>
-<li><a href="/diff/7c3facd7c58a/get-with-headers.py">diff</a></li>
-<li><a href="/annotate/7c3facd7c58a/get-with-headers.py">annotate</a></li>
-<li><a href="/log/7c3facd7c58a/get-with-headers.py">file log</a></li>
-<li><a href="/raw-file/7c3facd7c58a/get-with-headers.py">raw</a></li>
+<li><a href="/diff/93b701795893/get-with-headers.py">diff</a></li>
+<li><a href="/annotate/93b701795893/get-with-headers.py">annotate</a></li>
+<li><a href="/log/93b701795893/get-with-headers.py">file log</a></li>
+<li><a href="/raw-file/93b701795893/get-with-headers.py">raw</a></li>
 </ul>
 </div>
 
 <div class="main">
 <h2><a href="/">test</a></h2>
-<h3>view get-with-headers.py @ 0:7c3facd7c58a</h3>
+<h3>view get-with-headers.py @ 0:93b701795893</h3>
 
 <form class="search" action="/log">
 
@@ -76,7 +76,7 @@
 
 <div class="overflow">
 <div class="sourcefirst"> line source</div>
-<div class="parity0 source"><a href="#l1" id="l1">     1</a> <span class="c">#!/usr/bin/env python</span></div><div class="parity1 source"><a href="#l2" id="l2">     2</a> </div><div class="parity0 source"><a href="#l3" id="l3">     3</a> <span class="n">__doc__</span> <span class="o">=</span> <span class="s">&quot;&quot;&quot;This does HTTP get requests given a host:port and path and returns</span></div><div class="parity1 source"><a href="#l4" id="l4">     4</a> <span class="s">a subset of the headers plus the body of the result.&quot;&quot;&quot;</span></div><div class="parity0 source"><a href="#l5" id="l5">     5</a> </div><div class="parity1 source"><a href="#l6" id="l6">     6</a> <span class="kn">import</span> <span class="nn">httplib</span><span class="o">,</span> <span class="nn">sys</span><span class="o">,</span> <span class="nn">re</span></div><div class="parity0 source"><a href="#l7" id="l7">     7</a> </div><div class="parity1 source"><a href="#l8" id="l8">     8</a> <span class="kn">try</span><span class="p">:</span></div><div class="parity0 source"><a href="#l9" id="l9">     9</a>     <span class="kn">import</span> <span class="nn">msvcrt</span><span class="o">,</span> <span class="nn">os</span></div><div class="parity1 source"><a href="#l10" id="l10">    10</a>     <span class="n">msvcrt</span><span class="o">.</span><span class="n">setmode</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">fileno</span><span class="p">(),</span> <span class="n">os</span><span class="o">.</span><span class="n">O_BINARY</span><span class="p">)</span></div><div class="parity0 source"><a href="#l11" id="l11">    11</a>     <span class="n">msvcrt</span><span class="o">.</span><span class="n">setmode</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">stderr</span><span class="o">.</span><span class="n">fileno</span><span class="p">(),</span> <span class="n">os</span><span class="o">.</span><span class="n">O_BINARY</span><span class="p">)</span></div><div class="parity1 source"><a href="#l12" id="l12">    12</a> <span class="kn">except</span> <span class="ne">ImportError</span><span class="p">:</span></div><div class="parity0 source"><a href="#l13" id="l13">    13</a>     <span class="kn">pass</span></div><div class="parity1 source"><a href="#l14" id="l14">    14</a> </div><div class="parity0 source"><a href="#l15" id="l15">    15</a> <span class="n">headers</span> <span class="o">=</span> <span class="p">[</span><span class="n">h</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="kn">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">3</span><span class="p">:]]</span></div><div class="parity1 source"><a href="#l16" id="l16">    16</a> <span class="n">conn</span> <span class="o">=</span> <span class="n">httplib</span><span class="o">.</span><span class="n">HTTPConnection</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span></div><div class="parity0 source"><a href="#l17" id="l17">    17</a> <span class="n">conn</span><span class="o">.</span><span class="n">request</span><span class="p">(</span><span class="s">&quot;GET&quot;</span><span class="p">,</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span></div><div class="parity1 source"><a href="#l18" id="l18">    18</a> <span class="n">response</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="n">getresponse</span><span class="p">()</span></div><div class="parity0 source"><a href="#l19" id="l19">    19</a> <span class="kn">print</span> <span class="n">response</span><span class="o">.</span><span class="n">status</span><span class="p">,</span> <span class="n">response</span><span class="o">.</span><span class="n">reason</span></div><div class="parity1 source"><a href="#l20" id="l20">    20</a> <span class="kn">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">headers</span><span class="p">:</span></div><div class="parity0 source"><a href="#l21" id="l21">    21</a>     <span class="kn">if</span> <span class="n">response</span><span class="o">.</span><span class="n">getheader</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span></div><div class="parity1 source"><a href="#l22" id="l22">    22</a>         <span class="kn">print</span> <span class="s">&quot;</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">response</span><span class="o">.</span><span class="n">getheader</span><span class="p">(</span><span class="n">h</span><span class="p">))</span></div><div class="parity0 source"><a href="#l23" id="l23">    23</a> <span class="kn">print</span></div><div class="parity1 source"><a href="#l24" id="l24">    24</a> <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">read</span><span class="p">()</span></div><div class="parity0 source"><a href="#l25" id="l25">    25</a> <span class="n">data</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="s">&#39;\d+ years&#39;</span><span class="p">,</span> <span class="s">&#39;many years&#39;</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span></div><div class="parity1 source"><a href="#l26" id="l26">    26</a> <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">data</span><span class="p">)</span></div><div class="parity0 source"><a href="#l27" id="l27">    27</a> </div><div class="parity1 source"><a href="#l28" id="l28">    28</a> <span class="kn">if</span> <span class="mi">200</span> <span class="o">&lt;=</span> <span class="n">response</span><span class="o">.</span><span class="n">status</span> <span class="o">&lt;=</span> <span class="mi">299</span><span class="p">:</span></div><div class="parity0 source"><a href="#l29" id="l29">    29</a>     <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span></div><div class="parity1 source"><a href="#l30" id="l30">    30</a> <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span></div>
+<div class="parity0 source"><a href="#l1" id="l1">     1</a> <span class="c">#!/usr/bin/env python</span></div><div class="parity1 source"><a href="#l2" id="l2">     2</a> </div><div class="parity0 source"><a href="#l3" id="l3">     3</a> <span class="sd">&quot;&quot;&quot;This does HTTP GET requests given a host:port and path and returns</span></div><div class="parity1 source"><a href="#l4" id="l4">     4</a> <span class="sd">a subset of the headers plus the body of the result.&quot;&quot;&quot;</span></div><div class="parity0 source"><a href="#l5" id="l5">     5</a> </div><div class="parity1 source"><a href="#l6" id="l6">     6</a> <span class="kn">import</span> <span class="nn">httplib</span><span class="o">,</span> <span class="nn">sys</span><span class="o">,</span> <span class="nn">re</span></div><div class="parity0 source"><a href="#l7" id="l7">     7</a> </div><div class="parity1 source"><a href="#l8" id="l8">     8</a> <span class="kn">try</span><span class="p">:</span></div><div class="parity0 source"><a href="#l9" id="l9">     9</a>     <span class="kn">import</span> <span class="nn">msvcrt</span><span class="o">,</span> <span class="nn">os</span></div><div class="parity1 source"><a href="#l10" id="l10">    10</a>     <span class="n">msvcrt</span><span class="o">.</span><span class="n">setmode</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">fileno</span><span class="p">(),</span> <span class="n">os</span><span class="o">.</span><span class="n">O_BINARY</span><span class="p">)</span></div><div class="parity0 source"><a href="#l11" id="l11">    11</a>     <span class="n">msvcrt</span><span class="o">.</span><span class="n">setmode</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">stderr</span><span class="o">.</span><span class="n">fileno</span><span class="p">(),</span> <span class="n">os</span><span class="o">.</span><span class="n">O_BINARY</span><span class="p">)</span></div><div class="parity1 source"><a href="#l12" id="l12">    12</a> <span class="kn">except</span> <span class="ne">ImportError</span><span class="p">:</span></div><div class="parity0 source"><a href="#l13" id="l13">    13</a>     <span class="kn">pass</span></div><div class="parity1 source"><a href="#l14" id="l14">    14</a> </div><div class="parity0 source"><a href="#l15" id="l15">    15</a> <span class="n">headers</span> <span class="o">=</span> <span class="p">[</span><span class="n">h</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="kn">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">3</span><span class="p">:]]</span></div><div class="parity1 source"><a href="#l16" id="l16">    16</a> <span class="n">conn</span> <span class="o">=</span> <span class="n">httplib</span><span class="o">.</span><span class="n">HTTPConnection</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span></div><div class="parity0 source"><a href="#l17" id="l17">    17</a> <span class="n">conn</span><span class="o">.</span><span class="n">request</span><span class="p">(</span><span class="s">&quot;GET&quot;</span><span class="p">,</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span></div><div class="parity1 source"><a href="#l18" id="l18">    18</a> <span class="n">response</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="n">getresponse</span><span class="p">()</span></div><div class="parity0 source"><a href="#l19" id="l19">    19</a> <span class="kn">print</span> <span class="n">response</span><span class="o">.</span><span class="n">status</span><span class="p">,</span> <span class="n">response</span><span class="o">.</span><span class="n">reason</span></div><div class="parity1 source"><a href="#l20" id="l20">    20</a> <span class="kn">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">headers</span><span class="p">:</span></div><div class="parity0 source"><a href="#l21" id="l21">    21</a>     <span class="kn">if</span> <span class="n">response</span><span class="o">.</span><span class="n">getheader</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span></div><div class="parity1 source"><a href="#l22" id="l22">    22</a>         <span class="kn">print</span> <span class="s">&quot;</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">response</span><span class="o">.</span><span class="n">getheader</span><span class="p">(</span><span class="n">h</span><span class="p">))</span></div><div class="parity0 source"><a href="#l23" id="l23">    23</a> <span class="kn">print</span></div><div class="parity1 source"><a href="#l24" id="l24">    24</a> <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">read</span><span class="p">()</span></div><div class="parity0 source"><a href="#l25" id="l25">    25</a> <span class="n">data</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="s">&#39;\d+ years&#39;</span><span class="p">,</span> <span class="s">&#39;many years&#39;</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span></div><div class="parity1 source"><a href="#l26" id="l26">    26</a> <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">data</span><span class="p">)</span></div><div class="parity0 source"><a href="#l27" id="l27">    27</a> </div><div class="parity1 source"><a href="#l28" id="l28">    28</a> <span class="kn">if</span> <span class="mi">200</span> <span class="o">&lt;=</span> <span class="n">response</span><span class="o">.</span><span class="n">status</span> <span class="o">&lt;=</span> <span class="mi">299</span><span class="p">:</span></div><div class="parity0 source"><a href="#l29" id="l29">    29</a>     <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span></div><div class="parity1 source"><a href="#l30" id="l30">    30</a> <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span></div>
 <div class="sourcelast"></div>
 </div>
 </div>
@@ -98,7 +98,7 @@
 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" />
 
 <link rel="stylesheet" href="/highlightcss" type="text/css" />
-<title>test: 7c3facd7c58a isolatin.txt</title>
+<title>test: 93b701795893 isolatin.txt</title>
 </head>
 <body>
 
@@ -109,27 +109,27 @@
 <img src="/static/hglogo.png" alt="mercurial" /></a>
 </div>
 <ul>
-<li><a href="/shortlog/7c3facd7c58a">log</a></li>
-<li><a href="/graph/7c3facd7c58a">graph</a></li>
+<li><a href="/shortlog/93b701795893">log</a></li>
+<li><a href="/graph/93b701795893">graph</a></li>
 <li><a href="/tags">tags</a></li>
 <li><a href="/branches">branches</a></li>
 </ul>
 <ul>
-<li><a href="/rev/7c3facd7c58a">changeset</a></li>
-<li><a href="/file/7c3facd7c58a/">browse</a></li>
+<li><a href="/rev/93b701795893">changeset</a></li>
+<li><a href="/file/93b701795893/">browse</a></li>
 </ul>
 <ul>
 <li class="active">file</li>
-<li><a href="/diff/7c3facd7c58a/isolatin.txt">diff</a></li>
-<li><a href="/annotate/7c3facd7c58a/isolatin.txt">annotate</a></li>
-<li><a href="/log/7c3facd7c58a/isolatin.txt">file log</a></li>
-<li><a href="/raw-file/7c3facd7c58a/isolatin.txt">raw</a></li>
+<li><a href="/diff/93b701795893/isolatin.txt">diff</a></li>
+<li><a href="/annotate/93b701795893/isolatin.txt">annotate</a></li>
+<li><a href="/log/93b701795893/isolatin.txt">file log</a></li>
+<li><a href="/raw-file/93b701795893/isolatin.txt">raw</a></li>
 </ul>
 </div>
 
 <div class="main">
 <h2><a href="/">test</a></h2>
-<h3>view isolatin.txt @ 0:7c3facd7c58a</h3>
+<h3>view isolatin.txt @ 0:93b701795893</h3>
 
 <form class="search" action="/log">
 
@@ -195,28 +195,28 @@
 <img src="/static/hglogo.png" alt="mercurial" /></a>
 </div>
 <ul>
-<li><a href="/shortlog/7c3facd7c58a">log</a></li>
-<li><a href="/graph/7c3facd7c58a">graph</a></li>
+<li><a href="/shortlog/93b701795893">log</a></li>
+<li><a href="/graph/93b701795893">graph</a></li>
 <li><a href="/tags">tags</a></li>
 <li><a href="/branches">branches</a></li>
 </ul>
 
 <ul>
-<li><a href="/rev/7c3facd7c58a">changeset</a></li>
-<li><a href="/file/7c3facd7c58a/">browse</a></li>
+<li><a href="/rev/93b701795893">changeset</a></li>
+<li><a href="/file/93b701795893/">browse</a></li>
 </ul>
 <ul>
-<li><a href="/file/7c3facd7c58a/get-with-headers.py">file</a></li>
-<li><a href="/diff/7c3facd7c58a/get-with-headers.py">diff</a></li>
+<li><a href="/file/93b701795893/get-with-headers.py">file</a></li>
+<li><a href="/diff/93b701795893/get-with-headers.py">diff</a></li>
 <li class="active">annotate</li>
-<li><a href="/log/7c3facd7c58a/get-with-headers.py">file log</a></li>
-<li><a href="/raw-annotate/7c3facd7c58a/get-with-headers.py">raw</a></li>
+<li><a href="/log/93b701795893/get-with-headers.py">file log</a></li>
+<li><a href="/raw-annotate/93b701795893/get-with-headers.py">raw</a></li>
 </ul>
 </div>
 
 <div class="main">
 <h2><a href="/">test</a></h2>
-<h3>annotate get-with-headers.py @ 0:7c3facd7c58a</h3>
+<h3>annotate get-with-headers.py @ 0:93b701795893</h3>
 
 <form class="search" action="/log">
 
@@ -258,211 +258,211 @@
 
 <tr class="parity0">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#1"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#1"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l1" id="l1">     1</a> <span class="c">#!/usr/bin/env python</span></td>
 </tr>
 <tr class="parity1">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#2"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#2"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l2" id="l2">     2</a> </td>
 </tr>
 <tr class="parity0">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#3"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#3"
+title="93b701795893: a">test@0</a>
 </td>
-<td class="source"><a href="#l3" id="l3">     3</a> <span class="n">__doc__</span> <span class="o">=</span> <span class="s">&quot;&quot;&quot;This does HTTP get requests given a host:port and path and returns</span></td>
+<td class="source"><a href="#l3" id="l3">     3</a> <span class="sd">&quot;&quot;&quot;This does HTTP GET requests given a host:port and path and returns</span></td>
 </tr>
 <tr class="parity1">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#4"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#4"
+title="93b701795893: a">test@0</a>
 </td>
-<td class="source"><a href="#l4" id="l4">     4</a> <span class="s">a subset of the headers plus the body of the result.&quot;&quot;&quot;</span></td>
+<td class="source"><a href="#l4" id="l4">     4</a> <span class="sd">a subset of the headers plus the body of the result.&quot;&quot;&quot;</span></td>
 </tr>
 <tr class="parity0">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#5"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#5"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l5" id="l5">     5</a> </td>
 </tr>
 <tr class="parity1">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#6"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#6"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l6" id="l6">     6</a> <span class="kn">import</span> <span class="nn">httplib</span><span class="o">,</span> <span class="nn">sys</span><span class="o">,</span> <span class="nn">re</span></td>
 </tr>
 <tr class="parity0">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#7"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#7"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l7" id="l7">     7</a> </td>
 </tr>
 <tr class="parity1">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#8"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#8"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l8" id="l8">     8</a> <span class="kn">try</span><span class="p">:</span></td>
 </tr>
 <tr class="parity0">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#9"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#9"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l9" id="l9">     9</a>     <span class="kn">import</span> <span class="nn">msvcrt</span><span class="o">,</span> <span class="nn">os</span></td>
 </tr>
 <tr class="parity1">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#10"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#10"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l10" id="l10">    10</a>     <span class="n">msvcrt</span><span class="o">.</span><span class="n">setmode</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">fileno</span><span class="p">(),</span> <span class="n">os</span><span class="o">.</span><span class="n">O_BINARY</span><span class="p">)</span></td>
 </tr>
 <tr class="parity0">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#11"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#11"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l11" id="l11">    11</a>     <span class="n">msvcrt</span><span class="o">.</span><span class="n">setmode</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">stderr</span><span class="o">.</span><span class="n">fileno</span><span class="p">(),</span> <span class="n">os</span><span class="o">.</span><span class="n">O_BINARY</span><span class="p">)</span></td>
 </tr>
 <tr class="parity1">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#12"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#12"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l12" id="l12">    12</a> <span class="kn">except</span> <span class="ne">ImportError</span><span class="p">:</span></td>
 </tr>
 <tr class="parity0">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#13"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#13"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l13" id="l13">    13</a>     <span class="kn">pass</span></td>
 </tr>
 <tr class="parity1">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#14"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#14"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l14" id="l14">    14</a> </td>
 </tr>
 <tr class="parity0">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#15"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#15"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l15" id="l15">    15</a> <span class="n">headers</span> <span class="o">=</span> <span class="p">[</span><span class="n">h</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="kn">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mf">3</span><span class="p">:]]</span></td>
 </tr>
 <tr class="parity1">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#16"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#16"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l16" id="l16">    16</a> <span class="n">conn</span> <span class="o">=</span> <span class="n">httplib</span><span class="o">.</span><span class="n">HTTPConnection</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mf">1</span><span class="p">])</span></td>
 </tr>
 <tr class="parity0">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#17"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#17"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l17" id="l17">    17</a> <span class="n">conn</span><span class="o">.</span><span class="n">request</span><span class="p">(</span><span class="s">&quot;GET&quot;</span><span class="p">,</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mf">2</span><span class="p">])</span></td>
 </tr>
 <tr class="parity1">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#18"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#18"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l18" id="l18">    18</a> <span class="n">response</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="n">getresponse</span><span class="p">()</span></td>
 </tr>
 <tr class="parity0">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#19"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#19"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l19" id="l19">    19</a> <span class="kn">print</span> <span class="n">response</span><span class="o">.</span><span class="n">status</span><span class="p">,</span> <span class="n">response</span><span class="o">.</span><span class="n">reason</span></td>
 </tr>
 <tr class="parity1">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#20"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#20"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l20" id="l20">    20</a> <span class="kn">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">headers</span><span class="p">:</span></td>
 </tr>
 <tr class="parity0">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#21"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#21"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l21" id="l21">    21</a>     <span class="kn">if</span> <span class="n">response</span><span class="o">.</span><span class="n">getheader</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span></td>
 </tr>
 <tr class="parity1">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#22"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#22"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l22" id="l22">    22</a>         <span class="kn">print</span> <span class="s">&quot;</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">response</span><span class="o">.</span><span class="n">getheader</span><span class="p">(</span><span class="n">h</span><span class="p">))</span></td>
 </tr>
 <tr class="parity0">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#23"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#23"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l23" id="l23">    23</a> <span class="kn">print</span></td>
 </tr>
 <tr class="parity1">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#24"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#24"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l24" id="l24">    24</a> <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">read</span><span class="p">()</span></td>
 </tr>
 <tr class="parity0">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#25"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#25"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l25" id="l25">    25</a> <span class="n">data</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="s">&#39;\d+ years&#39;</span><span class="p">,</span> <span class="s">&#39;many years&#39;</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span></td>
 </tr>
 <tr class="parity1">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#26"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#26"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l26" id="l26">    26</a> <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">data</span><span class="p">)</span></td>
 </tr>
 <tr class="parity0">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#27"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#27"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l27" id="l27">    27</a> </td>
 </tr>
 <tr class="parity1">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#28"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#28"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l28" id="l28">    28</a> <span class="kn">if</span> <span class="mf">200</span> <span class="o">&lt;=</span> <span class="n">response</span><span class="o">.</span><span class="n">status</span> <span class="o">&lt;=</span> <span class="mf">299</span><span class="p">:</span></td>
 </tr>
 <tr class="parity0">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#29"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#29"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l29" id="l29">    29</a>     <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mf">0</span><span class="p">)</span></td>
 </tr>
 <tr class="parity1">
 <td class="annotate">
-<a href="/annotate/7c3facd7c58a/get-with-headers.py#30"
-title="7c3facd7c58a: a">test@0</a>
+<a href="/annotate/93b701795893/get-with-headers.py#30"
+title="93b701795893: a">test@0</a>
 </td>
 <td class="source"><a href="#l30" id="l30">    30</a> <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mf">1</span><span class="p">)</span></td>
 </tr>
--- a/tests/test-issue1306	Sun May 17 03:04:17 2009 +0200
+++ b/tests/test-issue1306	Sun May 17 03:14:37 2009 +0200
@@ -1,3 +1,5 @@
+#!/bin/sh
+
 echo % initialize remote repo with branches
 hg init remote
 cd remote
--- a/tests/test-issue842	Sun May 17 03:04:17 2009 +0200
+++ b/tests/test-issue842	Sun May 17 03:14:37 2009 +0200
@@ -1,3 +1,5 @@
+#!/bin/sh
+
 hg init test
 cd test
 echo foo > a
--- a/tests/test-mq-strip	Sun May 17 03:04:17 2009 +0200
+++ b/tests/test-mq-strip	Sun May 17 03:14:37 2009 +0200
@@ -1,3 +1,5 @@
+#!/bin/sh
+
 echo "[extensions]" >> $HGRCPATH
 echo "mq=" >> $HGRCPATH
 
--- a/tests/test-simplemerge-cmd	Sun May 17 03:04:17 2009 +0200
+++ b/tests/test-simplemerge-cmd	Sun May 17 03:14:37 2009 +0200
@@ -47,7 +47,7 @@
 python simplemerge -p binary-local base other
 
 echo '% binary file --text'
-python simplemerge -a -p binary-local base other 2>&1 | $TESTDIR/repr.py
+python simplemerge -a -p binary-local base other 2>&1 | $TESTDIR/printrepr.py
 
 echo '% help'
 python simplemerge --help
--- a/tests/test-ui-config	Sun May 17 03:04:17 2009 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-#!/usr/bin/env python
-
-from mercurial import ui, util, dispatch, error
-
-testui = ui.ui()
-parsed = dispatch._parseconfig(testui, [
-    'values.string=string value',
-    'values.bool1=true',
-    'values.bool2=false',
-    'lists.list1=foo',
-    'lists.list2=foo bar baz',
-    'lists.list3=alice, bob',
-    'lists.list4=foo bar baz alice, bob',
-])
-
-print repr(testui.configitems('values'))
-print repr(testui.configitems('lists'))
-print "---"
-print repr(testui.config('values', 'string'))
-print repr(testui.config('values', 'bool1'))
-print repr(testui.config('values', 'bool2'))
-print repr(testui.config('values', 'unknown'))
-print "---"
-try:
-    print repr(testui.configbool('values', 'string'))
-except error.ConfigError, inst:
-    print inst
-print repr(testui.configbool('values', 'bool1'))
-print repr(testui.configbool('values', 'bool2'))
-print repr(testui.configbool('values', 'bool2', True))
-print repr(testui.configbool('values', 'unknown'))
-print repr(testui.configbool('values', 'unknown', True))
-print "---"
-print repr(testui.configlist('lists', 'list1'))
-print repr(testui.configlist('lists', 'list2'))
-print repr(testui.configlist('lists', 'list3'))
-print repr(testui.configlist('lists', 'list4'))
-print repr(testui.configlist('lists', 'list4', ['foo']))
-print repr(testui.configlist('lists', 'unknown'))
-print repr(testui.configlist('lists', 'unknown', ''))
-print repr(testui.configlist('lists', 'unknown', 'foo'))
-print repr(testui.configlist('lists', 'unknown', ['foo']))
-print repr(testui.configlist('lists', 'unknown', 'foo bar'))
-print repr(testui.configlist('lists', 'unknown', 'foo, bar'))
-print repr(testui.configlist('lists', 'unknown', ['foo bar']))
-print repr(testui.configlist('lists', 'unknown', ['foo', 'bar']))
-
-print repr(testui.config('values', 'String'))
-
-def function():
-    pass
-
-# values that aren't strings should work
-testui.setconfig('hook', 'commit', function)
-print function == testui.config('hook', 'commit')
--- a/tests/test-ui-config.out	Sun May 17 03:04:17 2009 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-[('string', 'string value'), ('bool1', 'true'), ('bool2', 'false')]
-[('list1', 'foo'), ('list2', 'foo bar baz'), ('list3', 'alice, bob'), ('list4', 'foo bar baz alice, bob')]
----
-'string value'
-'true'
-'false'
-None
----
-values.string not a boolean ('string value')
-True
-False
-False
-False
-True
----
-['foo']
-['foo', 'bar', 'baz']
-['alice', 'bob']
-['foo', 'bar', 'baz', 'alice', 'bob']
-['foo', 'bar', 'baz', 'alice', 'bob']
-[]
-[]
-['foo']
-['foo']
-['foo', 'bar']
-['foo', 'bar']
-['foo bar']
-['foo', 'bar']
-None
-True
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-ui-config.py	Sun May 17 03:14:37 2009 +0200
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+
+from mercurial import ui, util, dispatch, error
+
+testui = ui.ui()
+parsed = dispatch._parseconfig(testui, [
+    'values.string=string value',
+    'values.bool1=true',
+    'values.bool2=false',
+    'lists.list1=foo',
+    'lists.list2=foo bar baz',
+    'lists.list3=alice, bob',
+    'lists.list4=foo bar baz alice, bob',
+])
+
+print repr(testui.configitems('values'))
+print repr(testui.configitems('lists'))
+print "---"
+print repr(testui.config('values', 'string'))
+print repr(testui.config('values', 'bool1'))
+print repr(testui.config('values', 'bool2'))
+print repr(testui.config('values', 'unknown'))
+print "---"
+try:
+    print repr(testui.configbool('values', 'string'))
+except error.ConfigError, inst:
+    print inst
+print repr(testui.configbool('values', 'bool1'))
+print repr(testui.configbool('values', 'bool2'))
+print repr(testui.configbool('values', 'bool2', True))
+print repr(testui.configbool('values', 'unknown'))
+print repr(testui.configbool('values', 'unknown', True))
+print "---"
+print repr(testui.configlist('lists', 'list1'))
+print repr(testui.configlist('lists', 'list2'))
+print repr(testui.configlist('lists', 'list3'))
+print repr(testui.configlist('lists', 'list4'))
+print repr(testui.configlist('lists', 'list4', ['foo']))
+print repr(testui.configlist('lists', 'unknown'))
+print repr(testui.configlist('lists', 'unknown', ''))
+print repr(testui.configlist('lists', 'unknown', 'foo'))
+print repr(testui.configlist('lists', 'unknown', ['foo']))
+print repr(testui.configlist('lists', 'unknown', 'foo bar'))
+print repr(testui.configlist('lists', 'unknown', 'foo, bar'))
+print repr(testui.configlist('lists', 'unknown', ['foo bar']))
+print repr(testui.configlist('lists', 'unknown', ['foo', 'bar']))
+
+print repr(testui.config('values', 'String'))
+
+def function():
+    pass
+
+# values that aren't strings should work
+testui.setconfig('hook', 'commit', function)
+print function == testui.config('hook', 'commit')
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-ui-config.py.out	Sun May 17 03:14:37 2009 +0200
@@ -0,0 +1,30 @@
+[('string', 'string value'), ('bool1', 'true'), ('bool2', 'false')]
+[('list1', 'foo'), ('list2', 'foo bar baz'), ('list3', 'alice, bob'), ('list4', 'foo bar baz alice, bob')]
+---
+'string value'
+'true'
+'false'
+None
+---
+values.string not a boolean ('string value')
+True
+False
+False
+False
+True
+---
+['foo']
+['foo', 'bar', 'baz']
+['alice', 'bob']
+['foo', 'bar', 'baz', 'alice', 'bob']
+['foo', 'bar', 'baz', 'alice', 'bob']
+[]
+[]
+['foo']
+['foo']
+['foo', 'bar']
+['foo', 'bar']
+['foo bar']
+['foo', 'bar']
+None
+True
--- a/tests/test-ui-verbosity	Sun May 17 03:04:17 2009 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-
-import os
-from mercurial import ui
-
-hgrc = os.environ['HGRCPATH']
-f = open(hgrc)
-basehgrc = f.read()
-f.close()
-
-print '      hgrc settings    command line options      final result   '
-print '    quiet verbo debug   quiet verbo debug      quiet verbo debug'
-
-for i in xrange(64):
-    hgrc_quiet   = bool(i & 1<<0)
-    hgrc_verbose = bool(i & 1<<1)
-    hgrc_debug   = bool(i & 1<<2)
-    cmd_quiet    = bool(i & 1<<3)
-    cmd_verbose  = bool(i & 1<<4)
-    cmd_debug    = bool(i & 1<<5)
-
-    f = open(hgrc, 'w')
-    f.write(basehgrc)
-    f.write('\n[ui]\n')
-    if hgrc_quiet:
-        f.write('quiet = True\n')
-    if hgrc_verbose:
-        f.write('verbose = True\n')
-    if hgrc_debug:
-        f.write('debug = True\n')
-    f.close()
-
-    u = ui.ui()
-    if cmd_quiet or cmd_debug or cmd_verbose:
-        u.setconfig('ui', 'quiet', str(bool(cmd_quiet)))
-        u.setconfig('ui', 'verbose', str(bool(cmd_verbose)))
-        u.setconfig('ui', 'debug', str(bool(cmd_debug)))
-
-    check = ''
-    if u.debugflag:
-        if not u.verbose or u.quiet:
-            check = ' *'
-    elif u.verbose and u.quiet:
-        check = ' +'
-
-    print ('%2d  %5s %5s %5s   %5s %5s %5s  ->  %5s %5s %5s%s'
-           % (i, hgrc_quiet, hgrc_verbose, hgrc_debug,
-              cmd_quiet, cmd_verbose, cmd_debug,
-              u.quiet, u.verbose, u.debugflag, check))
--- a/tests/test-ui-verbosity.out	Sun May 17 03:04:17 2009 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-      hgrc settings    command line options      final result   
-    quiet verbo debug   quiet verbo debug      quiet verbo debug
- 0  False False False   False False False  ->  False False False
- 1   True False False   False False False  ->   True False False
- 2  False  True False   False False False  ->  False  True False
- 3   True  True False   False False False  ->  False False False
- 4  False False  True   False False False  ->  False  True  True
- 5   True False  True   False False False  ->  False  True  True
- 6  False  True  True   False False False  ->  False  True  True
- 7   True  True  True   False False False  ->  False  True  True
- 8  False False False    True False False  ->   True False False
- 9   True False False    True False False  ->   True False False
-10  False  True False    True False False  ->   True False False
-11   True  True False    True False False  ->   True False False
-12  False False  True    True False False  ->   True False False
-13   True False  True    True False False  ->   True False False
-14  False  True  True    True False False  ->   True False False
-15   True  True  True    True False False  ->   True False False
-16  False False False   False  True False  ->  False  True False
-17   True False False   False  True False  ->  False  True False
-18  False  True False   False  True False  ->  False  True False
-19   True  True False   False  True False  ->  False  True False
-20  False False  True   False  True False  ->  False  True False
-21   True False  True   False  True False  ->  False  True False
-22  False  True  True   False  True False  ->  False  True False
-23   True  True  True   False  True False  ->  False  True False
-24  False False False    True  True False  ->  False False False
-25   True False False    True  True False  ->  False False False
-26  False  True False    True  True False  ->  False False False
-27   True  True False    True  True False  ->  False False False
-28  False False  True    True  True False  ->  False False False
-29   True False  True    True  True False  ->  False False False
-30  False  True  True    True  True False  ->  False False False
-31   True  True  True    True  True False  ->  False False False
-32  False False False   False False  True  ->  False  True  True
-33   True False False   False False  True  ->  False  True  True
-34  False  True False   False False  True  ->  False  True  True
-35   True  True False   False False  True  ->  False  True  True
-36  False False  True   False False  True  ->  False  True  True
-37   True False  True   False False  True  ->  False  True  True
-38  False  True  True   False False  True  ->  False  True  True
-39   True  True  True   False False  True  ->  False  True  True
-40  False False False    True False  True  ->  False  True  True
-41   True False False    True False  True  ->  False  True  True
-42  False  True False    True False  True  ->  False  True  True
-43   True  True False    True False  True  ->  False  True  True
-44  False False  True    True False  True  ->  False  True  True
-45   True False  True    True False  True  ->  False  True  True
-46  False  True  True    True False  True  ->  False  True  True
-47   True  True  True    True False  True  ->  False  True  True
-48  False False False   False  True  True  ->  False  True  True
-49   True False False   False  True  True  ->  False  True  True
-50  False  True False   False  True  True  ->  False  True  True
-51   True  True False   False  True  True  ->  False  True  True
-52  False False  True   False  True  True  ->  False  True  True
-53   True False  True   False  True  True  ->  False  True  True
-54  False  True  True   False  True  True  ->  False  True  True
-55   True  True  True   False  True  True  ->  False  True  True
-56  False False False    True  True  True  ->  False  True  True
-57   True False False    True  True  True  ->  False  True  True
-58  False  True False    True  True  True  ->  False  True  True
-59   True  True False    True  True  True  ->  False  True  True
-60  False False  True    True  True  True  ->  False  True  True
-61   True False  True    True  True  True  ->  False  True  True
-62  False  True  True    True  True  True  ->  False  True  True
-63   True  True  True    True  True  True  ->  False  True  True
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-ui-verbosity.py	Sun May 17 03:14:37 2009 +0200
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+
+import os
+from mercurial import ui
+
+hgrc = os.environ['HGRCPATH']
+f = open(hgrc)
+basehgrc = f.read()
+f.close()
+
+print '      hgrc settings    command line options      final result   '
+print '    quiet verbo debug   quiet verbo debug      quiet verbo debug'
+
+for i in xrange(64):
+    hgrc_quiet   = bool(i & 1<<0)
+    hgrc_verbose = bool(i & 1<<1)
+    hgrc_debug   = bool(i & 1<<2)
+    cmd_quiet    = bool(i & 1<<3)
+    cmd_verbose  = bool(i & 1<<4)
+    cmd_debug    = bool(i & 1<<5)
+
+    f = open(hgrc, 'w')
+    f.write(basehgrc)
+    f.write('\n[ui]\n')
+    if hgrc_quiet:
+        f.write('quiet = True\n')
+    if hgrc_verbose:
+        f.write('verbose = True\n')
+    if hgrc_debug:
+        f.write('debug = True\n')
+    f.close()
+
+    u = ui.ui()
+    if cmd_quiet or cmd_debug or cmd_verbose:
+        u.setconfig('ui', 'quiet', str(bool(cmd_quiet)))
+        u.setconfig('ui', 'verbose', str(bool(cmd_verbose)))
+        u.setconfig('ui', 'debug', str(bool(cmd_debug)))
+
+    check = ''
+    if u.debugflag:
+        if not u.verbose or u.quiet:
+            check = ' *'
+    elif u.verbose and u.quiet:
+        check = ' +'
+
+    print ('%2d  %5s %5s %5s   %5s %5s %5s  ->  %5s %5s %5s%s'
+           % (i, hgrc_quiet, hgrc_verbose, hgrc_debug,
+              cmd_quiet, cmd_verbose, cmd_debug,
+              u.quiet, u.verbose, u.debugflag, check))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-ui-verbosity.py.out	Sun May 17 03:14:37 2009 +0200
@@ -0,0 +1,66 @@
+      hgrc settings    command line options      final result   
+    quiet verbo debug   quiet verbo debug      quiet verbo debug
+ 0  False False False   False False False  ->  False False False
+ 1   True False False   False False False  ->   True False False
+ 2  False  True False   False False False  ->  False  True False
+ 3   True  True False   False False False  ->  False False False
+ 4  False False  True   False False False  ->  False  True  True
+ 5   True False  True   False False False  ->  False  True  True
+ 6  False  True  True   False False False  ->  False  True  True
+ 7   True  True  True   False False False  ->  False  True  True
+ 8  False False False    True False False  ->   True False False
+ 9   True False False    True False False  ->   True False False
+10  False  True False    True False False  ->   True False False
+11   True  True False    True False False  ->   True False False
+12  False False  True    True False False  ->   True False False
+13   True False  True    True False False  ->   True False False
+14  False  True  True    True False False  ->   True False False
+15   True  True  True    True False False  ->   True False False
+16  False False False   False  True False  ->  False  True False
+17   True False False   False  True False  ->  False  True False
+18  False  True False   False  True False  ->  False  True False
+19   True  True False   False  True False  ->  False  True False
+20  False False  True   False  True False  ->  False  True False
+21   True False  True   False  True False  ->  False  True False
+22  False  True  True   False  True False  ->  False  True False
+23   True  True  True   False  True False  ->  False  True False
+24  False False False    True  True False  ->  False False False
+25   True False False    True  True False  ->  False False False
+26  False  True False    True  True False  ->  False False False
+27   True  True False    True  True False  ->  False False False
+28  False False  True    True  True False  ->  False False False
+29   True False  True    True  True False  ->  False False False
+30  False  True  True    True  True False  ->  False False False
+31   True  True  True    True  True False  ->  False False False
+32  False False False   False False  True  ->  False  True  True
+33   True False False   False False  True  ->  False  True  True
+34  False  True False   False False  True  ->  False  True  True
+35   True  True False   False False  True  ->  False  True  True
+36  False False  True   False False  True  ->  False  True  True
+37   True False  True   False False  True  ->  False  True  True
+38  False  True  True   False False  True  ->  False  True  True
+39   True  True  True   False False  True  ->  False  True  True
+40  False False False    True False  True  ->  False  True  True
+41   True False False    True False  True  ->  False  True  True
+42  False  True False    True False  True  ->  False  True  True
+43   True  True False    True False  True  ->  False  True  True
+44  False False  True    True False  True  ->  False  True  True
+45   True False  True    True False  True  ->  False  True  True
+46  False  True  True    True False  True  ->  False  True  True
+47   True  True  True    True False  True  ->  False  True  True
+48  False False False   False  True  True  ->  False  True  True
+49   True False False   False  True  True  ->  False  True  True
+50  False  True False   False  True  True  ->  False  True  True
+51   True  True False   False  True  True  ->  False  True  True
+52  False False  True   False  True  True  ->  False  True  True
+53   True False  True   False  True  True  ->  False  True  True
+54  False  True  True   False  True  True  ->  False  True  True
+55   True  True  True   False  True  True  ->  False  True  True
+56  False False False    True  True  True  ->  False  True  True
+57   True False False    True  True  True  ->  False  True  True
+58  False  True False    True  True  True  ->  False  True  True
+59   True  True False    True  True  True  ->  False  True  True
+60  False False  True    True  True  True  ->  False  True  True
+61   True False  True    True  True  True  ->  False  True  True
+62  False  True  True    True  True  True  ->  False  True  True
+63   True  True  True    True  True  True  ->  False  True  True