Mercurial > hg
comparison mercurial/repair.py @ 32196:a2be2abe9476
strip: move tree strip logic to it's own function
This will allow external extensions to modify tree strip behavior more
precisely.
author | Durham Goode <durham@fb.com> |
---|---|
date | Mon, 08 May 2017 11:35:23 -0700 |
parents | b6d792a9bd11 |
children | 7bcc9a5ab96e |
comparison
equal
deleted
inserted
replaced
32195:9d3136638784 | 32196:a2be2abe9476 |
---|---|
163 offset = len(tr.entries) | 163 offset = len(tr.entries) |
164 | 164 |
165 tr.startgroup() | 165 tr.startgroup() |
166 cl.strip(striprev, tr) | 166 cl.strip(striprev, tr) |
167 mfst.strip(striprev, tr) | 167 mfst.strip(striprev, tr) |
168 if 'treemanifest' in repo.requirements: # safe but unnecessary | 168 striptrees(repo, tr, striprev, files) |
169 # otherwise | 169 |
170 for unencoded, encoded, size in repo.store.datafiles(): | |
171 if (unencoded.startswith('meta/') and | |
172 unencoded.endswith('00manifest.i')): | |
173 dir = unencoded[5:-12] | |
174 repo.manifestlog._revlog.dirlog(dir).strip(striprev, tr) | |
175 for fn in files: | 170 for fn in files: |
176 repo.file(fn).strip(striprev, tr) | 171 repo.file(fn).strip(striprev, tr) |
177 tr.endgroup() | 172 tr.endgroup() |
178 | 173 |
179 for i in xrange(offset, len(tr.entries)): | 174 for i in xrange(offset, len(tr.entries)): |
238 repo.destroyed() | 233 repo.destroyed() |
239 # return the backup file path (or None if 'backup' was False) so | 234 # return the backup file path (or None if 'backup' was False) so |
240 # extensions can use it | 235 # extensions can use it |
241 return backupfile | 236 return backupfile |
242 | 237 |
238 def striptrees(repo, tr, striprev, files): | |
239 if 'treemanifest' in repo.requirements: # safe but unnecessary | |
240 # otherwise | |
241 for unencoded, encoded, size in repo.store.datafiles(): | |
242 if (unencoded.startswith('meta/') and | |
243 unencoded.endswith('00manifest.i')): | |
244 dir = unencoded[5:-12] | |
245 repo.manifestlog._revlog.dirlog(dir).strip(striprev, tr) | |
246 | |
243 def rebuildfncache(ui, repo): | 247 def rebuildfncache(ui, repo): |
244 """Rebuilds the fncache file from repo history. | 248 """Rebuilds the fncache file from repo history. |
245 | 249 |
246 Missing entries will be added. Extra entries will be removed. | 250 Missing entries will be added. Extra entries will be removed. |
247 """ | 251 """ |