mirror of
https://github.com/facebook/sapling.git
synced 2024-10-08 07:49:11 +03:00
strip: move tree strip logic to it's own function
This will allow external extensions to modify tree strip behavior more precisely.
This commit is contained in:
parent
53fada2d33
commit
7f29b67f6b
@ -165,13 +165,8 @@ def strip(ui, repo, nodelist, backup=True, topic='backup'):
|
|||||||
tr.startgroup()
|
tr.startgroup()
|
||||||
cl.strip(striprev, tr)
|
cl.strip(striprev, tr)
|
||||||
mfst.strip(striprev, tr)
|
mfst.strip(striprev, tr)
|
||||||
if 'treemanifest' in repo.requirements: # safe but unnecessary
|
striptrees(repo, tr, striprev, files)
|
||||||
# otherwise
|
|
||||||
for unencoded, encoded, size in repo.store.datafiles():
|
|
||||||
if (unencoded.startswith('meta/') and
|
|
||||||
unencoded.endswith('00manifest.i')):
|
|
||||||
dir = unencoded[5:-12]
|
|
||||||
repo.manifestlog._revlog.dirlog(dir).strip(striprev, tr)
|
|
||||||
for fn in files:
|
for fn in files:
|
||||||
repo.file(fn).strip(striprev, tr)
|
repo.file(fn).strip(striprev, tr)
|
||||||
tr.endgroup()
|
tr.endgroup()
|
||||||
@ -240,6 +235,15 @@ def strip(ui, repo, nodelist, backup=True, topic='backup'):
|
|||||||
# extensions can use it
|
# extensions can use it
|
||||||
return backupfile
|
return backupfile
|
||||||
|
|
||||||
|
def striptrees(repo, tr, striprev, files):
|
||||||
|
if 'treemanifest' in repo.requirements: # safe but unnecessary
|
||||||
|
# otherwise
|
||||||
|
for unencoded, encoded, size in repo.store.datafiles():
|
||||||
|
if (unencoded.startswith('meta/') and
|
||||||
|
unencoded.endswith('00manifest.i')):
|
||||||
|
dir = unencoded[5:-12]
|
||||||
|
repo.manifestlog._revlog.dirlog(dir).strip(striprev, tr)
|
||||||
|
|
||||||
def rebuildfncache(ui, repo):
|
def rebuildfncache(ui, repo):
|
||||||
"""Rebuilds the fncache file from repo history.
|
"""Rebuilds the fncache file from repo history.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user