--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-http-branchmap.t Sun Sep 26 13:43:08 2010 -0500
@@ -0,0 +1,92 @@
+
+ $ hgserve() {
+ > hg serve -a localhost -p $HGPORT1 -d --pid-file=hg.pid -E errors.log -v $@
+ > cat hg.pid >> "$DAEMON_PIDS"
+ > }
+ $ hg init a
+ $ hg --encoding utf-8 -R a branch æ
+ marked working directory as branch æ
+ $ echo foo > a/foo
+ $ hg -R a ci -Am foo
+ adding foo
+ $ hgserve -R a --config web.push_ssl=False --config web.allow_push=* --encoding latin1
+ listening at http://localhost*/ (bound to 127.0.0.1:*) (glob)
+ $ hg --encoding utf-8 clone http://localhost:$HGPORT1 b
+ requesting all changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 1 changesets with 1 changes to 1 files
+ updating to branch æ
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg --encoding utf-8 -R b log
+ changeset: 0:867c11ce77b8
+ branch: æ
+ tag: tip
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: foo
+
+ $ echo bar >> b/foo
+ $ hg -R b ci -m bar
+ $ hg --encoding utf-8 -R b push
+ pushing to http://localhost:* (glob)
+ searching for changes
+ remote: adding changesets
+ remote: adding manifests
+ remote: adding file changes
+ remote: added 1 changesets with 1 changes to 1 files
+ $ hg -R a --encoding utf-8 log
+ changeset: 1:58e7c90d67cb
+ branch: æ
+ tag: tip
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: bar
+
+ changeset: 0:867c11ce77b8
+ branch: æ
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: foo
+
+ $ kill `cat hg.pid`
+
+verify 7e7d56fe4833 (encoding fallback in branchmap to maintain compatibility with 1.3.x)
+
+ $ cat <<EOF > oldhg
+ > import sys
+ > from mercurial import ui, hg, commands
+ >
+ > class StdoutWrapper(object):
+ > def __init__(self, stdout):
+ > self._file = stdout
+ >
+ > def write(self, data):
+ > if data == '47\n':
+ > # latin1 encoding is one %xx (3 bytes) shorter
+ > data = '44\n'
+ > elif data.startswith('%C3%A6 '):
+ > # translate to latin1 encoding
+ > data = '%%E6 %s' % data[7:]
+ > self._file.write(data)
+ >
+ > def __getattr__(self, name):
+ > return getattr(self._file, name)
+ >
+ > sys.stdout = StdoutWrapper(sys.stdout)
+ > sys.stderr = StdoutWrapper(sys.stderr)
+ >
+ > myui = ui.ui()
+ > repo = hg.repository(myui, 'a')
+ > commands.serve(myui, repo, stdio=True)
+ > EOF
+ $ echo baz >> b/foo
+ $ hg -R b ci -m baz
+ $ hg push -R b -e 'python oldhg' ssh://dummy/ --encoding latin1
+ pushing to ssh://dummy/
+ searching for changes
+ remote: adding changesets
+ remote: adding manifests
+ remote: adding file changes
+ remote: added 1 changesets with 1 changes to 1 files