[svn r58211] allow to specify filenames that need to be preserved

--HG--
branch : trunk
This commit is contained in:
pedronis 2008-09-17 22:29:35 +02:00
parent 33b0390ee6
commit fa5d4dfe92
1 changed files with 8 additions and 5 deletions

View File

@ -1,6 +1,6 @@
#! /usr/bin/env python #! /usr/bin/env python
"""\ """\
py.svnwcrevert WCPATH py.svnwcrevert WCPATH [precious...]
Running this script and then 'svn up' puts the working copy WCPATH in a state Running this script and then 'svn up' puts the working copy WCPATH in a state
as clean as a fresh check-out. as clean as a fresh check-out.
@ -14,6 +14,9 @@ or that svn doesn't explicitly know about, including svn:ignored files
The goal of this script is to leave the working copy with some files and The goal of this script is to leave the working copy with some files and
directories possibly missing, but - most importantly - in a state where directories possibly missing, but - most importantly - in a state where
the following 'svn up' won't just crash. the following 'svn up' won't just crash.
Optionally filenames that should be left untouched can be passed as arguments
too.
""" """
import py import py
@ -22,7 +25,7 @@ def kill(p, root):
print '< %s' % (p.relto(root),) print '< %s' % (p.relto(root),)
p.remove(rec=1) p.remove(rec=1)
def svnwcrevert(path, root=None): def svnwcrevert(path, root=None, precious=[]):
if root is None: if root is None:
root = path root = path
wcpath = py.path.svnwc(path) wcpath = py.path.svnwc(path)
@ -32,7 +35,7 @@ def svnwcrevert(path, root=None):
kill(path, root) kill(path, root)
return return
for p in path.listdir(): for p in path.listdir():
if p.basename == '.svn': if p.basename == '.svn' or p.basename in precious:
continue continue
wcp = py.path.svnwc(p) wcp = py.path.svnwc(p)
if wcp not in st.unchanged and wcp not in st.external: if wcp not in st.unchanged and wcp not in st.external:
@ -43,7 +46,7 @@ def svnwcrevert(path, root=None):
def main(): def main():
import sys import sys
if len(sys.argv) != 2: if len(sys.argv) < 2:
print __doc__ print __doc__
sys.exit(2) sys.exit(2)
svnwcrevert(py.path.local(sys.argv[1])) svnwcrevert(py.path.local(sys.argv[1]), precious=sys.argv[1:])