Mercurial > hg
annotate tests/test-unbundlehash.t @ 31975:76169296e52f
obsolescence: add test for the "branch replacement" logic during push, case A2
Mercurial checks for the introduction of new heads on push. Evolution comes
into play to detect if existing branches on the server are being replaced by
some of the new one we push.
The current code for this logic is very basic (eg: issue4354) and was poorly
tested. We have a better implementation coming in the evolve extension fixing
these issues and with more serious tests coverage. In the process of upstreaming
this improved logic, we start with adding the test case that are already passing
with the current implementation. Once they are all in, we'll upstream the better
implementation and the extra test case.
See inline documentation for details about the test case added in this
changeset.
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Thu, 13 Apr 2017 16:23:01 +0200 |
parents | 6e375ba01b04 |
children | b4b7427b5786 |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
17539
diff
changeset
|
1 #require killdaemons |
13942
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
2 |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
3 Test wire protocol unbundle with hashed heads (capability: unbundlehash) |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
4 |
25374
c2d691542d6a
test: lock test-unbundlehash to bundle1 usage
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22046
diff
changeset
|
5 $ cat << EOF >> $HGRCPATH |
29686
6e375ba01b04
tests: use 'legacy.exchange' option in various bundle1 tests
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
28996
diff
changeset
|
6 > [devel] |
25374
c2d691542d6a
test: lock test-unbundlehash to bundle1 usage
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22046
diff
changeset
|
7 > # This tests is intended for bundle1 only. |
c2d691542d6a
test: lock test-unbundlehash to bundle1 usage
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22046
diff
changeset
|
8 > # bundle2 carries the head information inside the bundle itself and |
c2d691542d6a
test: lock test-unbundlehash to bundle1 usage
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22046
diff
changeset
|
9 > # always uses 'force' as the heads value. |
29686
6e375ba01b04
tests: use 'legacy.exchange' option in various bundle1 tests
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
28996
diff
changeset
|
10 > legacy.exchange = bundle1 |
25374
c2d691542d6a
test: lock test-unbundlehash to bundle1 usage
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22046
diff
changeset
|
11 > EOF |
c2d691542d6a
test: lock test-unbundlehash to bundle1 usage
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22046
diff
changeset
|
12 |
13942
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
13 Create a remote repository. |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
14 |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
15 $ hg init remote |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
16 $ hg serve -R remote --config web.push_ssl=False --config web.allow_push=* -p $HGPORT -d --pid-file=hg1.pid -E error.log -A access.log |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
17 $ cat hg1.pid >> $DAEMON_PIDS |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
18 |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
19 Clone the repository and push a change. |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
20 |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
21 $ hg clone http://localhost:$HGPORT/ local |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
22 no changes found |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
23 updating to branch default |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
24 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
25 $ touch local/README |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
26 $ hg ci -R local -A -m hoge |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
27 adding README |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
28 $ hg push -R local |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
29 pushing to http://localhost:$HGPORT/ |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
30 searching for changes |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
31 remote: adding changesets |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
32 remote: adding manifests |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
33 remote: adding file changes |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
34 remote: added 1 changesets with 1 changes to 1 files |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
35 |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
36 Ensure hashed heads format is used. |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
37 The hash here is always the same since the remote repository only has the null head. |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
38 |
88f0e41d8802
wireproto: allow unbundle with hashed heads parameter (issue2126)
Shuhei Takahashi <takahashi.shuhei@gmail.com>
parents:
diff
changeset
|
39 $ cat access.log | grep unbundle |
28996 | 40 * - - [*] "POST /?cmd=unbundle HTTP/1.1" 200 - x-hgarg-1:heads=686173686564+6768033e216468247bd031a0a2d9876d79818f8f* (glob) |
17539
bc7377160fa7
tests: enable more server tests on Windows
Patrick Mezard <patrick@mezard.eu>
parents:
15446
diff
changeset
|
41 |
bc7377160fa7
tests: enable more server tests on Windows
Patrick Mezard <patrick@mezard.eu>
parents:
15446
diff
changeset
|
42 Explicitly kill daemons to let the test exit on Windows |
bc7377160fa7
tests: enable more server tests on Windows
Patrick Mezard <patrick@mezard.eu>
parents:
15446
diff
changeset
|
43 |
25474
8c14f87bd0ae
tests: drop DAEMON_PIDS from killdaemons calls
Matt Mackall <mpm@selenic.com>
parents:
25472
diff
changeset
|
44 $ killdaemons.py |
17539
bc7377160fa7
tests: enable more server tests on Windows
Patrick Mezard <patrick@mezard.eu>
parents:
15446
diff
changeset
|
45 |