Mercurial > hg-stable
annotate tests/test-merge-exec.t @ 44791:4234c9af515d stable
flags: read flag from dirstate/disk for workingcopyctx (issue5743)
In 491855ea9d62, various piece of code are moved from committablectx to
workingctx. The reason given is "These read from the dirstate, so they shouldn't
be used in other subclasses."
At least for `flags` this change introduce a bug, because the value flags end up being
read from `_manifest` disregarding the actual state in the working copy (ie: on
disk). When merging exec flag change with renames, this means a new files (the
local content, renamed) is properly written on disk, with the right flags, but
the flags part is later ignored when actually reading flags during merge.
It is not clear to me why the `flags` function was moved, because the code does
not actually hit the dirstate (the reason given in the changeset description).
So I am moving it back to were it comes from and we use a simpler version of
that code (that hit the dirstate everytime) in workingcopyctx. This fix the last
know bug with merging rename and executable byte changes.
Other similar bug might be lurking in 491855ea9d62, but I have not investigated
them.
Differential Revision: https://phab.mercurial-scm.org/D8534
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sat, 16 May 2020 20:38:31 +0200 |
parents | 84614212ae39 |
children | 9afee647a9f0 |
rev | line source |
---|---|
44786
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
1 =============================================== |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
2 Testing merge involving change to the exec flag |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
3 =============================================== |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
4 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
5 #require execbit |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
6 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
7 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
8 Initial setup |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
9 ============== |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
10 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
11 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
12 $ hg init base-repo |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
13 $ cd base-repo |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
14 $ cat << EOF > a |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
15 > 1 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
16 > 2 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
17 > 3 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
18 > 4 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
19 > 5 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
20 > 6 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
21 > 7 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
22 > 8 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
23 > 9 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
24 > EOF |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
25 $ touch b |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
26 $ hg add a b |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
27 $ hg commit -m "initial commit" |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
28 $ cd .. |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
29 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
30 Testing merging mode change |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
31 =========================== |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
32 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
33 setup |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
34 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
35 Change on one side, executable bit on the other |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
36 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
37 $ hg clone base-repo simple-merge-repo |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
38 updating to branch default |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
39 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
40 $ cd simple-merge-repo |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
41 $ chmod +x a |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
42 $ hg ci -m "make a executable, no change" |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
43 $ [ -x a ] || echo "executable bit not recorded" |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
44 $ hg up ".^" |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
45 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
46 $ cat << EOF > a |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
47 > 1 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
48 > 2 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
49 > 3 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
50 > 4 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
51 > 5 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
52 > 6 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
53 > 7 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
54 > x |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
55 > 9 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
56 > EOF |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
57 $ hg commit -m "edit end of file" |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
58 created new head |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
59 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
60 merge them (from the update side) |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
61 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
62 $ hg merge 'desc("make a executable, no change")' |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
63 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
64 (branch merge, don't forget to commit) |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
65 $ hg st |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
66 M a |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
67 $ [ -x a ] || echo "executable bit lost" |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
68 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
69 merge them (from the chmod side) |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
70 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
71 $ hg up -C 'desc("make a executable, no change")' |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
72 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
73 $ hg merge 'desc("edit end of file")' |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
74 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
75 (branch merge, don't forget to commit) |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
76 $ hg st |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
77 M a |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
78 $ [ -x a ] || echo "executable bit lost" |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
79 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
80 |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
81 $ cd .. |
bf5ed664f467
flags: introduce explicit testing for merging change to exec flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
82 |
44787
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
83 Testing merging mode change with rename |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
84 ======================================= |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
85 |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
86 $ hg clone base-repo rename-merge-repo |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
87 updating to branch default |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
88 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
89 $ cd rename-merge-repo |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
90 |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
91 make "a" executable on one side |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
92 |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
93 $ chmod +x a |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
94 $ hg status |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
95 M a |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
96 $ hg ci -m "make a executable" |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
97 $ [ -x a ] || echo "executable bit not recorded" |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
98 $ hg up ".^" |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
99 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
100 |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
101 make "a" renamed on the other side |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
102 |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
103 $ hg mv a z |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
104 $ hg st --copies |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
105 A z |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
106 a |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
107 R a |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
108 $ hg ci -m "rename a to z" |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
109 created new head |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
110 |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
111 merge them (from the rename side) |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
112 |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
113 $ hg merge 'desc("make a executable")' |
44788
d452acc8cce8
flags: account for flag change when tracking rename relevant to merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44787
diff
changeset
|
114 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
44787
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
115 (branch merge, don't forget to commit) |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
116 $ hg st --copies |
44788
d452acc8cce8
flags: account for flag change when tracking rename relevant to merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44787
diff
changeset
|
117 M z |
d452acc8cce8
flags: account for flag change when tracking rename relevant to merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44787
diff
changeset
|
118 a |
44787
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
119 $ [ -x z ] || echo "executable bit lost" |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
120 |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
121 merge them (from the chmod side) |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
122 |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
123 $ hg up -C 'desc("make a executable")' |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
124 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
125 $ hg merge 'desc("rename a to z")' |
44788
d452acc8cce8
flags: account for flag change when tracking rename relevant to merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44787
diff
changeset
|
126 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
44787
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
127 (branch merge, don't forget to commit) |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
128 $ hg st --copies |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
129 M z |
44788
d452acc8cce8
flags: account for flag change when tracking rename relevant to merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44787
diff
changeset
|
130 a |
44787
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
131 R a |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
132 $ [ -x z ] || echo "executable bit lost" |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
133 |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
134 |
9438c84d1dce
flags: also test merging a rename with and exec flag change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44786
diff
changeset
|
135 $ cd .. |
44789
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
136 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
137 Testing merging mode change with rename + modification on both side |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
138 =================================================================== |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
139 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
140 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
141 $ hg clone base-repo rename+mod-merge-repo |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
142 updating to branch default |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
143 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
144 $ cd rename+mod-merge-repo |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
145 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
146 make "a" executable on one side |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
147 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
148 $ chmod +x a |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
149 $ cat << EOF > a |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
150 > 1 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
151 > x |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
152 > 3 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
153 > 4 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
154 > 5 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
155 > 6 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
156 > 7 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
157 > 8 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
158 > 9 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
159 > EOF |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
160 $ hg status |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
161 M a |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
162 $ hg ci -m "make a executable, and change start" |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
163 $ [ -x a ] || echo "executable bit not recorded" |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
164 $ hg up ".^" |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
165 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
166 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
167 make "a" renamed on the other side |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
168 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
169 $ hg mv a z |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
170 $ hg st --copies |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
171 A z |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
172 a |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
173 R a |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
174 $ cat << EOF > z |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
175 > 1 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
176 > 2 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
177 > 3 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
178 > 4 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
179 > 5 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
180 > 6 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
181 > 7 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
182 > x |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
183 > 9 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
184 > EOF |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
185 $ hg ci -m "rename a to z, and change end" |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
186 created new head |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
187 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
188 merge them (from the rename side) |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
189 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
190 $ hg merge 'desc("make a executable")' |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
191 merging z and a to z |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
192 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
193 (branch merge, don't forget to commit) |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
194 $ hg st --copies |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
195 M z |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
196 a |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
197 $ [ -x z ] || echo "executable bit lost" |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
198 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
199 merge them (from the chmod side) |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
200 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
201 $ hg up -C 'desc("make a executable")' |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
202 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
203 $ hg merge 'desc("rename a to z")' |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
204 merging a and z to z |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
205 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
206 (branch merge, don't forget to commit) |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
207 $ hg st --copies |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
208 M z |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
209 a |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
210 R a |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
211 $ [ -x z ] || echo "executable bit lost" |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
212 |
783f059509e4
flags: add a test for merging exec flag change with rename and file change
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
44788
diff
changeset
|
213 $ cd .. |