annotate tests/test-fetch.t @ 30442:41a8106789ca

util: implement zstd compression engine Now that zstd is vendored and being built (in some configurations), we can implement a compression engine for zstd! The zstd engine is a little different from existing engines. Because it may not always be present, we have to defer load the module in case importing it fails. We facilitate this via a cached property that holds a reference to the module or None. The "available" method is implemented to reflect reality. The zstd engine declares its ability to handle bundles using the "zstd" human name and the "ZS" internal name. The latter was chosen because internal names are 2 characters (by only convention I think) and "ZS" seems reasonable. The engine, like others, supports specifying the compression level. However, there are no consumers of this API that yet pass in that argument. I have plans to change that, so stay tuned. Since all we need to do to support bundle generation with a new compression engine is implement and register the compression engine, bundle generation with zstd "just works!" Tests demonstrating this have been added. How does performance of zstd for bundle generation compare? On the mozilla-unified repo, `hg bundle --all -t <engine>-v2` yields the following on my i7-6700K on Linux: engine CPU time bundle size vs orig size throughput none 97.0s 4,054,405,584 100.0% 41.8 MB/s bzip2 (l=9) 393.6s 975,343,098 24.0% 10.3 MB/s gzip (l=6) 184.0s 1,140,533,074 28.1% 22.0 MB/s zstd (l=1) 108.2s 1,119,434,718 27.6% 37.5 MB/s zstd (l=2) 111.3s 1,078,328,002 26.6% 36.4 MB/s zstd (l=3) 113.7s 1,011,823,727 25.0% 35.7 MB/s zstd (l=4) 116.0s 1,008,965,888 24.9% 35.0 MB/s zstd (l=5) 121.0s 977,203,148 24.1% 33.5 MB/s zstd (l=6) 131.7s 927,360,198 22.9% 30.8 MB/s zstd (l=7) 139.0s 912,808,505 22.5% 29.2 MB/s zstd (l=12) 198.1s 854,527,714 21.1% 20.5 MB/s zstd (l=18) 681.6s 789,750,690 19.5% 5.9 MB/s On compression, zstd for bundle generation delivers: * better compression than gzip with significantly less CPU utilization * better than bzip2 compression ratios while still being significantly faster than gzip * ability to aggressively tune compression level to achieve significantly smaller bundles That last point is important. With clone bundles, a server can pre-generate a bundle file, upload it to a static file server, and redirect clients to transparently download it during clone. The server could choose to produce a zstd bundle with the highest compression settings possible. This would take a very long time - a magnitude longer than a typical zstd bundle generation - but the result would be hundreds of megabytes smaller! For the clone volume we do at Mozilla, this could translate to petabytes of bandwidth savings per year and faster clones (due to smaller transfer size). I don't have detailed numbers to report on decompression. However, zstd decompression is fast: >1 GB/s output throughput on this machine, even through the Python bindings. And it can do that regardless of the compression level of the input. By the time you have enough data to worry about overhead of decompression, you have plenty of other things to worry about performance wise. zstd is wins all around. I can't wait to implement support for it on the wire protocol and in revlogs.
author Gregory Szorc <gregory.szorc@gmail.com>
date Fri, 11 Nov 2016 01:10:07 -0800
parents 9dcc9ed26d33
children eb586ed5d8ce
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22046
7a9cbb315d84 tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents: 21406
diff changeset
1 #require serve
15446
c5c9ca3719f9 tests: use 'hghave serve' to guard tests that requires serve daemon management
Mads Kiilerich <mads@kiilerich.com>
parents: 15244
diff changeset
2
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
3 $ echo "[extensions]" >> $HGRCPATH
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
4 $ echo "fetch=" >> $HGRCPATH
6246
35bf9c23e17a adjust test-fetch output to non-default HGPORT, e.g. with run-tests.py -j
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6235
diff changeset
5
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
6 test fetch with default branches only
2822
4f7abf341cd4 fetch: fix breakage from mpm.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
7
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
8 $ hg init a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
9 $ echo a > a/a
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
10 $ hg --cwd a commit -Ama
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
11 adding a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
12 $ hg clone a b
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
13 updating to branch default
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
14 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
15 $ hg clone a c
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
16 updating to branch default
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
17 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
18 $ echo b > a/b
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
19 $ hg --cwd a commit -Amb
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
20 adding b
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
21 $ hg --cwd a parents -q
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
22 1:d2ae7f538514
2822
4f7abf341cd4 fetch: fix breakage from mpm.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
23
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
24 should pull one change
2822
4f7abf341cd4 fetch: fix breakage from mpm.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
25
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
26 $ hg --cwd b fetch ../a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
27 pulling from ../a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
28 searching for changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
29 adding changesets
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
30 adding manifests
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
31 adding file changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
32 added 1 changesets with 1 changes to 1 files
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
33 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
34 $ hg --cwd b parents -q
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
35 1:d2ae7f538514
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
36 $ echo c > c/c
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
37 $ hg --cwd c commit -Amc
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
38 adding c
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
39 $ hg clone c d
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
40 updating to branch default
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
41 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
42 $ hg clone c e
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
43 updating to branch default
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
44 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
2822
4f7abf341cd4 fetch: fix breakage from mpm.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
45
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
46 We cannot use the default commit message if fetching from a local
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
47 repo, because the path of the repo will be included in the commit
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
48 message, making every commit appear different.
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
49 should merge c into a
5798
86f5d8f608b7 fetch: hide authentication details
Bryan O'Sullivan <bos@serpentine.com>
parents: 2990
diff changeset
50
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
51 $ hg --cwd c fetch -d '0 0' -m 'automated merge' ../a
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
52 pulling from ../a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
53 searching for changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
54 adding changesets
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
55 adding manifests
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
56 adding file changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
57 added 1 changesets with 1 changes to 1 files (+1 heads)
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
58 updating to 2:d2ae7f538514
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
59 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
60 merging with 1:d36c0562f908
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
61 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
62 new changeset 3:a323a0c43ec4 merges remote changes with local
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
63 $ ls c
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
64 a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
65 b
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
66 c
28549
e01bd7385f4f tests: reorder hg serve commands
Jun Wu <quark@fb.com>
parents: 25295
diff changeset
67 $ hg serve --cwd a -a localhost -p $HGPORT -d --pid-file=hg.pid
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
68 $ cat a/hg.pid >> "$DAEMON_PIDS"
5798
86f5d8f608b7 fetch: hide authentication details
Bryan O'Sullivan <bos@serpentine.com>
parents: 2990
diff changeset
69
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
70 fetch over http, no auth
21406
288a793c3167 fetch: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16913
diff changeset
71 (this also tests that editor is invoked if '--edit' is specified)
5798
86f5d8f608b7 fetch: hide authentication details
Bryan O'Sullivan <bos@serpentine.com>
parents: 2990
diff changeset
72
21406
288a793c3167 fetch: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16913
diff changeset
73 $ HGEDITOR=cat hg --cwd d fetch --edit http://localhost:$HGPORT/
12643
d08bb64888bc tests: reintroduce ":$HGPORT" in test output
Mads Kiilerich <mads@kiilerich.com>
parents: 12535
diff changeset
74 pulling from http://localhost:$HGPORT/
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
75 searching for changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
76 adding changesets
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
77 adding manifests
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
78 adding file changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
79 added 1 changesets with 1 changes to 1 files (+1 heads)
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
80 updating to 2:d2ae7f538514
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
81 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
82 merging with 1:d36c0562f908
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
83 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
21406
288a793c3167 fetch: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16913
diff changeset
84 Automated merge with http://localhost:$HGPORT/
288a793c3167 fetch: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16913
diff changeset
85
288a793c3167 fetch: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16913
diff changeset
86
288a793c3167 fetch: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16913
diff changeset
87 HG: Enter commit message. Lines beginning with 'HG:' are removed.
288a793c3167 fetch: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16913
diff changeset
88 HG: Leave message empty to abort commit.
288a793c3167 fetch: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16913
diff changeset
89 HG: --
288a793c3167 fetch: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16913
diff changeset
90 HG: user: test
288a793c3167 fetch: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16913
diff changeset
91 HG: branch merge
288a793c3167 fetch: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16913
diff changeset
92 HG: branch 'default'
288a793c3167 fetch: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16913
diff changeset
93 HG: changed c
12535
975ec4ce961c tests: fix test-fetch port number variability
Matt Mackall <mpm@selenic.com>
parents: 12426
diff changeset
94 new changeset 3:* merges remote changes with local (glob)
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
95 $ hg --cwd d tip --template '{desc}\n'
12643
d08bb64888bc tests: reintroduce ":$HGPORT" in test output
Mads Kiilerich <mads@kiilerich.com>
parents: 12535
diff changeset
96 Automated merge with http://localhost:$HGPORT/
21406
288a793c3167 fetch: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16913
diff changeset
97 $ hg --cwd d status --rev 'tip^1' --rev tip
288a793c3167 fetch: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16913
diff changeset
98 A c
288a793c3167 fetch: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16913
diff changeset
99 $ hg --cwd d status --rev 'tip^2' --rev tip
288a793c3167 fetch: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16913
diff changeset
100 A b
6206
0b6f12495276 fetch: switch the default parent used for a merge
Bryan O'Sullivan <bos@serpentine.com>
parents: 5798
diff changeset
101
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
102 fetch over http with auth (should be hidden in desc)
21406
288a793c3167 fetch: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16913
diff changeset
103 (this also tests that editor is not invoked if '--edit' is not
288a793c3167 fetch: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16913
diff changeset
104 specified, even though commit message is not specified explicitly)
6206
0b6f12495276 fetch: switch the default parent used for a merge
Bryan O'Sullivan <bos@serpentine.com>
parents: 5798
diff changeset
105
21406
288a793c3167 fetch: use "getcommiteditor()" instead of explicit editor choice
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16913
diff changeset
106 $ HGEDITOR=cat hg --cwd e fetch http://user:password@localhost:$HGPORT/
12643
d08bb64888bc tests: reintroduce ":$HGPORT" in test output
Mads Kiilerich <mads@kiilerich.com>
parents: 12535
diff changeset
107 pulling from http://user:***@localhost:$HGPORT/
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
108 searching for changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
109 adding changesets
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
110 adding manifests
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
111 adding file changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
112 added 1 changesets with 1 changes to 1 files (+1 heads)
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
113 updating to 2:d2ae7f538514
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
114 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
115 merging with 1:d36c0562f908
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
116 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
12535
975ec4ce961c tests: fix test-fetch port number variability
Matt Mackall <mpm@selenic.com>
parents: 12426
diff changeset
117 new changeset 3:* merges remote changes with local (glob)
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
118 $ hg --cwd e tip --template '{desc}\n'
12643
d08bb64888bc tests: reintroduce ":$HGPORT" in test output
Mads Kiilerich <mads@kiilerich.com>
parents: 12535
diff changeset
119 Automated merge with http://localhost:$HGPORT/
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
120 $ hg clone a f
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
121 updating to branch default
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
122 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
123 $ hg clone a g
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
124 updating to branch default
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
125 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
126 $ echo f > f/f
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
127 $ hg --cwd f ci -Amf
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
128 adding f
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
129 $ echo g > g/g
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
130 $ hg --cwd g ci -Amg
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
131 adding g
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
132 $ hg clone -q f h
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
133 $ hg clone -q g i
6206
0b6f12495276 fetch: switch the default parent used for a merge
Bryan O'Sullivan <bos@serpentine.com>
parents: 5798
diff changeset
134
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
135 should merge f into g
6226
bd61e44eb2cc fetch: don't proceed if working directory is missing files (issue988)
Bryan O'Sullivan <bos@serpentine.com>
parents: 6207
diff changeset
136
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
137 $ hg --cwd g fetch -d '0 0' --switch -m 'automated merge' ../f
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
138 pulling from ../f
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
139 searching for changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
140 adding changesets
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
141 adding manifests
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
142 adding file changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
143 added 1 changesets with 1 changes to 1 files (+1 heads)
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
144 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
145 merging with 3:6343ca3eff20
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
146 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
147 new changeset 4:f7faa0b7d3c6 merges remote changes with local
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
148 $ rm i/g
6226
bd61e44eb2cc fetch: don't proceed if working directory is missing files (issue988)
Bryan O'Sullivan <bos@serpentine.com>
parents: 6207
diff changeset
149
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
150 should abort, because i is modified
6235
d16798000be0 test-fetch failed due to non-zero exit code
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6226
diff changeset
151
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
152 $ hg --cwd i fetch ../h
22676
a014fdc97154 fetch: use cmdutil.bailifchanged()
Martin von Zweigbergk <martinvonz@gmail.com>
parents: 22046
diff changeset
153 abort: uncommitted changes
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
154 [255]
7007
a6b74fbb5ce0 fetch: added support for named branches
Sune Foldager <cryo@cyanite.org>
parents: 6246
diff changeset
155
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
156 test fetch with named branches
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
157
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
158 $ hg init nbase
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
159 $ echo base > nbase/a
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
160 $ hg -R nbase ci -Am base
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
161 adding a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
162 $ hg -R nbase branch a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
163 marked working directory as branch a
15615
41885892796e branch: warn on branching
Matt Mackall <mpm@selenic.com>
parents: 15244
diff changeset
164 (branches are permanent and global, did you want a bookmark?)
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
165 $ echo a > nbase/a
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
166 $ hg -R nbase ci -m a
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
167 $ hg -R nbase up -C 0
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
168 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
169 $ hg -R nbase branch b
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
170 marked working directory as branch b
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
171 $ echo b > nbase/b
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
172 $ hg -R nbase ci -Am b
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
173 adding b
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
174
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
175 pull in change on foreign branch
7007
a6b74fbb5ce0 fetch: added support for named branches
Sune Foldager <cryo@cyanite.org>
parents: 6246
diff changeset
176
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
177 $ hg clone nbase n1
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
178 updating to branch default
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
179 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
180 $ hg clone nbase n2
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
181 updating to branch default
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
182 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
183 $ hg -R n1 up -C a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
184 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
185 $ echo aa > n1/a
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
186 $ hg -R n1 ci -m a1
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
187 $ hg -R n2 up -C b
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
188 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
189 $ hg -R n2 fetch -m 'merge' n1
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
190 pulling from n1
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
191 searching for changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
192 adding changesets
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
193 adding manifests
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
194 adding file changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
195 added 1 changesets with 1 changes to 1 files
7007
a6b74fbb5ce0 fetch: added support for named branches
Sune Foldager <cryo@cyanite.org>
parents: 6246
diff changeset
196
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
197 parent should be 2 (no automatic update)
7007
a6b74fbb5ce0 fetch: added support for named branches
Sune Foldager <cryo@cyanite.org>
parents: 6246
diff changeset
198
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
199 $ hg -R n2 parents --template '{rev}\n'
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
200 2
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
201 $ rm -fr n1 n2
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
202
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
203 pull in changes on both foreign and local branches
7007
a6b74fbb5ce0 fetch: added support for named branches
Sune Foldager <cryo@cyanite.org>
parents: 6246
diff changeset
204
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
205 $ hg clone nbase n1
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
206 updating to branch default
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
207 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
208 $ hg clone nbase n2
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
209 updating to branch default
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
210 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
211 $ hg -R n1 up -C a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
212 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
213 $ echo aa > n1/a
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
214 $ hg -R n1 ci -m a1
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
215 $ hg -R n1 up -C b
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
216 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
217 $ echo bb > n1/b
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
218 $ hg -R n1 ci -m b1
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
219 $ hg -R n2 up -C b
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
220 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
221 $ hg -R n2 fetch -m 'merge' n1
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
222 pulling from n1
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
223 searching for changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
224 adding changesets
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
225 adding manifests
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
226 adding file changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
227 added 2 changesets with 2 changes to 2 files
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
228 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
7007
a6b74fbb5ce0 fetch: added support for named branches
Sune Foldager <cryo@cyanite.org>
parents: 6246
diff changeset
229
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
230 parent should be 4 (fast forward)
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
231
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
232 $ hg -R n2 parents --template '{rev}\n'
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
233 4
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
234 $ rm -fr n1 n2
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
235
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
236 pull changes on foreign (2 new heads) and local (1 new head) branches
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
237 with a local change
7007
a6b74fbb5ce0 fetch: added support for named branches
Sune Foldager <cryo@cyanite.org>
parents: 6246
diff changeset
238
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
239 $ hg clone nbase n1
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
240 updating to branch default
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
241 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
242 $ hg clone nbase n2
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
243 updating to branch default
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
244 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
245 $ hg -R n1 up -C a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
246 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
247 $ echo a1 > n1/a
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
248 $ hg -R n1 ci -m a1
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
249 $ hg -R n1 up -C b
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
250 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
251 $ echo bb > n1/b
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
252 $ hg -R n1 ci -m b1
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
253 $ hg -R n1 up -C 1
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
254 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
255 $ echo a2 > n1/a
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
256 $ hg -R n1 ci -m a2
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
257 created new head
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
258 $ hg -R n2 up -C b
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
259 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
260 $ echo change >> n2/c
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
261 $ hg -R n2 ci -A -m local
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
262 adding c
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
263 $ hg -R n2 fetch -d '0 0' -m 'merge' n1
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
264 pulling from n1
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
265 searching for changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
266 adding changesets
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
267 adding manifests
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
268 adding file changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
269 added 3 changesets with 3 changes to 2 files (+2 heads)
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
270 updating to 5:3c4a837a864f
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
271 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
272 merging with 3:1267f84a9ea5
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
273 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
274 new changeset 7:2cf2a1261f21 merges remote changes with local
7007
a6b74fbb5ce0 fetch: added support for named branches
Sune Foldager <cryo@cyanite.org>
parents: 6246
diff changeset
275
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
276 parent should be 7 (new merge changeset)
7007
a6b74fbb5ce0 fetch: added support for named branches
Sune Foldager <cryo@cyanite.org>
parents: 6246
diff changeset
277
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
278 $ hg -R n2 parents --template '{rev}\n'
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
279 7
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
280 $ rm -fr n1 n2
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
281
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
282 pull in changes on foreign (merge of local branch) and local (2 new
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
283 heads) with a local change
7007
a6b74fbb5ce0 fetch: added support for named branches
Sune Foldager <cryo@cyanite.org>
parents: 6246
diff changeset
284
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
285 $ hg clone nbase n1
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
286 updating to branch default
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
287 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
288 $ hg clone nbase n2
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
289 updating to branch default
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
290 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
291 $ hg -R n1 up -C a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
292 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
293 $ hg -R n1 merge b
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
294 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
295 (branch merge, don't forget to commit)
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
296 $ hg -R n1 ci -m merge
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
297 $ hg -R n1 up -C 2
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
298 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
299 $ echo c > n1/a
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
300 $ hg -R n1 ci -m c
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
301 $ hg -R n1 up -C 2
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
302 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
303 $ echo cc > n1/a
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
304 $ hg -R n1 ci -m cc
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
305 created new head
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
306 $ hg -R n2 up -C b
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
307 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
308 $ echo change >> n2/b
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
309 $ hg -R n2 ci -A -m local
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
310 $ hg -R n2 fetch -m 'merge' n1
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
311 pulling from n1
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
312 searching for changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
313 adding changesets
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
314 adding manifests
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
315 adding file changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
316 added 3 changesets with 2 changes to 1 files (+2 heads)
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
317 not merging with 1 other new branch heads (use "hg heads ." and "hg merge" to merge them)
12711
b885f28fa4fa fetch: fix and document exit codes (issue2356)
Matt Mackall <mpm@selenic.com>
parents: 12643
diff changeset
318 [1]
7049
6489ee64b522 fetch: use dirstate branch instead of first parents
Sune Foldager <cryo@cyanite.org>
parents: 7007
diff changeset
319
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
320 parent should be 3 (fetch did not merge anything)
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
321
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
322 $ hg -R n2 parents --template '{rev}\n'
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
323 3
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
324 $ rm -fr n1 n2
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
325
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
326 pull in change on different branch than dirstate
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
327
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
328 $ hg init n1
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
329 $ echo a > n1/a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
330 $ hg -R n1 ci -Am initial
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
331 adding a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
332 $ hg clone n1 n2
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
333 updating to branch default
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
334 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
335 $ echo b > n1/a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
336 $ hg -R n1 ci -m next
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
337 $ hg -R n2 branch topic
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
338 marked working directory as branch topic
15615
41885892796e branch: warn on branching
Matt Mackall <mpm@selenic.com>
parents: 15244
diff changeset
339 (branches are permanent and global, did you want a bookmark?)
15244
f6d5d01725db tests: cleanup of test-fetch.t
Mads Kiilerich <mads@kiilerich.com>
parents: 15243
diff changeset
340 $ hg -R n2 fetch -m merge n1
24368
55fd99a23fdc fetch: use an abort hint where appropriate
Yuya Nishihara <yuya@tcha.org>
parents: 24365
diff changeset
341 abort: working directory not at branch tip
28964
9dcc9ed26d33 fetch: use single quotes around command hint
timeless <timeless@mozdev.org>
parents: 28549
diff changeset
342 (use 'hg update' to check out branch tip)
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
343 [255]
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
344
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
345 parent should be 0 (fetch did not update or merge anything)
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
346
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
347 $ hg -R n2 parents --template '{rev}\n'
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
348 0
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
349 $ rm -fr n1 n2
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
350
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
351 test fetch with inactive branches
7855
aa1a87f7544f regression test for issue1552
Benjamin Pollack <benjamin@bitquabit.com>
parents: 7344
diff changeset
352
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
353 $ hg init ib1
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
354 $ echo a > ib1/a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
355 $ hg --cwd ib1 ci -Am base
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
356 adding a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
357 $ hg --cwd ib1 branch second
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
358 marked working directory as branch second
15615
41885892796e branch: warn on branching
Matt Mackall <mpm@selenic.com>
parents: 15244
diff changeset
359 (branches are permanent and global, did you want a bookmark?)
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
360 $ echo b > ib1/b
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
361 $ hg --cwd ib1 ci -Am onsecond
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
362 adding b
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
363 $ hg --cwd ib1 branch -f default
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
364 marked working directory as branch default
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
365 $ echo c > ib1/c
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
366 $ hg --cwd ib1 ci -Am newdefault
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
367 adding c
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
368 created new head
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
369 $ hg clone ib1 ib2
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
370 updating to branch default
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
371 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
372
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
373 fetch should succeed
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
374
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
375 $ hg --cwd ib2 fetch ../ib1
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
376 pulling from ../ib1
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
377 searching for changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
378 no changes found
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
379 $ rm -fr ib1 ib2
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
380
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
381 test issue1726
9093
0b2b269ba3d0 branch heads: fix regression introduced in e67e5b60e55f (issue1726)
Henrik Stuart <hg@hstuart.dk>
parents: 7855
diff changeset
382
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
383 $ hg init i1726r1
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
384 $ echo a > i1726r1/a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
385 $ hg --cwd i1726r1 ci -Am base
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
386 adding a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
387 $ hg clone i1726r1 i1726r2
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
388 updating to branch default
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
389 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
390 $ echo b > i1726r1/a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
391 $ hg --cwd i1726r1 ci -m second
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
392 $ echo c > i1726r2/a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
393 $ hg --cwd i1726r2 ci -m third
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
394 $ HGMERGE=true hg --cwd i1726r2 fetch ../i1726r1
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
395 pulling from ../i1726r1
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
396 searching for changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
397 adding changesets
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
398 adding manifests
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
399 adding file changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
400 added 1 changesets with 1 changes to 1 files (+1 heads)
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
401 updating to 2:7837755a2789
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
402 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
403 merging with 1:d1f0c6c48ebd
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
404 merging a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
405 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
406 new changeset 3:* merges remote changes with local (glob)
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
407 $ hg --cwd i1726r2 heads default --template '{rev}\n'
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
408 3
10580
612c142b7a82 fetch: fix newheads calculation (issue2047)
Sune Foldager <cryo@cyanite.org>
parents: 10398
diff changeset
409
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
410 test issue2047
7344
58fd3c718ca4 tests: add killdaemons helper script
Matt Mackall <mpm@selenic.com>
parents: 7049
diff changeset
411
12426
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
412 $ hg -q init i2047a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
413 $ cd i2047a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
414 $ echo a > a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
415 $ hg -q ci -Am a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
416 $ hg -q branch stable
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
417 $ echo b > b
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
418 $ hg -q ci -Am b
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
419 $ cd ..
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
420 $ hg -q clone -r 0 i2047a i2047b
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
421 $ cd i2047b
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
422 $ hg fetch ../i2047a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
423 pulling from ../i2047a
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
424 searching for changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
425 adding changesets
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
426 adding manifests
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
427 adding file changes
dd600141616d tests: unify test-fetch
Matt Mackall <mpm@selenic.com>
parents: 10581
diff changeset
428 added 1 changesets with 1 changes to 1 files
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15623
diff changeset
429
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15623
diff changeset
430 $ cd ..