| Index: gclient_scm.py
|
| diff --git a/gclient_scm.py b/gclient_scm.py
|
| index 0a1bbf12deba1d31379ed20726216f5dcfa7725b..c460a76d6cc3b86a593d4806f87c270e53f47f0a 100644
|
| --- a/gclient_scm.py
|
| +++ b/gclient_scm.py
|
| @@ -838,49 +838,22 @@ class SVNWrapper(SCMWrapper):
|
| # Don't reuse the args.
|
| return self.update(options, [], file_list)
|
|
|
| - for file_status in scm.SVN.CaptureStatus(self.checkout_path):
|
| - file_path = os.path.join(self.checkout_path, file_status[1])
|
| - # Temporarily forcibly delete externals to make sure chromium can build
|
| - # without svn:external's.
|
| - #if file_status[0][0] == 'X':
|
| - # # Ignore externals.
|
| - # logging.info('Ignoring external %s' % file_path)
|
| - # continue
|
| -
|
| + def printcb(file_status):
|
| + file_list.append(file_status[1])
|
| if logging.getLogger().isEnabledFor(logging.INFO):
|
| - logging.info('%s%s' % (file[0], file[1]))
|
| + logging.info('%s%s' % (file_status[0], file_status[1]))
|
| else:
|
| - print(file_path)
|
| -
|
| - if file_status[0].isspace():
|
| - logging.error('No idea what is the status of %s.\n'
|
| - 'You just found a bug in gclient, please ping '
|
| - 'maruel@chromium.org ASAP!' % file_path)
|
| - # svn revert is really stupid. It fails on inconsistent line-endings,
|
| - # on switched directories, etc. So take no chance and delete everything!
|
| - try:
|
| - if not os.path.exists(file_path):
|
| - pass
|
| - elif os.path.isfile(file_path) or os.path.islink(file_path):
|
| - logging.info('os.remove(%s)' % file_path)
|
| - os.remove(file_path)
|
| - elif os.path.isdir(file_path):
|
| - logging.info('gclient_utils.RemoveDirectory(%s)' % file_path)
|
| - gclient_utils.RemoveDirectory(file_path)
|
| - else:
|
| - logging.error('no idea what is %s.\nYou just found a bug in gclient'
|
| - ', please ping maruel@chromium.org ASAP!' % file_path)
|
| - except EnvironmentError:
|
| - logging.error('Failed to remove %s.' % file_path)
|
| + print(os.path.join(self.checkout_path, file_status[1]))
|
| + scm.SVN.Revert(self.checkout_path, callback=printcb)
|
|
|
| try:
|
| # svn revert is so broken we don't even use it. Using
|
| # "svn up --revision BASE" achieve the same effect.
|
| + # file_list will contain duplicates.
|
| self._RunAndGetFileList(['update', '--revision', 'BASE'], options,
|
| file_list)
|
| except OSError, e:
|
| - # Maybe the directory disapeared meanwhile. We don't want it to throw an
|
| - # exception.
|
| + # Maybe the directory disapeared meanwhile. Do not throw an exception.
|
| logging.error('Failed to update:\n%s' % str(e))
|
|
|
| def revinfo(self, options, args, file_list):
|
|
|