Mercurial > hg
annotate tests/test-merge-default.t @ 18944:a9c443b3b240
unionrepo: read-only operations on a union of two localrepos
unionrepo is just like bundlerepo without bundles.
The implementation is very similar to bundlerepo, but I don't see any obvious
way to generalize it.
Some most obvious use cases for this would be log and diff across local repos,
as a kind of preview of pulls, for instance:
$ hg -R union:repo1+repo2 heads
$ hg -R union:repo1+repo2 log -r REPO1REV -r REPO2REV
$ hg -R union:repo1+repo2 log -r '::REPO1REV-::REPO2REV'
$ hg -R union:repo1+repo2 log -r 'ancestor(REPO1REV,REPO2REV)'
$ hg -R union:repo1+repo2 diff -r REPO1REV -r REPO2REV
This is going to be used in RhodeCode, and Bitbucket already uses something
similar. Having a core implementation would be beneficial.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Fri, 18 Jan 2013 15:54:09 +0100 |
parents | fc8c7a5ccc4a |
children | 94f77624dbb5 |
rev | line source |
---|---|
12255
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
1 $ hg init |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
2 $ echo a > a |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
3 $ hg commit -A -ma |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
4 adding a |
2915
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
5 |
12255
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
6 $ echo b >> a |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
7 $ hg commit -mb |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
8 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
9 $ echo c >> a |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
10 $ hg commit -mc |
2915
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
11 |
12255
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
12 $ hg up 1 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
13 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
14 $ echo d >> a |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
15 $ hg commit -md |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
16 created new head |
2915
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
17 |
12255
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
18 $ hg up 1 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
19 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
20 $ echo e >> a |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
21 $ hg commit -me |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
22 created new head |
2915
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
23 |
12255
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
24 $ hg up 1 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
25 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
26 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
27 Should fail because not at a head: |
2915
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
28 |
12255
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
29 $ hg merge |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
30 abort: branch 'default' has 3 heads - please merge with an explicit rev |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
31 (run 'hg heads .' to see heads) |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12255
diff
changeset
|
32 [255] |
12255
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
33 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
34 $ hg up |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
35 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
36 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
37 Should fail because > 2 heads: |
2915
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
38 |
12255
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
39 $ HGMERGE=internal:other; export HGMERGE |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
40 $ hg merge |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
41 abort: branch 'default' has 3 heads - please merge with an explicit rev |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
42 (run 'hg heads .' to see heads) |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12255
diff
changeset
|
43 [255] |
12255
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
44 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
45 Should succeed: |
2915
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
46 |
12255
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
47 $ hg merge 2 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
48 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
49 (branch merge, don't forget to commit) |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
50 $ hg commit -mm1 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
51 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
52 Should succeed - 2 heads: |
2915
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
53 |
12255
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
54 $ hg merge -P |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
55 changeset: 3:ea9ff125ff88 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
56 parent: 1:1846eede8b68 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
57 user: test |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
58 date: Thu Jan 01 00:00:00 1970 +0000 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
59 summary: d |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
60 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
61 $ hg merge |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
62 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
63 (branch merge, don't forget to commit) |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
64 $ hg commit -mm2 |
2915
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
65 |
12255
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
66 Should fail because at tip: |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
67 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
68 $ hg merge |
15619
6c8573dd1b6b
merge: make 'nothing to merge' aborts consistent
Kevin Bullock <kbullock@ringworld.org>
parents:
12316
diff
changeset
|
69 abort: nothing to merge |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12255
diff
changeset
|
70 [255] |
2915
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
71 |
12255
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
72 $ hg up 0 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
73 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
5242
9cd6578750b9
improve error message for 'hg merge' when repo already at branchtip
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
2915
diff
changeset
|
74 |
12255
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
75 Should fail because there is only one head: |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
76 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
77 $ hg merge |
15619
6c8573dd1b6b
merge: make 'nothing to merge' aborts consistent
Kevin Bullock <kbullock@ringworld.org>
parents:
12316
diff
changeset
|
78 abort: nothing to merge |
6c8573dd1b6b
merge: make 'nothing to merge' aborts consistent
Kevin Bullock <kbullock@ringworld.org>
parents:
12316
diff
changeset
|
79 (use 'hg update' instead) |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12255
diff
changeset
|
80 [255] |
2915
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff
changeset
|
81 |
12255
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
82 $ hg up 3 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
83 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
84 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
85 $ echo f >> a |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
86 $ hg branch foobranch |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
87 marked working directory as branch foobranch |
15615 | 88 (branches are permanent and global, did you want a bookmark?) |
12255
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
89 $ hg commit -mf |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
90 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
91 Should fail because merge with other branch: |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
92 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
93 $ hg merge |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
94 abort: branch 'foobranch' has one head - please merge with an explicit rev |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
95 (run 'hg heads' to see all heads) |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12255
diff
changeset
|
96 [255] |
10355
a5576908b589
merge: add hints about the use of 'hg heads' to find the rev to merge
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
8834
diff
changeset
|
97 |
12255
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
98 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
99 Test for issue2043: ensure that 'merge -P' shows ancestors of 6 that |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
100 are not ancestors of 7, regardless of where their least common |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
101 ancestor is. |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
102 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
103 Merge preview not affected by common ancestor: |
10505
b3311e26f94f
merge: fix --preview to show all nodes that will be merged (issue2043).
Greg Ward <greg-hg@gerg.ca>
parents:
10504
diff
changeset
|
104 |
12255
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
105 $ hg up -q 7 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
106 $ hg merge -q -P 6 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
107 2:2d95304fed5d |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
108 4:f25cbe84d8b3 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
109 5:a431fabd6039 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
110 6:e88e33f3bf62 |
9b3c02c36d92
tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents:
10658
diff
changeset
|
111 |