Fix file-changed-to-dir and dir-to-file commits (issue660).
Allow adding to dirstate files that clash with previously existing
but marked for removal. Protect from reintroducing clashes by revert.
This change doesn't address related issues with update. Current
workaround is to do "clean" update by manually removing conflicting
files/dirs from working directory.
#!/bin/sh
cp "$TESTDIR"/printenv.py .
http_proxy= hg clone static-http://localhost:$HGPORT/ copy
echo $?
test -d copy || echo copy: No such file or directory
# This server doesn't do range requests so it's basically only good for
# one pull
cat > dumb.py <<EOF
import BaseHTTPServer, SimpleHTTPServer, os, signal
def run(server_class=BaseHTTPServer.HTTPServer,
handler_class=SimpleHTTPServer.SimpleHTTPRequestHandler):
server_address = ('localhost', int(os.environ['HGPORT']))
httpd = server_class(server_address, handler_class)
httpd.serve_forever()
signal.signal(signal.SIGTERM, lambda x: sys.exit(0))
run()
EOF
python dumb.py 2>/dev/null &
echo $! >> $DAEMON_PIDS
mkdir remote
cd remote
hg init
echo foo > bar
hg add bar
hg commit -m"test" -d "1000000 0"
hg tip
cd ..
http_proxy= hg clone static-http://localhost:$HGPORT/remote local | sed -e 's,:[0-9][0-9]*/,/,'
cd local
hg verify
cat bar
cd ../remote
echo baz > quux
hg commit -A -mtest2 -d '100000000 0'
cd ../local
echo '[hooks]' >> .hg/hgrc
echo 'changegroup = python ../printenv.py changegroup' >> .hg/hgrc
http_proxy= hg pull | sed -e 's,:[0-9][0-9]*/,/,'
echo '% test with "/" URI (issue 747)'
cd ..
hg init
echo a > a
hg add a
hg ci -ma
http_proxy= hg clone static-http://localhost:$HGPORT/ local2 | sed -e 's,:[0-9][0-9]*/,/,'
cd local2
hg verify
cat a
hg paths | sed -e 's,:[0-9][0-9]*/,/,'
kill $!