| Index: gclient_scm.py
|
| diff --git a/gclient_scm.py b/gclient_scm.py
|
| index acb31ef15b1d00fdddc381cd1183ed468705a362..c9af57ce5e7ec624344f7a5dd71c676a4511293a 100644
|
| --- a/gclient_scm.py
|
| +++ b/gclient_scm.py
|
| @@ -190,6 +190,7 @@ class GitFilter(object):
|
|
|
| class GitWrapper(SCMWrapper):
|
| """Wrapper for Git"""
|
| + name = 'git'
|
|
|
| cache_dir = None
|
| # If a given cache is used in a solution more than once, prevent multiple
|
| @@ -363,13 +364,13 @@ class GitWrapper(SCMWrapper):
|
| # Make the output a little prettier. It's nice to have some whitespace
|
| # between projects when cloning.
|
| print('')
|
| - return
|
| + return self._Capture(['rev-parse', '--verify', 'HEAD'])
|
|
|
| if not managed:
|
| self._UpdateBranchHeads(options, fetch=False)
|
| self.UpdateSubmoduleConfig()
|
| print ('________ unmanaged solution; skipping %s' % self.relpath)
|
| - return
|
| + return self._Capture(['rev-parse', '--verify', 'HEAD'])
|
|
|
| if not os.path.exists(os.path.join(self.checkout_path, '.git')):
|
| raise gclient_utils.Error('\n____ %s%s\n'
|
| @@ -406,7 +407,7 @@ class GitWrapper(SCMWrapper):
|
| self._PossiblySwitchCache(url, options)
|
|
|
| if return_early:
|
| - return
|
| + return self._Capture(['rev-parse', '--verify', 'HEAD'])
|
|
|
| cur_branch = self._GetCurrentBranch()
|
|
|
| @@ -595,6 +596,8 @@ class GitWrapper(SCMWrapper):
|
| print('\n_____ removing unversioned directory %s' % path)
|
| gclient_utils.rmtree(full_path)
|
|
|
| + return self._Capture(['rev-parse', '--verify', 'HEAD'])
|
| +
|
|
|
| def revert(self, options, _args, file_list):
|
| """Reverts local modifications.
|
| @@ -1088,6 +1091,7 @@ class GitWrapper(SCMWrapper):
|
|
|
| class SVNWrapper(SCMWrapper):
|
| """ Wrapper for SVN """
|
| + name = 'svn'
|
|
|
| @staticmethod
|
| def BinaryExists():
|
| @@ -1202,11 +1206,11 @@ class SVNWrapper(SCMWrapper):
|
| command = ['checkout', url, self.checkout_path]
|
| command = self._AddAdditionalUpdateFlags(command, options, revision)
|
| self._RunAndGetFileList(command, options, file_list, self._root_dir)
|
| - return
|
| + return self.Svnversion()
|
|
|
| if not managed:
|
| print ('________ unmanaged solution; skipping %s' % self.relpath)
|
| - return
|
| + return self.Svnversion()
|
|
|
| if 'URL' not in from_info:
|
| raise gclient_utils.Error(
|
| @@ -1294,7 +1298,7 @@ class SVNWrapper(SCMWrapper):
|
| command = ['checkout', url, self.checkout_path]
|
| command = self._AddAdditionalUpdateFlags(command, options, revision)
|
| self._RunAndGetFileList(command, options, file_list, self._root_dir)
|
| - return
|
| + return self.Svnversion()
|
|
|
| # If the provided url has a revision number that matches the revision
|
| # number of the existing directory, then we don't need to bother updating.
|
| @@ -1316,6 +1320,7 @@ class SVNWrapper(SCMWrapper):
|
| and not os.path.islink(full_path)):
|
| print('\n_____ removing unversioned directory %s' % status[1])
|
| gclient_utils.rmtree(full_path)
|
| + return self.Svnversion()
|
|
|
| def updatesingle(self, options, args, file_list):
|
| filename = args.pop()
|
| @@ -1442,6 +1447,11 @@ class SVNWrapper(SCMWrapper):
|
| gclient_utils.CheckCallAndFilterAndHeader(['svn'] + args,
|
| always=options.verbose, **kwargs)
|
|
|
| + def Svnversion(self):
|
| + """Runs the lowest checked out revision in the current project."""
|
| + info = scm.SVN.CaptureLocalInfo([], os.path.join(self.checkout_path, '.'))
|
| + return info['Revision']
|
| +
|
| def _RunAndGetFileList(self, args, options, file_list, cwd=None):
|
| """Runs a commands that goes to stdout and grabs the file listed."""
|
| cwd = cwd or self.checkout_path
|
|
|