Mercurial > hg
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: |