[svn r58190] adding arigo/hacks/svnwcrevert as a py.svnwcrevert script on py lib trunk
--HG-- branch : trunk
This commit is contained in:
		
							parent
							
								
									3f7588948c
								
							
						
					
					
						commit
						33b0390ee6
					
				|  | @ -26,8 +26,8 @@ version = "1.0.0a1" | ||||||
| 
 | 
 | ||||||
| initpkg(__name__, | initpkg(__name__, | ||||||
|     description = "pylib and py.test: agile development and test support library", |     description = "pylib and py.test: agile development and test support library", | ||||||
|     revision = int('$LastChangedRevision: 57754 $'.split(':')[1][:-1]), |     revision = int('$LastChangedRevision: 58190 $'.split(':')[1][:-1]), | ||||||
|     lastchangedate = '$LastChangedDate: 2008-09-02 14:24:15 +0200 (Tue, 02 Sep 2008) $', |     lastchangedate = '$LastChangedDate: 2008-09-17 10:50:04 +0200 (Wed, 17 Sep 2008) $', | ||||||
|     version = version,  |     version = version,  | ||||||
|     url = "http://pylib.org",  |     url = "http://pylib.org",  | ||||||
|     download_url = "http://codespeak.net/py/0.9.2/download.html", |     download_url = "http://codespeak.net/py/0.9.2/download.html", | ||||||
|  | @ -60,6 +60,7 @@ initpkg(__name__, | ||||||
|     'cmdline.pycountloc'     : ('./cmdline/pycountloc.py', 'main',), |     'cmdline.pycountloc'     : ('./cmdline/pycountloc.py', 'main',), | ||||||
|     'cmdline.pycleanup'      : ('./cmdline/pycleanup.py', 'main',), |     'cmdline.pycleanup'      : ('./cmdline/pycleanup.py', 'main',), | ||||||
|     'cmdline.pywhich'        : ('./cmdline/pywhich.py', 'main',), |     'cmdline.pywhich'        : ('./cmdline/pywhich.py', 'main',), | ||||||
|  |     'cmdline.pysvnwcrevert'  : ('./cmdline/pysvnwcrevert.py', 'main',), | ||||||
| 
 | 
 | ||||||
|     # helpers for use from test functions or collectors |     # helpers for use from test functions or collectors | ||||||
|     'test.__doc__'           : ('./test/__init__.py', '__doc__'), |     'test.__doc__'           : ('./test/__init__.py', '__doc__'), | ||||||
|  |  | ||||||
|  | @ -0,0 +1,3 @@ | ||||||
|  | #!/usr/bin/env python | ||||||
|  | from _findpy import py | ||||||
|  | py.cmdline.pysvnwcrevert() | ||||||
|  | @ -0,0 +1,2 @@ | ||||||
|  | @echo off | ||||||
|  | python "%~dp0\..\py.svnwcrevert" %* | ||||||
|  | @ -0,0 +1,49 @@ | ||||||
|  | #! /usr/bin/env python | ||||||
|  | """\ | ||||||
|  | py.svnwcrevert WCPATH | ||||||
|  | 
 | ||||||
|  | Running this script and then 'svn up' puts the working copy WCPATH in a state | ||||||
|  | as clean as a fresh check-out. | ||||||
|  | 
 | ||||||
|  | WARNING: you'll loose all local changes, obviously! | ||||||
|  | 
 | ||||||
|  | This script deletes all files that have been modified | ||||||
|  | or that svn doesn't explicitly know about, including svn:ignored files | ||||||
|  | (like .pyc files, hint hint). | ||||||
|  | 
 | ||||||
|  | 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 | ||||||
|  | the following 'svn up' won't just crash. | ||||||
|  | """ | ||||||
|  | 
 | ||||||
|  | import py | ||||||
|  | 
 | ||||||
|  | def kill(p, root): | ||||||
|  |     print '<    %s' % (p.relto(root),) | ||||||
|  |     p.remove(rec=1) | ||||||
|  | 
 | ||||||
|  | def svnwcrevert(path, root=None): | ||||||
|  |     if root is None: | ||||||
|  |         root = path | ||||||
|  |     wcpath = py.path.svnwc(path) | ||||||
|  |     try: | ||||||
|  |         st = wcpath.status() | ||||||
|  |     except ValueError:   # typically, "bad char in wcpath" | ||||||
|  |         kill(path, root) | ||||||
|  |         return | ||||||
|  |     for p in path.listdir(): | ||||||
|  |         if p.basename == '.svn': | ||||||
|  |             continue | ||||||
|  |         wcp = py.path.svnwc(p) | ||||||
|  |         if wcp not in st.unchanged and wcp not in st.external: | ||||||
|  |             kill(p, root) | ||||||
|  |         elif p.check(dir=1): | ||||||
|  |             svnwcrevert(p, root) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | def main(): | ||||||
|  |     import sys | ||||||
|  |     if len(sys.argv) != 2: | ||||||
|  |         print __doc__ | ||||||
|  |         sys.exit(2) | ||||||
|  |     svnwcrevert(py.path.local(sys.argv[1])) | ||||||
		Loading…
	
		Reference in New Issue