@ -86,16 +86,7 @@ def determine_scm(root):
return None
def only_int ( val ) :
if val . isdigit ( ) :
return int ( val )
else :
return 0
class GIT ( object ) :
current_version = None
@staticmethod
def Capture ( args , * * kwargs ) :
return subprocess2 . check_output (
@ -379,19 +370,23 @@ class GIT(object):
root = GIT . Capture ( [ ' rev-parse ' , ' --show-cdup ' ] , cwd = cwd ) . strip ( )
return os . path . abspath ( os . path . join ( cwd , root ) )
@ class method
def AssertVersion ( cls , min_version ) :
@ stati cmethod
def AssertVersion ( min_version ) :
""" Asserts git ' s version is at least min_version. """
if cls . current_version is None :
cls . current_version = cls . Capture ( [ ' --version ' ] ) . split ( ) [ - 1 ]
current_version_list = map ( only_int , cls . current_version . split ( ' . ' ) )
def only_int ( val ) :
if val . isdigit ( ) :
return int ( val )
else :
return 0
current_version = GIT . Capture ( [ ' --version ' ] ) . split ( ) [ - 1 ]
current_version_list = map ( only_int , current_version . split ( ' . ' ) )
for min_ver in map ( int , min_version . split ( ' . ' ) ) :
ver = current_version_list . pop ( 0 )
if ver < min_ver :
return ( False , cls . current_version )
return ( False , current_version )
elif ver > min_ver :
return ( True , cls . current_version )
return ( True , cls . current_version )
return ( True , current_version )
return ( True , current_version )
class SVN ( object ) :
@ -928,19 +923,24 @@ class SVN(object):
directory = parent
return GetCasedPath ( directory )
@ class method
def AssertVersion ( cls , min_version ) :
@ stati cmethod
def AssertVersion ( min_version ) :
""" Asserts svn ' s version is at least min_version. """
if cls . current_version is None :
cls . current_version = cls . Capture ( [ ' --version ' ] ) . split ( ) [ 2 ]
current_version_list = map ( only_int , cls . current_version . split ( ' . ' ) )
def only_int ( val ) :
if val . isdigit ( ) :
return int ( val )
else :
return 0
if not SVN . current_version :
SVN . current_version = SVN . Capture ( [ ' --version ' ] ) . split ( ) [ 2 ]
current_version_list = map ( only_int , SVN . current_version . split ( ' . ' ) )
for min_ver in map ( int , min_version . split ( ' . ' ) ) :
ver = current_version_list . pop ( 0 )
if ver < min_ver :
return ( False , cls . current_version )
return ( False , SVN . current_version )
elif ver > min_ver :
return ( True , cls . current_version )
return ( True , cls . current_version )
return ( True , SVN . current_version )
return ( True , SVN . current_version )
@staticmethod
def Revert ( repo_root , callback = None , ignore_externals = False ) :