comparison mercurial/repair.py @ 13362:ee01d9d84115

bookmarks: move strip support to repair
author Matt Mackall <mpm@selenic.com>
date Thu, 10 Feb 2011 13:46:28 -0600
parents 798ef5b19cb1
children ffd370aa050b
comparison
equal deleted inserted replaced
13361:5b4252364ff9 13362:ee01d9d84115
4 # Copyright 2007 Matt Mackall 4 # Copyright 2007 Matt Mackall
5 # 5 #
6 # This software may be used and distributed according to the terms of the 6 # This software may be used and distributed according to the terms of the
7 # GNU General Public License version 2 or any later version. 7 # GNU General Public License version 2 or any later version.
8 8
9 import changegroup 9 import changegroup, bookmarks
10 from node import nullrev, short 10 from node import nullrev, short
11 from i18n import _ 11 from i18n import _
12 import os 12 import os
13 13
14 def _bundle(repo, bases, heads, node, suffix, extranodes=None, compress=True): 14 def _bundle(repo, bases, heads, node, suffix, extranodes=None, compress=True):
103 savebases.append(cl.node(r)) 103 savebases.append(cl.node(r))
104 104
105 saveheads.difference_update(parents) 105 saveheads.difference_update(parents)
106 saveheads.add(r) 106 saveheads.add(r)
107 107
108 bm = repo._bookmarks
109 updatebm = []
110 for m in bm:
111 rev = repo[bm[m]].rev()
112 if rev in tostrip:
113 updatebm.append(m)
114
108 saveheads = [cl.node(r) for r in saveheads] 115 saveheads = [cl.node(r) for r in saveheads]
109 files = _collectfiles(repo, striprev) 116 files = _collectfiles(repo, striprev)
110 117
111 extranodes = _collectextranodes(repo, files, striprev) 118 extranodes = _collectextranodes(repo, files, striprev)
112 119
153 if not repo.ui.verbose: 160 if not repo.ui.verbose:
154 repo.ui.popbuffer() 161 repo.ui.popbuffer()
155 f.close() 162 f.close()
156 if not keeppartialbundle: 163 if not keeppartialbundle:
157 os.unlink(chgrpfile) 164 os.unlink(chgrpfile)
165
166 for m in updatebm:
167 bm[m] = repo['.'].node()
168 bookmarks.write(repo)
169
158 except: 170 except:
159 if backupfile: 171 if backupfile:
160 ui.warn(_("strip failed, full bundle stored in '%s'\n") 172 ui.warn(_("strip failed, full bundle stored in '%s'\n")
161 % backupfile) 173 % backupfile)
162 elif saveheads: 174 elif saveheads: