##// END OF EJS Templates
strip: invalidate all caches after stripping (fixes issue1951)...
Benoit Boissinot -
r10547:bae9bb09 stable
parent child Browse files
Show More
@@ -0,0 +1,104 b''
1 #!/bin/sh
2
3 createrepo() {
4 rm -rf repo
5 hg init repo
6 cd repo
7
8 echo "a" > a
9 hg commit -d '0 0' -A -m 'A'
10
11 hg branch branch1
12 hg commit -d '1 0' -m 'Branch1'
13
14 echo "b" > b
15 hg commit -A -d '2 0' -m 'B'
16
17 hg up 0
18 hg branch branch2
19 hg commit -d '3 0' -m 'Branch2'
20
21 echo "c" > C
22 hg commit -A -d '4 0' -m 'C'
23
24 hg up 2
25 hg branch -f branch2
26 echo "d" > d
27 hg commit -A -d '5 0' -m 'D'
28
29 echo "e" > e
30 hg commit -A -d '6 0' -m 'E'
31
32 hg update default
33
34 hg branch branch3
35 hg commit -d '7 0' -m 'Branch3'
36
37 echo "f" > f
38 hg commit -A -d '8 0' -m 'F'
39 }
40
41 echo
42 createrepo > /dev/null 2>&1
43 hg --config extensions.hgext.graphlog= glog --template '{rev}:{node|short} {desc} branch: {branches}\n'
44
45 echo
46 echo '% Branches'
47 hg branches
48
49 echo
50 echo '% Heads'
51 hg heads --template '{rev}:{node|short} {desc} branch: {branches}\n'
52
53 echo
54 echo '% Rebase part of branch2 (5-6) onto branch3 (8)'
55 hg --config extensions.hgext.rebase= rebase --detach -s 5 -d 8 2>&1 | sed 's/\(saving bundle to \).*/\1/'
56
57 echo
58 echo '% Branches'
59 hg branches
60
61 echo
62 echo '% Heads'
63 hg heads --template '{rev}:{node|short} {desc} branch: {branches}\n'
64
65 echo
66 hg --config extensions.hgext.graphlog= glog --template '{rev}:{node|short} {desc} branch: {branches}\n'
67
68 echo
69 echo '% Rebase head of branch3 (8) onto branch2 (6)'
70 createrepo > /dev/null 2>&1
71 hg --config extensions.hgext.graphlog= glog --template '{rev}:{node|short} {desc} branch: {branches}\n'
72
73 hg --config extensions.hgext.rebase= rebase --detach -s 8 -d 6 2>&1 | sed 's/\(saving bundle to \).*/\1/'
74
75 echo
76 echo '% Branches'
77 hg branches
78
79 echo
80 echo '% Heads'
81 hg heads --template '{rev}:{node|short} {desc} branch: {branches}\n'
82
83 echo
84 hg --config extensions.hgext.graphlog= glog --template '{rev}:{node|short} {desc} branch: {branches}\n'
85 hg verify -q
86
87 echo
88 echo '% Rebase entire branch3 (7-8) onto branch2 (6)'
89 createrepo > /dev/null 2>&1
90 hg --config extensions.hgext.graphlog= glog --template '{rev}:{node|short} {desc} branch: {branches}\n'
91
92 hg --config extensions.hgext.rebase= rebase --detach -s 7 -d 6 2>&1 | sed 's/\(saving bundle to \).*/\1/'
93
94 echo
95 echo '% Branches'
96 hg branches
97
98 echo
99 echo '% Heads'
100 hg heads --template '{rev}:{node|short} {desc} branch: {branches}\n'
101
102 echo
103 hg --config extensions.hgext.graphlog= glog --template '{rev}:{node|short} {desc} branch: {branches}\n'
104 hg verify -q
@@ -0,0 +1,186 b''
1
2 @ 8:c11d5b3e9c00 F branch: branch3
3 |
4 o 7:33c9da881988 Branch3 branch: branch3
5 |
6 | o 6:0e4064ab11a3 E branch: branch2
7 | |
8 | o 5:5ac035cb5d8f D branch: branch2
9 | |
10 | | o 4:8e66061486ee C branch: branch2
11 | | |
12 +---o 3:99567862abbe Branch2 branch: branch2
13 | |
14 | o 2:65a26a4d12f6 B branch: branch1
15 | |
16 | o 1:0f3f3010ee16 Branch1 branch: branch1
17 |/
18 o 0:1994f17a630e A branch:
19
20
21 % Branches
22 branch3 8:c11d5b3e9c00
23 branch2 6:0e4064ab11a3
24 branch1 2:65a26a4d12f6 (inactive)
25 default 0:1994f17a630e (inactive)
26
27 % Heads
28 8:c11d5b3e9c00 F branch: branch3
29 6:0e4064ab11a3 E branch: branch2
30 4:8e66061486ee C branch: branch2
31 2:65a26a4d12f6 B branch: branch1
32 0:1994f17a630e A branch:
33
34 % Rebase part of branch2 (5-6) onto branch3 (8)
35 saving bundle to
36 adding branch
37 adding changesets
38 adding manifests
39 adding file changes
40 added 4 changesets with 3 changes to 3 files (+1 heads)
41 rebase completed
42
43 % Branches
44 branch3 8:c9bfa9beb84e
45 branch2 4:8e66061486ee
46 branch1 2:65a26a4d12f6
47 default 0:1994f17a630e (inactive)
48
49 % Heads
50 8:c9bfa9beb84e E branch: branch3
51 4:8e66061486ee C branch: branch2
52 2:65a26a4d12f6 B branch: branch1
53 0:1994f17a630e A branch:
54
55 @ 8:c9bfa9beb84e E branch: branch3
56 |
57 o 7:bf9037384081 D branch: branch3
58 |
59 o 6:c11d5b3e9c00 F branch: branch3
60 |
61 o 5:33c9da881988 Branch3 branch: branch3
62 |
63 | o 4:8e66061486ee C branch: branch2
64 | |
65 | o 3:99567862abbe Branch2 branch: branch2
66 |/
67 | o 2:65a26a4d12f6 B branch: branch1
68 | |
69 | o 1:0f3f3010ee16 Branch1 branch: branch1
70 |/
71 o 0:1994f17a630e A branch:
72
73
74 % Rebase head of branch3 (8) onto branch2 (6)
75 @ 8:c11d5b3e9c00 F branch: branch3
76 |
77 o 7:33c9da881988 Branch3 branch: branch3
78 |
79 | o 6:0e4064ab11a3 E branch: branch2
80 | |
81 | o 5:5ac035cb5d8f D branch: branch2
82 | |
83 | | o 4:8e66061486ee C branch: branch2
84 | | |
85 +---o 3:99567862abbe Branch2 branch: branch2
86 | |
87 | o 2:65a26a4d12f6 B branch: branch1
88 | |
89 | o 1:0f3f3010ee16 Branch1 branch: branch1
90 |/
91 o 0:1994f17a630e A branch:
92
93 saving bundle to
94 adding branch
95 adding changesets
96 adding manifests
97 adding file changes
98 added 1 changesets with 1 changes to 1 files
99 rebase completed
100
101 % Branches
102 branch2 8:b44d3024f247
103 branch3 7:33c9da881988
104 branch1 2:65a26a4d12f6 (inactive)
105 default 0:1994f17a630e (inactive)
106
107 % Heads
108 8:b44d3024f247 F branch: branch2
109 7:33c9da881988 Branch3 branch: branch3
110 4:8e66061486ee C branch: branch2
111 2:65a26a4d12f6 B branch: branch1
112 0:1994f17a630e A branch:
113
114 @ 8:b44d3024f247 F branch: branch2
115 |
116 | o 7:33c9da881988 Branch3 branch: branch3
117 | |
118 o | 6:0e4064ab11a3 E branch: branch2
119 | |
120 o | 5:5ac035cb5d8f D branch: branch2
121 | |
122 | | o 4:8e66061486ee C branch: branch2
123 | | |
124 | | o 3:99567862abbe Branch2 branch: branch2
125 | |/
126 o | 2:65a26a4d12f6 B branch: branch1
127 | |
128 o | 1:0f3f3010ee16 Branch1 branch: branch1
129 |/
130 o 0:1994f17a630e A branch:
131
132
133 % Rebase entire branch3 (7-8) onto branch2 (6)
134 @ 8:c11d5b3e9c00 F branch: branch3
135 |
136 o 7:33c9da881988 Branch3 branch: branch3
137 |
138 | o 6:0e4064ab11a3 E branch: branch2
139 | |
140 | o 5:5ac035cb5d8f D branch: branch2
141 | |
142 | | o 4:8e66061486ee C branch: branch2
143 | | |
144 +---o 3:99567862abbe Branch2 branch: branch2
145 | |
146 | o 2:65a26a4d12f6 B branch: branch1
147 | |
148 | o 1:0f3f3010ee16 Branch1 branch: branch1
149 |/
150 o 0:1994f17a630e A branch:
151
152 saving bundle to
153 adding branch
154 adding changesets
155 adding manifests
156 adding file changes
157 added 1 changesets with 1 changes to 1 files
158 rebase completed
159
160 % Branches
161 branch2 7:b44d3024f247
162 branch1 2:65a26a4d12f6 (inactive)
163 default 0:1994f17a630e (inactive)
164
165 % Heads
166 7:b44d3024f247 F branch: branch2
167 4:8e66061486ee C branch: branch2
168 2:65a26a4d12f6 B branch: branch1
169 0:1994f17a630e A branch:
170
171 @ 7:b44d3024f247 F branch: branch2
172 |
173 o 6:0e4064ab11a3 E branch: branch2
174 |
175 o 5:5ac035cb5d8f D branch: branch2
176 |
177 | o 4:8e66061486ee C branch: branch2
178 | |
179 | o 3:99567862abbe Branch2 branch: branch2
180 | |
181 o | 2:65a26a4d12f6 B branch: branch1
182 | |
183 o | 1:0f3f3010ee16 Branch1 branch: branch1
184 |/
185 o 0:1994f17a630e A branch:
186
@@ -622,16 +622,19 b' class localrepository(repo.repository):'
622 622 finally:
623 623 release(lock, wlock)
624 624
625 def invalidate(self):
626 for a in "changelog manifest".split():
627 if a in self.__dict__:
628 delattr(self, a)
625 def invalidatecaches(self):
629 626 self._tags = None
630 627 self._tagtypes = None
631 628 self.nodetagscache = None
632 629 self._branchcache = None # in UTF-8
633 630 self._branchcachetip = None
634 631
632 def invalidate(self):
633 for a in "changelog manifest".split():
634 if a in self.__dict__:
635 delattr(self, a)
636 self.invalidatecaches()
637
635 638 def _lock(self, lockname, wait, releasefn, acquirefn, desc):
636 639 try:
637 640 l = lock.lock(lockname, 0, releasefn, desc=desc)
@@ -957,7 +960,7 b' class localrepository(repo.repository):'
957 960 # head, refresh the tag cache, then immediately add a new head.
958 961 # But I think doing it this way is necessary for the "instant
959 962 # tag cache retrieval" case to work.
960 tags_.findglobaltags(self.ui, self, {}, {})
963 self.invalidatecaches()
961 964
962 965 def walk(self, match, node=None):
963 966 '''
General Comments 0
You need to be logged in to leave comments. Login now