Mercurial > hg
view tests/test-bad-pull.t @ 20275:2123d27ff75d
backout: avoid update on simple case.
Before the changeset the backout process was:
1) go to <target>
2) revert to <target> parent
3) update back to changeset we came from
The two update steps can takes a very long time to move back and forth unrelated
file change between <target> and current working directory.
The new process is just merging current working directory with the parent of
<target> using <target> as ancestor. This give the very same result but skip
the two updates. On big repo with a lot of files and changes that save a lots of
time (x20 for one week window).
The "merge" version (hg backout --merge) is still done with upgrades. We could
imagine using in memory commit to speed it up but this is another fish.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Wed, 08 Jan 2014 14:53:46 -0800 |
parents | 5d0538599428 |
children | 7a9cbb315d84 |
line wrap: on
line source
$ "$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] $ 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) > open("listening", "w") > httpd.handle_request() > run() > EOF $ python dumb.py 2> log & $ P=$! $ while [ ! -f listening ]; do sleep 0; done $ hg clone http://localhost:$HGPORT/foo copy2 abort: HTTP Error 404: * (glob) [255] $ wait $P