annotate tests/test-narrow-share.t @ 44985:1ca0047fd7e1

absorb: preserve changesets which were already empty Most commands in Mercurial (commit, rebase, absorb itself) don’t create empty changesets or drop them if they become empty. If there’s a changeset that’s empty, it must be a deliberate choice of the user. At least it shouldn’t be absorb’s responsibility to prune them. The fact that changesets that became empty during absorb are pruned, is unaffected by this. This case was found while writing patches which make it possible to configure absorb and rebase to not drop empty changesets. Even without having such config set, I think it’s valuable to preserve changesets which were already empty.
author Manuel Jacob <me@manueljacob.de>
date Mon, 01 Jun 2020 20:57:14 +0200
parents 84bd6ae2d1f6
children d252f51ab032
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
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
2
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
3 $ . "$TESTDIR/narrow-library.sh"
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
4
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
5 #if tree
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
6 $ cat << EOF >> $HGRCPATH
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
7 > [experimental]
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
8 > treemanifest = 1
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
9 > EOF
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
10 #endif
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
11
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 > [extensions]
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
14 > share =
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
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
17 $ hg init remote
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
18 $ cd remote
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
19 $ for x in `$TESTDIR/seq.py 0 10`
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
20 > do
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
21 > mkdir d$x
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
22 > echo $x > d$x/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
23 > hg add d$x/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
24 > hg commit -m "add d$x/f"
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
25 > done
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
26 $ cd ..
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
27
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
28 $ 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
29 > --include d1 --include d3 --include d5 --include d7
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
30
42171
84bd6ae2d1f6 narrow: also warn when not deleting untracked or ignored files
Martin von Zweigbergk <martinvonz@google.com>
parents: 41298
diff changeset
31 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
32 $ 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
33
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
34 $ hg share main share
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
35 updating working directory
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
36 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
37 $ hg -R share tracked
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
38 I path:d1
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
39 I path:d3
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
40 I path:d5
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
41 I path:d7
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
42 $ hg -R share files
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
43 share/d1/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
44 share/d3/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
45 share/d5/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
46 share/d7/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
47
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
48 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
49
41181
3227923979a1 tests: de-flake test-narrow-share.t by making dirstate predictable
Martin von Zweigbergk <martinvonz@google.com>
parents: 41043
diff changeset
50 # 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
51 $ sleep 2
3227923979a1 tests: de-flake test-narrow-share.t by making dirstate predictable
Martin von Zweigbergk <martinvonz@google.com>
parents: 41043
diff changeset
52 $ 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
53 $ 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
54 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
55 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
56 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
57 n 644 2 set d7/f
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
58 # Make d3/f dirty
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
59 $ echo x >> main/d3/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
60 $ 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
61 $ 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
62 $ touch main/d3/untracked
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
63 $ hg add main/d3/g
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
64 $ hg -R main st
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
65 M d3/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
66 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
67 ? d3/untracked
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
68 # 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
69 $ sleep 2
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 $ hg -R main debugdirstate --no-dates
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
75 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
76 n 644 2 set d3/f
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
77 a 0 -1 unset d3/g
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
78 n 644 2 set d5/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
79 n 644 2 set d7/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
80 $ touch main/d5/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
81 $ 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
82 comparing with ssh://user@dummy/remote
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
83 searching for changes
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
84 looking for local changes to affected paths
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
85 deleting data/d1/f.i
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
86 deleting data/d3/f.i
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
87 deleting data/d5/f.i
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
88 deleting meta/d1/00manifest.i (tree !)
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
89 deleting meta/d3/00manifest.i (tree !)
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
90 deleting meta/d5/00manifest.i (tree !)
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
91 $ hg -R main tracked
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
92 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
93 $ 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
94 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
95 (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
96 [255]
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
97 $ 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
98 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
99 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
100 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
101 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
102 not deleting ignored file d3/ignored
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
103 # 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
104 $ hg -R main files
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
105 main/d7/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
106 # 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
107 # 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
108 $ find main/d* -type f | sort
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
109 main/d3/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
110 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
111 main/d3/ignored
84bd6ae2d1f6 narrow: also warn when not deleting untracked or ignored files
Martin von Zweigbergk <martinvonz@google.com>
parents: 41298
diff changeset
112 main/d3/untracked
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
113 main/d5/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
114 main/d7/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
115
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
116 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
117
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
118 $ 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
119 $ hg -R share tracked
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
120 I path:d1
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
121 I path:d3
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
122 I path:d7
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
123 $ hg -R share files
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
124 share/d1/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
125 share/d3/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
126 share/d7/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
127 $ hg -R main tracked
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
128 I path:d1
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
129 I path:d3
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
130 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
131 $ 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
132 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
133 (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
134 [255]
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
135 $ hg -R main tracked --update-working-copy
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
136 # d1/f, d3/f should be back
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
137 $ hg -R main files
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
138 main/d1/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
139 main/d3/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
140 main/d7/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
141 # 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
142 $ hg -R main st --all
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
143 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
144 ? d3/g
42171
84bd6ae2d1f6 narrow: also warn when not deleting untracked or ignored files
Martin von Zweigbergk <martinvonz@google.com>
parents: 41298
diff changeset
145 ? d3/untracked
84bd6ae2d1f6 narrow: also warn when not deleting untracked or ignored files
Martin von Zweigbergk <martinvonz@google.com>
parents: 41298
diff changeset
146 I d3/ignored
41042
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
147 C d1/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
148 C d7/f
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
149
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
150 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
151
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
152 $ hg share main share-unshare
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
153 updating working directory
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
154 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
155 $ cd share-unshare
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
156 $ hg unshare
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
157 $ hg verify
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
158 checking changesets
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
159 checking manifests
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
160 checking directory manifests (tree !)
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
161 crosschecking files in changesets and manifests
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
162 checking files
7db1619af061 tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
163 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
164 $ cd ..
41043
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
165
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
166 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
167
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
168 $ 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
169 updating working directory
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
170 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
171 $ cd share-upgrade
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
172 $ 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
173 $ 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
174 $ 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
175 $ 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
176 $ hg st
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
177 M d1/f
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
178 A d3/g
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
179 R d7/f
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
180 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
181 $ 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
182 $ 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
183 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
184 (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
185 [255]
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
186 $ 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
187 $ hg st
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
188 M d1/f
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
189 A d3/g
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
190 R d7/f
ce0bc2952e2a narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents: 41042
diff changeset
191 $ cd ..