Show More
@@ -1398,7 +1398,7 b' class localrepository(object):' | |||
|
1398 | 1398 | self._phasecache.write() |
|
1399 | 1399 | |
|
1400 | 1400 | @unfilteredmethod |
|
1401 |
def destroyed(self |
|
|
1401 | def destroyed(self): | |
|
1402 | 1402 | '''Inform the repository that nodes have been destroyed. |
|
1403 | 1403 | Intended for use by strip and rollback, so there's a common |
|
1404 | 1404 | place for anything that has to be done after destroying history. |
@@ -1421,16 +1421,9 b' class localrepository(object):' | |||
|
1421 | 1421 | self._phasecache.filterunknown(self) |
|
1422 | 1422 | self._phasecache.write() |
|
1423 | 1423 | |
|
1424 | # If we have info, newheadnodes, on how to update the branch cache, do | |
|
1425 | # it, Otherwise, since nodes were destroyed, the cache is stale and this | |
|
1426 | # will be caught the next time it is read. | |
|
1427 | if newheadnodes: | |
|
1428 | cl = self.changelog | |
|
1429 | revgen = (cl.rev(node) for node in newheadnodes | |
|
1430 | if cl.hasnode(node)) | |
|
1431 | cache = self._branchcaches[None] | |
|
1432 | cache.update(self, revgen) | |
|
1433 | cache.write(self) | |
|
1424 | # update branchcache information likely invalidated by the strip. | |
|
1425 | # We rely on branchcache collaboration for this call to be fast | |
|
1426 | branchmap.updatecache(self) | |
|
1434 | 1427 | |
|
1435 | 1428 | # Ensure the persistent tag cache is updated. Doing it now |
|
1436 | 1429 | # means that the tag cache only has to worry about destroyed |
@@ -66,17 +66,6 b' def strip(ui, repo, nodelist, backup="al' | |||
|
66 | 66 | striplist = [cl.rev(node) for node in nodelist] |
|
67 | 67 | striprev = min(striplist) |
|
68 | 68 | |
|
69 | # Generate set of branches who will have nodes stripped. | |
|
70 | striprevs = repo.revs("%ld::", striplist) | |
|
71 | stripbranches = set([repo[rev].branch() for rev in striprevs]) | |
|
72 | ||
|
73 | # Set of potential new heads resulting from the strip. The parents of any | |
|
74 | # node removed could be a new head because the node to be removed could have | |
|
75 | # been the only child of the parent. | |
|
76 | newheadrevs = repo.revs("parents(%ld::) - %ld::", striprevs, striprevs) | |
|
77 | newheadnodes = set([cl.node(rev) for rev in newheadrevs]) | |
|
78 | newheadbranches = set([repo[rev].branch() for rev in newheadrevs]) | |
|
79 | ||
|
80 | 69 | keeppartialbundle = backup == 'strip' |
|
81 | 70 | |
|
82 | 71 | # Some revisions with rev > striprev may not be descendants of striprev. |
@@ -191,10 +180,4 b' def strip(ui, repo, nodelist, backup="al' | |||
|
191 | 180 | % chgrpfile) |
|
192 | 181 | raise |
|
193 | 182 | |
|
194 | if len(stripbranches) == 1 and len(newheadbranches) == 1 \ | |
|
195 | and stripbranches == newheadbranches: | |
|
196 | repo.destroyed(newheadnodes) | |
|
197 | else: | |
|
198 | # Multiple branches involved in strip. Will allow branchcache to become | |
|
199 | # invalid and later on rebuilt from scratch | |
|
200 | 183 |
|
@@ -1527,7 +1527,6 b' Branch acl deny test' | |||
|
1527 | 1527 | query 1; heads |
|
1528 | 1528 | searching for changes |
|
1529 | 1529 | all remote heads known locally |
|
1530 | invalid branchheads cache (served): tip differs | |
|
1531 | 1530 | listing keys for "bookmarks" |
|
1532 | 1531 | 4 changesets found |
|
1533 | 1532 | list of changesets: |
@@ -1839,7 +1838,6 b' push foobar into the remote' | |||
|
1839 | 1838 | query 1; heads |
|
1840 | 1839 | searching for changes |
|
1841 | 1840 | all remote heads known locally |
|
1842 | invalid branchheads cache (served): tip differs | |
|
1843 | 1841 | listing keys for "bookmarks" |
|
1844 | 1842 | 4 changesets found |
|
1845 | 1843 | list of changesets: |
@@ -1927,7 +1925,6 b' Branch acl conflicting deny' | |||
|
1927 | 1925 | query 1; heads |
|
1928 | 1926 | searching for changes |
|
1929 | 1927 | all remote heads known locally |
|
1930 | invalid branchheads cache (served): tip differs | |
|
1931 | 1928 | listing keys for "bookmarks" |
|
1932 | 1929 | 4 changesets found |
|
1933 | 1930 | list of changesets: |
@@ -2083,7 +2080,6 b' Non-astro users must be denied' | |||
|
2083 | 2080 | query 1; heads |
|
2084 | 2081 | searching for changes |
|
2085 | 2082 | all remote heads known locally |
|
2086 | invalid branchheads cache (served): tip differs | |
|
2087 | 2083 | listing keys for "bookmarks" |
|
2088 | 2084 | 4 changesets found |
|
2089 | 2085 | list of changesets: |
@@ -507,6 +507,7 b' amend' | |||
|
507 | 507 | $ hg -q commit -d '14 1' -m 'prepare amend' |
|
508 | 508 | |
|
509 | 509 | $ hg --debug commit --amend -d '15 1' -m 'amend without changes' | grep keywords |
|
510 | invalid branchheads cache (served): tip differs | |
|
510 | 511 | overwriting a expanding keywords |
|
511 | 512 | $ hg -q id |
|
512 | 513 | 67d8c481a6be |
@@ -45,7 +45,6 b' test updating a symlink' | |||
|
45 | 45 | popping updatelink |
|
46 | 46 | now at: symlink.patch |
|
47 | 47 | $ hg qpush --debug |
|
48 | invalid branchheads cache (served): tip differs | |
|
49 | 48 | applying updatelink |
|
50 | 49 | patching file a |
|
51 | 50 | a |
@@ -263,9 +263,10 b' Rebase and collapse - E onto H:' | |||
|
263 | 263 | |
|
264 | 264 | |
|
265 | 265 | Test that branchheads cache is updated correctly when doing a strip in which |
|
266 | the parent of the ancestor node to be stripped does not become a head and | |
|
267 |
|
|
|
268 | (node 3). | |
|
266 | the parent of the ancestor node to be stripped does not become a head and also, | |
|
267 | the parent of a node that is a child of the node stripped becomes a head (node | |
|
268 | 3). The code is now much simpler and we could just test a simpler scenario | |
|
269 | We keep it the test this way in case new complexity is injected. | |
|
269 | 270 | |
|
270 | 271 | $ hg clone -q -u . b b2 |
|
271 | 272 | $ cd b2 |
@@ -282,7 +283,7 b' also, the parent of a node that is a chi' | |||
|
282 | 283 | $ hg strip 4 |
|
283 | 284 | saved backup bundle to $TESTTMP/b2/.hg/strip-backup/8a5212ebc852-backup.hg (glob) |
|
284 | 285 | |
|
285 | $ cat $TESTTMP/b2/.hg/cache/branchheads | |
|
286 | $ cat $TESTTMP/b2/.hg/cache/branchheads-served | |
|
286 | 287 | c65502d4178782309ce0574c5ae6ee9485a9bafa 4 |
|
287 | 288 | 2870ad076e541e714f3c2bc32826b5c6a6e5b040 default |
|
288 | 289 | c65502d4178782309ce0574c5ae6ee9485a9bafa default |
General Comments 0
You need to be logged in to leave comments.
Login now