##// END OF EJS Templates
tests: de-flake test-narrow-share.t by making dirstate predictable...
Martin von Zweigbergk -
r41217:32279239 default
parent child Browse files
Show More
@@ -1,170 +1,178 b''
1 #testcases flat tree
1 #testcases flat tree
2
2
3 $ . "$TESTDIR/narrow-library.sh"
3 $ . "$TESTDIR/narrow-library.sh"
4
4
5 #if tree
5 #if tree
6 $ cat << EOF >> $HGRCPATH
6 $ cat << EOF >> $HGRCPATH
7 > [experimental]
7 > [experimental]
8 > treemanifest = 1
8 > treemanifest = 1
9 > EOF
9 > EOF
10 #endif
10 #endif
11
11
12 $ cat << EOF >> $HGRCPATH
12 $ cat << EOF >> $HGRCPATH
13 > [extensions]
13 > [extensions]
14 > share =
14 > share =
15 > EOF
15 > EOF
16
16
17 $ hg init remote
17 $ hg init remote
18 $ cd remote
18 $ cd remote
19 $ for x in `$TESTDIR/seq.py 0 10`
19 $ for x in `$TESTDIR/seq.py 0 10`
20 > do
20 > do
21 > mkdir d$x
21 > mkdir d$x
22 > echo $x > d$x/f
22 > echo $x > d$x/f
23 > hg add d$x/f
23 > hg add d$x/f
24 > hg commit -m "add d$x/f"
24 > hg commit -m "add d$x/f"
25 > done
25 > done
26 $ cd ..
26 $ cd ..
27
27
28 $ hg clone --narrow ssh://user@dummy/remote main -q \
28 $ hg clone --narrow ssh://user@dummy/remote main -q \
29 > --include d1 --include d3 --include d5 --include d7
29 > --include d1 --include d3 --include d5 --include d7
30
30
31 $ hg share main share
31 $ hg share main share
32 updating working directory
32 updating working directory
33 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
33 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
34 $ hg -R share tracked
34 $ hg -R share tracked
35 I path:d1
35 I path:d1
36 I path:d3
36 I path:d3
37 I path:d5
37 I path:d5
38 I path:d7
38 I path:d7
39 $ hg -R share files
39 $ hg -R share files
40 share/d1/f
40 share/d1/f
41 share/d3/f
41 share/d3/f
42 share/d5/f
42 share/d5/f
43 share/d7/f
43 share/d7/f
44
44
45 Narrow the share and check that the main repo's working copy gets updated
45 Narrow the share and check that the main repo's working copy gets updated
46
46
47 # Make sure the files that are supposed to be known-clean get their timestamps set in the dirstate
48 $ sleep 2
49 $ hg -R main st
50 $ hg -R main debugdirstate --no-dates
51 n 644 2 set d1/f
52 n 644 2 set d3/f
53 n 644 2 set d5/f
54 n 644 2 set d7/f
47 # Make d3/f dirty
55 # Make d3/f dirty
48 $ echo x >> main/d3/f
56 $ echo x >> main/d3/f
49 $ echo y >> main/d3/g
57 $ echo y >> main/d3/g
50 $ hg add main/d3/g
58 $ hg add main/d3/g
51 $ hg -R main st
59 $ hg -R main st
52 M d3/f
60 M d3/f
53 A d3/g
61 A d3/g
54 # Make d5/f not match the dirstate timestamp even though it's clean
62 # Make d5/f not match the dirstate timestamp even though it's clean
55 $ sleep 2
63 $ sleep 2
56 $ hg -R main st
64 $ hg -R main st
57 M d3/f
65 M d3/f
58 A d3/g
66 A d3/g
59 $ hg -R main debugdirstate --no-dates
67 $ hg -R main debugdirstate --no-dates
60 n 644 2 set d1/f
68 n 644 2 set d1/f
61 n 644 2 unset d3/f
69 n 644 2 set d3/f
62 a 0 -1 unset d3/g
70 a 0 -1 unset d3/g
63 n 644 2 set d5/f
71 n 644 2 set d5/f
64 n 644 2 set d7/f
72 n 644 2 set d7/f
65 $ touch main/d5/f
73 $ touch main/d5/f
66 $ hg -R share tracked --removeinclude d1 --removeinclude d3 --removeinclude d5
74 $ hg -R share tracked --removeinclude d1 --removeinclude d3 --removeinclude d5
67 comparing with ssh://user@dummy/remote
75 comparing with ssh://user@dummy/remote
68 searching for changes
76 searching for changes
69 looking for local changes to affected paths
77 looking for local changes to affected paths
70 deleting data/d1/f.i
78 deleting data/d1/f.i
71 deleting data/d3/f.i
79 deleting data/d3/f.i
72 deleting data/d5/f.i
80 deleting data/d5/f.i
73 deleting meta/d1/00manifest.i (tree !)
81 deleting meta/d1/00manifest.i (tree !)
74 deleting meta/d3/00manifest.i (tree !)
82 deleting meta/d3/00manifest.i (tree !)
75 deleting meta/d5/00manifest.i (tree !)
83 deleting meta/d5/00manifest.i (tree !)
76 $ hg -R main tracked
84 $ hg -R main tracked
77 I path:d7
85 I path:d7
78 $ hg -R main files
86 $ hg -R main files
79 abort: working copy's narrowspec is stale
87 abort: working copy's narrowspec is stale
80 (run 'hg tracked --update-working-copy')
88 (run 'hg tracked --update-working-copy')
81 [255]
89 [255]
82 $ hg -R main tracked --update-working-copy
90 $ hg -R main tracked --update-working-copy
83 not deleting possibly dirty file d3/f
91 not deleting possibly dirty file d3/f
84 not deleting possibly dirty file d3/g
92 not deleting possibly dirty file d3/g
85 not deleting possibly dirty file d5/f
93 not deleting possibly dirty file d5/f
86 # d1/f, d3/f, d3/g and d5/f should no longer be reported
94 # d1/f, d3/f, d3/g and d5/f should no longer be reported
87 $ hg -R main files
95 $ hg -R main files
88 main/d7/f
96 main/d7/f
89 # d1/f should no longer be there, d3/f should be since it was dirty, d3/g should be there since
97 # d1/f should no longer be there, d3/f should be since it was dirty, d3/g should be there since
90 # it was added, and d5/f should be since we couldn't be sure it was clean
98 # it was added, and d5/f should be since we couldn't be sure it was clean
91 $ find main/d* -type f | sort
99 $ find main/d* -type f | sort
92 main/d3/f
100 main/d3/f
93 main/d3/g
101 main/d3/g
94 main/d5/f
102 main/d5/f
95 main/d7/f
103 main/d7/f
96
104
97 Widen the share and check that the main repo's working copy gets updated
105 Widen the share and check that the main repo's working copy gets updated
98
106
99 $ hg -R share tracked --addinclude d1 --addinclude d3 -q
107 $ hg -R share tracked --addinclude d1 --addinclude d3 -q
100 $ hg -R share tracked
108 $ hg -R share tracked
101 I path:d1
109 I path:d1
102 I path:d3
110 I path:d3
103 I path:d7
111 I path:d7
104 $ hg -R share files
112 $ hg -R share files
105 share/d1/f
113 share/d1/f
106 share/d3/f
114 share/d3/f
107 share/d7/f
115 share/d7/f
108 $ hg -R main tracked
116 $ hg -R main tracked
109 I path:d1
117 I path:d1
110 I path:d3
118 I path:d3
111 I path:d7
119 I path:d7
112 $ hg -R main files
120 $ hg -R main files
113 abort: working copy's narrowspec is stale
121 abort: working copy's narrowspec is stale
114 (run 'hg tracked --update-working-copy')
122 (run 'hg tracked --update-working-copy')
115 [255]
123 [255]
116 $ hg -R main tracked --update-working-copy
124 $ hg -R main tracked --update-working-copy
117 # d1/f, d3/f should be back
125 # d1/f, d3/f should be back
118 $ hg -R main files
126 $ hg -R main files
119 main/d1/f
127 main/d1/f
120 main/d3/f
128 main/d3/f
121 main/d7/f
129 main/d7/f
122 # d3/f should be modified (not clobbered by the widening), and d3/g should be untracked
130 # d3/f should be modified (not clobbered by the widening), and d3/g should be untracked
123 $ hg -R main st --all
131 $ hg -R main st --all
124 M d3/f
132 M d3/f
125 ? d3/g
133 ? d3/g
126 C d1/f
134 C d1/f
127 C d7/f
135 C d7/f
128
136
129 We should also be able to unshare without breaking everything:
137 We should also be able to unshare without breaking everything:
130
138
131 $ hg share main share-unshare
139 $ hg share main share-unshare
132 updating working directory
140 updating working directory
133 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
141 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
134 $ cd share-unshare
142 $ cd share-unshare
135 $ hg unshare
143 $ hg unshare
136 $ hg verify
144 $ hg verify
137 checking changesets
145 checking changesets
138 checking manifests
146 checking manifests
139 checking directory manifests (tree !)
147 checking directory manifests (tree !)
140 crosschecking files in changesets and manifests
148 crosschecking files in changesets and manifests
141 checking files
149 checking files
142 checked 11 changesets with 3 changes to 3 files
150 checked 11 changesets with 3 changes to 3 files
143 $ cd ..
151 $ cd ..
144
152
145 Dirstate should be left alone when upgrading from version of hg that didn't support narrow+share
153 Dirstate should be left alone when upgrading from version of hg that didn't support narrow+share
146
154
147 $ hg share main share-upgrade
155 $ hg share main share-upgrade
148 updating working directory
156 updating working directory
149 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
157 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
150 $ cd share-upgrade
158 $ cd share-upgrade
151 $ echo x >> d1/f
159 $ echo x >> d1/f
152 $ echo y >> d3/g
160 $ echo y >> d3/g
153 $ hg add d3/g
161 $ hg add d3/g
154 $ hg rm d7/f
162 $ hg rm d7/f
155 $ hg st
163 $ hg st
156 M d1/f
164 M d1/f
157 A d3/g
165 A d3/g
158 R d7/f
166 R d7/f
159 Make it look like a repo from before narrow+share was supported
167 Make it look like a repo from before narrow+share was supported
160 $ rm .hg/narrowspec.dirstate
168 $ rm .hg/narrowspec.dirstate
161 $ hg st
169 $ hg st
162 abort: working copy's narrowspec is stale
170 abort: working copy's narrowspec is stale
163 (run 'hg tracked --update-working-copy')
171 (run 'hg tracked --update-working-copy')
164 [255]
172 [255]
165 $ hg tracked --update-working-copy
173 $ hg tracked --update-working-copy
166 $ hg st
174 $ hg st
167 M d1/f
175 M d1/f
168 A d3/g
176 A d3/g
169 R d7/f
177 R d7/f
170 $ cd ..
178 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now