annotate tests/test-narrow-share.t @ 45587:768412472663

merge: store cases when a file is absent post merge in commitinfo Some merges can result in file being absent form working directory. This can be one of file was kept deleted or file was removed by merge code. User might revert the file back before committing. In such cases we will like to have better handling and create new filenodes. We store this info in mergestate as commitinfo so that we can use it while committing to create new filenode if required. Differential Revision: https://phab.mercurial-scm.org/D9003
author Pulkit Goyal <7895pulkit@gmail.com>
date Mon, 24 Aug 2020 15:35:34 +0530
parents d252f51ab032
children 20eba5cef2e0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
1 #testcases flat tree
45483
d252f51ab032 share: introduce config option to store requires in .hg/store
Pulkit Goyal <7895pulkit@gmail.com>
parents: 42171
diff changeset
2 #testcases safe normal
d252f51ab032 share: introduce config option to store requires in .hg/store
Pulkit Goyal <7895pulkit@gmail.com>
parents: 42171
diff changeset
3
d252f51ab032 share: introduce config option to store requires in .hg/store
Pulkit Goyal <7895pulkit@gmail.com>
parents: 42171
diff changeset
4 #if safe
d252f51ab032 share: introduce config option to store requires in .hg/store
Pulkit Goyal <7895pulkit@gmail.com>
parents: 42171
diff changeset
5 $ echo "[format]" >> $HGRCPATH
d252f51ab032 share: introduce config option to store requires in .hg/store
Pulkit Goyal <7895pulkit@gmail.com>
parents: 42171
diff changeset
6 $ echo "exp-share-safe = True" >> $HGRCPATH
d252f51ab032 share: introduce config option to store requires in .hg/store
Pulkit Goyal <7895pulkit@gmail.com>
parents: 42171
diff changeset
7 #endif
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
8
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
9 $ . "$TESTDIR/narrow-library.sh"
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
10
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
11 #if tree
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
12 $ cat << EOF >> $HGRCPATH
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
13 > [experimental]
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
14 > treemanifest = 1
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
15 > EOF
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
16 #endif
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
17
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
18 $ cat << EOF >> $HGRCPATH
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
19 > [extensions]
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
20 > share =
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
21 > EOF
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
22
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
23 $ hg init remote
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
24 $ cd remote
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
25 $ for x in `$TESTDIR/seq.py 0 10`
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
26 > do
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
27 > mkdir d$x
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
28 > echo $x > d$x/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
29 > hg add d$x/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
30 > hg commit -m "add d$x/f"
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
31 > done
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
32 $ cd ..
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
33
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
34 $ hg clone --narrow ssh://user@dummy/remote main -q \
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
35 > --include d1 --include d3 --include d5 --include d7
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
36
42171
84bd6ae2d1f6 narrow: also warn when not deleting untracked or ignored files
Martin von Zweigbergk <martinvonz@google.com>
parents: 41298
diff changeset
37 Ignore file called "ignored"
84bd6ae2d1f6 narrow: also warn when not deleting untracked or ignored files
Martin von Zweigbergk <martinvonz@google.com>
parents: 41298
diff changeset
38 $ echo ignored > main/.hgignore
84bd6ae2d1f6 narrow: also warn when not deleting untracked or ignored files
Martin von Zweigbergk <martinvonz@google.com>
parents: 41298
diff changeset
39
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
40 $ hg share main share
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
41 updating working directory
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
42 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
43 $ hg -R share tracked
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
44 I path:d1
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
45 I path:d3
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
46 I path:d5
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
47 I path:d7
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
48 $ hg -R share files
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
49 share/d1/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
50 share/d3/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
51 share/d5/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
52 share/d7/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
53
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
54 Narrow the share and check that the main repo's working copy gets updated
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
55
41181
3227923979a1 tests: de-flake test-narrow-share.t by making dirstate predictable
Martin von Zweigbergk <martinvonz@google.com>
parents: 41043
diff changeset
56 # Make sure the files that are supposed to be known-clean get their timestamps set in the dirstate
3227923979a1 tests: de-flake test-narrow-share.t by making dirstate predictable
Martin von Zweigbergk <martinvonz@google.com>
parents: 41043
diff changeset
57 $ sleep 2
3227923979a1 tests: de-flake test-narrow-share.t by making dirstate predictable
Martin von Zweigbergk <martinvonz@google.com>
parents: 41043
diff changeset
58 $ hg -R main st
3227923979a1 tests: de-flake test-narrow-share.t by making dirstate predictable
Martin von Zweigbergk <martinvonz@google.com>
parents: 41043
diff changeset
59 $ hg -R main debugdirstate --no-dates
3227923979a1 tests: de-flake test-narrow-share.t by making dirstate predictable
Martin von Zweigbergk <martinvonz@google.com>
parents: 41043
diff changeset
60 n 644 2 set d1/f
3227923979a1 tests: de-flake test-narrow-share.t by making dirstate predictable
Martin von Zweigbergk <martinvonz@google.com>
parents: 41043
diff changeset
61 n 644 2 set d3/f
3227923979a1 tests: de-flake test-narrow-share.t by making dirstate predictable
Martin von Zweigbergk <martinvonz@google.com>
parents: 41043
diff changeset
62 n 644 2 set d5/f
3227923979a1 tests: de-flake test-narrow-share.t by making dirstate predictable
Martin von Zweigbergk <martinvonz@google.com>
parents: 41043
diff changeset
63 n 644 2 set d7/f
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
64 # Make d3/f dirty
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
65 $ echo x >> main/d3/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
66 $ echo y >> main/d3/g
42171
84bd6ae2d1f6 narrow: also warn when not deleting untracked or ignored files
Martin von Zweigbergk <martinvonz@google.com>
parents: 41298
diff changeset
67 $ touch main/d3/ignored
84bd6ae2d1f6 narrow: also warn when not deleting untracked or ignored files
Martin von Zweigbergk <martinvonz@google.com>
parents: 41298
diff changeset
68 $ touch main/d3/untracked
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
69 $ hg add main/d3/g
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
70 $ hg -R main st
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
71 M d3/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
72 A d3/g
42171
84bd6ae2d1f6 narrow: also warn when not deleting untracked or ignored files
Martin von Zweigbergk <martinvonz@google.com>
parents: 41298
diff changeset
73 ? d3/untracked
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
74 # Make d5/f not match the dirstate timestamp even though it's clean
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
75 $ sleep 2
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
76 $ hg -R main st
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
77 M d3/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
78 A d3/g
42171
84bd6ae2d1f6 narrow: also warn when not deleting untracked or ignored files
Martin von Zweigbergk <martinvonz@google.com>
parents: 41298
diff changeset
79 ? d3/untracked
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
80 $ hg -R main debugdirstate --no-dates
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
81 n 644 2 set d1/f
41181
3227923979a1 tests: de-flake test-narrow-share.t by making dirstate predictable
Martin von Zweigbergk <martinvonz@google.com>
parents: 41043
diff changeset
82 n 644 2 set d3/f
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
83 a 0 -1 unset d3/g
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
84 n 644 2 set d5/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
85 n 644 2 set d7/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
86 $ touch main/d5/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
87 $ hg -R share tracked --removeinclude d1 --removeinclude d3 --removeinclude d5
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
88 comparing with ssh://user@dummy/remote
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
89 searching for changes
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
90 looking for local changes to affected paths
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
91 deleting data/d1/f.i
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
92 deleting data/d3/f.i
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
93 deleting data/d5/f.i
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
94 deleting meta/d1/00manifest.i (tree !)
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
95 deleting meta/d3/00manifest.i (tree !)
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
96 deleting meta/d5/00manifest.i (tree !)
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
97 $ hg -R main tracked
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
98 I path:d7
41043
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
99 $ hg -R main files
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
100 abort: working copy's narrowspec is stale
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
101 (run 'hg tracked --update-working-copy')
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
102 [255]
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
103 $ hg -R main tracked --update-working-copy
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
104 not deleting possibly dirty file d3/f
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
105 not deleting possibly dirty file d3/g
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
106 not deleting possibly dirty file d5/f
42171
84bd6ae2d1f6 narrow: also warn when not deleting untracked or ignored files
Martin von Zweigbergk <martinvonz@google.com>
parents: 41298
diff changeset
107 not deleting unknown file d3/untracked
84bd6ae2d1f6 narrow: also warn when not deleting untracked or ignored files
Martin von Zweigbergk <martinvonz@google.com>
parents: 41298
diff changeset
108 not deleting ignored file d3/ignored
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
109 # d1/f, d3/f, d3/g and d5/f should no longer be reported
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
110 $ hg -R main files
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
111 main/d7/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
112 # d1/f should no longer be there, d3/f should be since it was dirty, d3/g should be there since
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
113 # it was added, and d5/f should be since we couldn't be sure it was clean
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
114 $ find main/d* -type f | sort
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
115 main/d3/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
116 main/d3/g
42171
84bd6ae2d1f6 narrow: also warn when not deleting untracked or ignored files
Martin von Zweigbergk <martinvonz@google.com>
parents: 41298
diff changeset
117 main/d3/ignored
84bd6ae2d1f6 narrow: also warn when not deleting untracked or ignored files
Martin von Zweigbergk <martinvonz@google.com>
parents: 41298
diff changeset
118 main/d3/untracked
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
119 main/d5/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
120 main/d7/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
121
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
122 Widen the share and check that the main repo's working copy gets updated
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
123
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
124 $ hg -R share tracked --addinclude d1 --addinclude d3 -q
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
125 $ hg -R share tracked
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
126 I path:d1
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
127 I path:d3
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
128 I path:d7
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
129 $ hg -R share files
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
130 share/d1/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
131 share/d3/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
132 share/d7/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
133 $ hg -R main tracked
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
134 I path:d1
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
135 I path:d3
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
136 I path:d7
41043
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
137 $ hg -R main files
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
138 abort: working copy's narrowspec is stale
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
139 (run 'hg tracked --update-working-copy')
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
140 [255]
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
141 $ hg -R main tracked --update-working-copy
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
142 # d1/f, d3/f should be back
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
143 $ hg -R main files
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
144 main/d1/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
145 main/d3/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
146 main/d7/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
147 # d3/f should be modified (not clobbered by the widening), and d3/g should be untracked
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
148 $ hg -R main st --all
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
149 M d3/f
41043
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
150 ? d3/g
42171
84bd6ae2d1f6 narrow: also warn when not deleting untracked or ignored files
Martin von Zweigbergk <martinvonz@google.com>
parents: 41298
diff changeset
151 ? d3/untracked
84bd6ae2d1f6 narrow: also warn when not deleting untracked or ignored files
Martin von Zweigbergk <martinvonz@google.com>
parents: 41298
diff changeset
152 I d3/ignored
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
153 C d1/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
154 C d7/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
155
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
156 We should also be able to unshare without breaking everything:
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
157
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
158 $ hg share main share-unshare
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
159 updating working directory
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
160 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
161 $ cd share-unshare
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
162 $ hg unshare
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
163 $ hg verify
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
164 checking changesets
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
165 checking manifests
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
166 checking directory manifests (tree !)
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
167 crosschecking files in changesets and manifests
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
168 checking files
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
169 checked 11 changesets with 3 changes to 3 files
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
170 $ cd ..
41043
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
171
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
172 Dirstate should be left alone when upgrading from version of hg that didn't support narrow+share
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
173
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
174 $ hg share main share-upgrade
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
175 updating working directory
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
176 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
177 $ cd share-upgrade
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
178 $ echo x >> d1/f
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
179 $ echo y >> d3/g
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
180 $ hg add d3/g
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
181 $ hg rm d7/f
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
182 $ hg st
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
183 M d1/f
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
184 A d3/g
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
185 R d7/f
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
186 Make it look like a repo from before narrow+share was supported
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
187 $ rm .hg/narrowspec.dirstate
41298
88a7c211b21e narrow: fix crash when restoring backup in legacy repo
Martin von Zweigbergk <martinvonz@google.com>
parents: 41181
diff changeset
188 $ hg ci -Am test
41043
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
189 abort: working copy's narrowspec is stale
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
190 (run 'hg tracked --update-working-copy')
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
191 [255]
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
192 $ hg tracked --update-working-copy
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
193 $ hg st
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
194 M d1/f
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
195 A d3/g
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
196 R d7/f
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
197 $ cd ..