Mercurial > hg
annotate tests/test-narrow-share.t @ 41298:88a7c211b21e stable
narrow: fix crash when restoring backup in legacy repo
Using --addremove when committing in an old repo (before we started
keeping .hg/narrowspec.dirstate) results in a crash. The test
case modified in this patch would crash like this:
abort: $ENOENT$
The issue is that when the dirstateguard is aborted, it tries to
restore the backup of .hg/narrowspec.dirstate. However, since we were
in an old repo, that file did not get created when the dirstateguard
was created. Note that the dirstateguard is not used unless
--addremove is passed.
This patch fixes the bug by making restorewcbackup() not fail if the
backup doesn't exist. I also made clearwcbackup() safe, just in case.
Differential Revision: https://phab.mercurial-scm.org/D5634
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 18 Jan 2019 23:32:26 -0800 |
parents | 3227923979a1 |
children | 84bd6ae2d1f6 |
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 |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
31 $ hg share main share |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
32 updating working directory |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
33 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
|
34 $ hg -R share tracked |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
35 I path:d1 |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
36 I path:d3 |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
37 I path:d5 |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
38 I path:d7 |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
39 $ hg -R share files |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
40 share/d1/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
41 share/d3/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
42 share/d5/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
43 share/d7/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
44 |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
45 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
|
46 |
41181
3227923979a1
tests: de-flake test-narrow-share.t by making dirstate predictable
Martin von Zweigbergk <martinvonz@google.com>
parents:
41043
diff
changeset
|
47 # 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
|
48 $ sleep 2 |
3227923979a1
tests: de-flake test-narrow-share.t by making dirstate predictable
Martin von Zweigbergk <martinvonz@google.com>
parents:
41043
diff
changeset
|
49 $ 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
|
50 $ 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
|
51 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
|
52 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
|
53 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
|
54 n 644 2 set d7/f |
41042
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
55 # Make d3/f dirty |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
56 $ echo x >> main/d3/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
57 $ echo y >> main/d3/g |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
58 $ hg add main/d3/g |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
59 $ hg -R main st |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
60 M d3/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
61 A d3/g |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
62 # 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
|
63 $ sleep 2 |
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 |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
67 $ hg -R main debugdirstate --no-dates |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
68 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
|
69 n 644 2 set d3/f |
41042
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
70 a 0 -1 unset d3/g |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
71 n 644 2 set d5/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
72 n 644 2 set d7/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
73 $ touch main/d5/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
74 $ 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
|
75 comparing with ssh://user@dummy/remote |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
76 searching for changes |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
77 looking for local changes to affected paths |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
78 deleting data/d1/f.i |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
79 deleting data/d3/f.i |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
80 deleting data/d5/f.i |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
81 deleting meta/d1/00manifest.i (tree !) |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
82 deleting meta/d3/00manifest.i (tree !) |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
83 deleting meta/d5/00manifest.i (tree !) |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
84 $ hg -R main tracked |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
85 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
|
86 $ 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
|
87 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
|
88 (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
|
89 [255] |
ce0bc2952e2a
narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents:
41042
diff
changeset
|
90 $ 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
|
91 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
|
92 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
|
93 not deleting possibly dirty file d5/f |
41042
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
94 # 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
|
95 $ hg -R main files |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
96 main/d7/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
97 # 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
|
98 # 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
|
99 $ find main/d* -type f | sort |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
100 main/d3/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
101 main/d3/g |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
102 main/d5/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
103 main/d7/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
104 |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
105 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
|
106 |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
107 $ 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
|
108 $ hg -R share tracked |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
109 I path:d1 |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
110 I path:d3 |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
111 I path:d7 |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
112 $ hg -R share files |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
113 share/d1/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
114 share/d3/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
115 share/d7/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
116 $ hg -R main tracked |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
117 I path:d1 |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
118 I path:d3 |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
119 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
|
120 $ 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
|
121 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
|
122 (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
|
123 [255] |
ce0bc2952e2a
narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents:
41042
diff
changeset
|
124 $ hg -R main tracked --update-working-copy |
41042
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
125 # d1/f, d3/f should be back |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
126 $ hg -R main files |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
127 main/d1/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
128 main/d3/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
129 main/d7/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
130 # 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
|
131 $ hg -R main st --all |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
132 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
|
133 ? d3/g |
41042
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
134 C d1/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
135 C d7/f |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
136 |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
137 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
|
138 |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
139 $ hg share main share-unshare |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
140 updating working directory |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
141 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
|
142 $ cd share-unshare |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
143 $ hg unshare |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
144 $ hg verify |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
145 checking changesets |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
146 checking manifests |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
147 checking directory manifests (tree !) |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
148 crosschecking files in changesets and manifests |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
149 checking files |
7db1619af061
tests: add test for narrow+share
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
150 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
|
151 $ cd .. |
41043
ce0bc2952e2a
narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents:
41042
diff
changeset
|
152 |
ce0bc2952e2a
narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents:
41042
diff
changeset
|
153 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
|
154 |
ce0bc2952e2a
narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents:
41042
diff
changeset
|
155 $ 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
|
156 updating working directory |
ce0bc2952e2a
narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents:
41042
diff
changeset
|
157 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
|
158 $ cd share-upgrade |
ce0bc2952e2a
narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents:
41042
diff
changeset
|
159 $ 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
|
160 $ 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
|
161 $ 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
|
162 $ 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
|
163 $ hg st |
ce0bc2952e2a
narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents:
41042
diff
changeset
|
164 M d1/f |
ce0bc2952e2a
narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents:
41042
diff
changeset
|
165 A d3/g |
ce0bc2952e2a
narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents:
41042
diff
changeset
|
166 R d7/f |
ce0bc2952e2a
narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents:
41042
diff
changeset
|
167 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
|
168 $ 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
|
169 $ 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
|
170 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
|
171 (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
|
172 [255] |
ce0bc2952e2a
narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents:
41042
diff
changeset
|
173 $ 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
|
174 $ hg st |
ce0bc2952e2a
narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents:
41042
diff
changeset
|
175 M d1/f |
ce0bc2952e2a
narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents:
41042
diff
changeset
|
176 A d3/g |
ce0bc2952e2a
narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents:
41042
diff
changeset
|
177 R d7/f |
ce0bc2952e2a
narrow: detect if narrowspec was changed in a different share
Martin von Zweigbergk <martinvonz@google.com>
parents:
41042
diff
changeset
|
178 $ cd .. |