Mercurial > hg
annotate tests/test-sparse-merges.t @ 42619:20d0e59be79b
tests: show the files fields of changelogs for many merges
I don't think there's coverage for many of the subtle cases, and I
found it hard to understand what the code is doing by reading it. The
test takes 40s to run on a laptop, or 9s with --chg.
I have yet to find a description of what the files field is supposed
to be for merges. I thought it could be one of:
1. the files added/modified/removed relative to p1 (wouldn't seem
useful, but `hg diff -c -r mergerev` has this behavior)
2. the files with filelog nodes not in either parent (i.e., what is
needed to create a bundle out of a commit)
3. the files added/removed/modified files by merge itself [1]
It's clearly not 1, because file contents merges are symmetric. It's
clearly not 2 because removed files and exec bit changes are
listed. It's also not 3 but I think it's intended to be 3 and the
differences are bugs.
Assuming 3, the test shows that, for merges, the list of files both
overapproximates and underapproximates. All the cases involve file
changes not in the filelog but in the manifest (existence of file
at revision, exec bit and file vs symlink).
I didn't look at all underapproximations, but they looked minor. The
two overapproximations are problematic though because they both cause
potentially long lists of files when merging cleanly.
[1] even what it means for the merge commit itself to change a file is
not completely trivial. A file in the merge being the same as in one
of the parent is too lax as it would consider that merges change
nothing when they revert all the changes done on one side. The
criteria used in the test and in the next commit for "merge didn't
touch a file" is:
- the parents and the merge all have the same file
- or, one parent didn't touch the file and the other parent contains
the same file as the merge
Differential Revision: https://phab.mercurial-scm.org/D6612
author | Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> |
---|---|
date | Tue, 02 Jul 2019 12:55:51 -0400 |
parents | 4764e8436b2a |
children | 5c2a4f37eace |
rev | line source |
---|---|
33289
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
1 test merging things outside of the sparse checkout |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
2 |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
3 $ hg init myrepo |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
4 $ cd myrepo |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
5 $ cat > .hg/hgrc <<EOF |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
6 > [extensions] |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
7 > sparse= |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
8 > EOF |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
9 |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
10 $ echo foo > foo |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
11 $ echo bar > bar |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
12 $ hg add foo bar |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
13 $ hg commit -m initial |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
14 |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
15 $ hg branch feature |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
16 marked working directory as branch feature |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
17 (branches are permanent and global, did you want a bookmark?) |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
18 $ echo bar2 >> bar |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
19 $ hg commit -m 'feature - bar2' |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
20 |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
21 $ hg update -q default |
33293
c9cbf4de27ba
sparse: rename command to debugsparse
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33289
diff
changeset
|
22 $ hg debugsparse --exclude 'bar**' |
33289
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
23 |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
24 $ hg merge feature |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
25 temporarily included 1 file(s) in the sparse checkout for merging |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
26 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
27 (branch merge, don't forget to commit) |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
28 |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
29 Verify bar was merged temporarily |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
30 |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
31 $ ls |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
32 bar |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
33 foo |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
34 $ hg status |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
35 M bar |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
36 |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
37 Verify bar disappears automatically when the working copy becomes clean |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
38 |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
39 $ hg commit -m "merged" |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
40 cleaned up 1 temporarily added file(s) from the sparse checkout |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
41 $ hg status |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
42 $ ls |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
43 foo |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
44 |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
45 $ hg cat -r . bar |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
46 bar |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
47 bar2 |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
48 |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
49 Test merging things outside of the sparse checkout that are not in the working |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
50 copy |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
51 |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
52 $ hg strip -q -r . --config extensions.strip= |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
53 $ hg up -q feature |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
54 $ touch branchonly |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
55 $ hg ci -Aqm 'add branchonly' |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
56 |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
57 $ hg up -q default |
33293
c9cbf4de27ba
sparse: rename command to debugsparse
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33289
diff
changeset
|
58 $ hg debugsparse -X branchonly |
33289
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
59 $ hg merge feature |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
60 temporarily included 2 file(s) in the sparse checkout for merging |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
61 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
abd7dedbaa36
sparse: vendor Facebook-developed extension
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
62 (branch merge, don't forget to commit) |
38756
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
63 |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
64 $ cd .. |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
65 |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
66 Tests merging a file which is modified in one branch and deleted in another and |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
67 file is excluded from sparse checkout |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
68 |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
69 $ hg init ytest |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
70 $ cd ytest |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
71 $ echo "syntax: glob" >> .hgignore |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
72 $ echo "*.orig" >> .hgignore |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
73 $ hg ci -Aqm "added .hgignore" |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
74 $ for ch in a d; do echo foo > $ch; hg ci -Aqm "added "$ch; done; |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
75 $ cat >> .hg/hgrc <<EOF |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
76 > [alias] |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
77 > glog = log -GT "{rev}:{node|short} {desc}" |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
78 > [extensions] |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
79 > sparse = |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
80 > EOF |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
81 |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
82 $ hg glog |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
83 @ 2:f29feff37cfc added d |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
84 | |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
85 o 1:617125d27d6b added a |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
86 | |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
87 o 0:53f3774ed939 added .hgignore |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
88 |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
89 $ hg rm d |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
90 $ hg ci -m "removed d" |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
91 |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
92 $ hg up '.^' |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
93 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
94 $ hg debugsparse --reset |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
95 $ echo bar >> d |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
96 $ hg ci -Am "added bar to d" |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
97 created new head |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
98 |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
99 $ hg glog |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
100 @ 4:6527874a90e4 added bar to d |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
101 | |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
102 | o 3:372c8558de45 removed d |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
103 |/ |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
104 o 2:f29feff37cfc added d |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
105 | |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
106 o 1:617125d27d6b added a |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
107 | |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
108 o 0:53f3774ed939 added .hgignore |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
109 |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
110 $ hg debugsparse --exclude "d" |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
111 $ ls |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
112 a |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
113 |
91c405f84cf7
sparse: add test showing `hg merge` is broken while using sparse extension
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
33293
diff
changeset
|
114 $ hg merge |
38757
d49e490a9e85
merge: do the trivial resolution after updating sparse checkout
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
38756
diff
changeset
|
115 temporarily included 1 file(s) in the sparse checkout for merging |
39285
a3fd84f4fb38
filemerge: fix the wrong placements of messages in prompt
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39284
diff
changeset
|
116 file 'd' was deleted in other [merge rev] but was modified in local [working copy]. |
42565
4764e8436b2a
filemerge: make last line of prompts <40 english chars (issue6158)
Kyle Lippincott <spectral@google.com>
parents:
39527
diff
changeset
|
117 You can use (c)hanged version, (d)elete, or leave (u)nresolved. |
4764e8436b2a
filemerge: make last line of prompts <40 english chars (issue6158)
Kyle Lippincott <spectral@google.com>
parents:
39527
diff
changeset
|
118 What do you want to do? u |
38757
d49e490a9e85
merge: do the trivial resolution after updating sparse checkout
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
38756
diff
changeset
|
119 0 files updated, 0 files merged, 0 files removed, 1 files unresolved |
d49e490a9e85
merge: do the trivial resolution after updating sparse checkout
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
38756
diff
changeset
|
120 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon |
d49e490a9e85
merge: do the trivial resolution after updating sparse checkout
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
38756
diff
changeset
|
121 [1] |
39526
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
122 |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
123 $ cd .. |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
124 |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
125 Testing merging of a file which is renamed+modified on one side and modified on |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
126 another |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
127 |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
128 $ hg init mvtest |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
129 $ cd mvtest |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
130 $ echo "syntax: glob" >> .hgignore |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
131 $ echo "*.orig" >> .hgignore |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
132 $ hg ci -Aqm "added .hgignore" |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
133 $ for ch in a d; do echo foo > $ch; hg ci -Aqm "added "$ch; done; |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
134 $ cat >> .hg/hgrc <<EOF |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
135 > [alias] |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
136 > glog = log -GT "{rev}:{node|short} {desc}" |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
137 > [extensions] |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
138 > sparse = |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
139 > EOF |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
140 |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
141 $ hg glog |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
142 @ 2:f29feff37cfc added d |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
143 | |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
144 o 1:617125d27d6b added a |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
145 | |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
146 o 0:53f3774ed939 added .hgignore |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
147 |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
148 $ echo babar >> a |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
149 $ hg ci -m "added babar to a" |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
150 |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
151 $ hg up '.^' |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
152 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
153 $ hg mv a amove |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
154 $ hg ci -m "moved a to amove" |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
155 created new head |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
156 |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
157 $ hg up 3 |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
158 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
159 $ hg glog |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
160 o 4:5d1e85955f6d moved a to amove |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
161 | |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
162 | @ 3:a06e41a6c16c added babar to a |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
163 |/ |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
164 o 2:f29feff37cfc added d |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
165 | |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
166 o 1:617125d27d6b added a |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
167 | |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
168 o 0:53f3774ed939 added .hgignore |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
169 |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
170 $ hg debugsparse --exclude "a" |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
171 $ ls |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
172 d |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
173 |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
174 $ hg merge |
39527
9db856446298
sparse: add local files to temporaryfiles if they exist out of sparse
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39526
diff
changeset
|
175 temporarily included 1 file(s) in the sparse checkout for merging |
9db856446298
sparse: add local files to temporaryfiles if they exist out of sparse
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39526
diff
changeset
|
176 merging a and amove to amove |
9db856446298
sparse: add local files to temporaryfiles if they exist out of sparse
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39526
diff
changeset
|
177 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
9db856446298
sparse: add local files to temporaryfiles if they exist out of sparse
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39526
diff
changeset
|
178 (branch merge, don't forget to commit) |
39526
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
179 |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
180 $ hg up -C 4 |
39527
9db856446298
sparse: add local files to temporaryfiles if they exist out of sparse
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39526
diff
changeset
|
181 cleaned up 1 temporarily added file(s) from the sparse checkout |
39526
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
182 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
183 |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
184 $ hg merge |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
185 merging amove and a to amove |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
186 abort: cannot add 'a' - it is outside the sparse checkout |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
187 (include file with `hg debugsparse --include <pattern>` or use `hg add -s <file>` to include file directory while adding) |
c6eb2118f44f
tests: show that merging with sparse is broken when rename is involved
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39285
diff
changeset
|
188 [255] |