Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(213)

Unified Diff: gclient_scm.py

Issue 3338003: Remove scm.SVN.Run() and all stdout argument to more calls. (Closed)
Patch Set: Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | scm.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gclient_scm.py
diff --git a/gclient_scm.py b/gclient_scm.py
index 4f2efc45aaa36238709ff869cc4f6f919fdeb69d..12f1e1d5d50e69ec870155dbeb0bfb33715d2adb 100644
--- a/gclient_scm.py
+++ b/gclient_scm.py
@@ -670,15 +670,14 @@ class SVNWrapper(SCMWrapper):
def cleanup(self, options, args, file_list):
"""Cleanup working copy."""
- scm.SVN.Run(['cleanup'] + args,
- cwd=os.path.join(self._root_dir, self.relpath))
+ self._Run(['cleanup'] + args, options)
def diff(self, options, args, file_list):
# NOTE: This function does not currently modify file_list.
path = os.path.join(self._root_dir, self.relpath)
if not os.path.isdir(path):
raise gclient_utils.Error('Directory %s is not present.' % path)
- scm.SVN.Run(['diff'] + args, cwd=path)
+ self._Run(['diff'] + args, options)
def export(self, options, args, file_list):
"""Export a clean directory tree into the given path."""
@@ -689,8 +688,7 @@ class SVNWrapper(SCMWrapper):
except OSError:
pass
assert os.path.exists(export_path)
- scm.SVN.Run(['export', '--force', '.', export_path],
- cwd=os.path.join(self._root_dir, self.relpath))
+ self._Run(['export', '--force', '.', export_path], options)
def pack(self, options, args, file_list):
"""Generates a patch file which can be applied to the root of the
@@ -745,8 +743,7 @@ class SVNWrapper(SCMWrapper):
# We need to checkout.
command = ['checkout', url, checkout_path]
command = self._AddAdditionalUpdateFlags(command, options, revision)
- scm.SVN.RunAndGetFileList(options.verbose, command, self._root_dir,
- file_list)
+ self._RunAndGetFileList(command, options, file_list, self._root_dir)
return
# Get the existing scm url and the revision number of the current checkout.
@@ -761,7 +758,7 @@ class SVNWrapper(SCMWrapper):
dir_info = scm.SVN.CaptureStatus(os.path.join(checkout_path, '.'))
if [True for d in dir_info if d[0][2] == 'L' and d[1] == checkout_path]:
# The current directory is locked, clean it up.
- scm.SVN.Run(['cleanup'], cwd=checkout_path)
+ self._Run(['cleanup'], options)
# Retrieve the current HEAD version because svn is slow at null updates.
if options.manually_grab_svn_rev and not revision:
@@ -793,7 +790,7 @@ class SVNWrapper(SCMWrapper):
from_info['Repository Root'],
to_info['Repository Root'],
self.relpath]
- scm.SVN.Run(command, cwd=self._root_dir)
+ self._Run(command, options, cwd=self._root_dir)
from_info['URL'] = from_info['URL'].replace(
from_info['Repository Root'],
to_info['Repository Root'])
@@ -812,8 +809,7 @@ class SVNWrapper(SCMWrapper):
# We need to checkout.
command = ['checkout', url, checkout_path]
command = self._AddAdditionalUpdateFlags(command, options, revision)
- scm.SVN.RunAndGetFileList(options.verbose, command, self._root_dir,
- file_list)
+ self._RunAndGetFileList(command, options, file_list, self._root_dir)
return
# If the provided url has a revision number that matches the revision
@@ -825,8 +821,7 @@ class SVNWrapper(SCMWrapper):
command = ['update', checkout_path]
command = self._AddAdditionalUpdateFlags(command, options, revision)
- scm.SVN.RunAndGetFileList(options.verbose, command, self._root_dir,
- file_list)
+ self._RunAndGetFileList(command, options, file_list, self._root_dir)
def updatesingle(self, options, args, file_list):
checkout_path = os.path.join(self._root_dir, self.relpath)
@@ -836,12 +831,11 @@ class SVNWrapper(SCMWrapper):
# Create an empty checkout and then update the one file we want. Future
# operations will only apply to the one file we checked out.
command = ["checkout", "--depth", "empty", self.url, checkout_path]
- scm.SVN.Run(command, cwd=self._root_dir)
+ self._Run(command, options, cwd=self._root_dir)
if os.path.exists(os.path.join(checkout_path, filename)):
os.remove(os.path.join(checkout_path, filename))
command = ["update", filename]
- scm.SVN.RunAndGetFileList(options.verbose, command, checkout_path,
- file_list)
+ self._RunAndGetFileList(command, options, file_list)
# After the initial checkout, we can use update as if it were any other
# dep.
self.update(options, args, file_list)
@@ -856,7 +850,7 @@ class SVNWrapper(SCMWrapper):
os.path.join(checkout_path, filename)]
command = self._AddAdditionalUpdateFlags(command, options,
options.revision)
- scm.SVN.Run(command, cwd=self._root_dir)
+ self._Run(command, options, cwd=self._root_dir)
def revert(self, options, args, file_list):
"""Reverts local modifications. Subversion specific.
@@ -919,9 +913,8 @@ class SVNWrapper(SCMWrapper):
try:
# svn revert is so broken we don't even use it. Using
# "svn up --revision BASE" achieve the same effect.
- scm.SVN.RunAndGetFileList(options.verbose,
- ['update', '--revision', 'BASE'], path,
- file_list)
+ 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.
@@ -937,8 +930,7 @@ class SVNWrapper(SCMWrapper):
def status(self, options, args, file_list):
"""Display status information."""
path = os.path.join(self._root_dir, self.relpath)
- command = ['status']
- command.extend(args)
+ command = ['status'] + args
if not os.path.isdir(path):
# svn status won't work if the directory doesn't exist.
print("\n________ couldn't run \'%s\' in \'%s\':\nThe directory "
@@ -946,12 +938,24 @@ class SVNWrapper(SCMWrapper):
% (' '.join(command), path))
# There's no file list to retrieve.
else:
- scm.SVN.RunAndGetFileList(options.verbose, command, path, file_list)
+ self._RunAndGetFileList(command, options, file_list)
def FullUrlForRelativeUrl(self, url):
# Find the forth '/' and strip from there. A bit hackish.
return '/'.join(self.url.split('/')[:4]) + url
+ def _Run(self, args, options, **kwargs):
+ """Runs a commands that goes to stdout."""
+ kwargs.setdefault('cwd', os.path.join(self._root_dir, self.relpath))
+ gclient_utils.CheckCallAndFilterAndHeader(['svn'] + args,
+ always=options.verbose, stdout=options.stdout, **kwargs)
+
+ def _RunAndGetFileList(self, args, options, file_list, cwd=None):
+ """Runs a commands that goes to stdout and grabs the file listed."""
+ cwd = cwd or os.path.join(self._root_dir, self.relpath)
+ scm.SVN.RunAndGetFileList(options.verbose, args, cwd=cwd,
+ file_list=file_list, stdout=options.stdout)
+
@staticmethod
def _AddAdditionalUpdateFlags(command, options, revision):
"""Add additional flags to command depending on what options are set.
« no previous file with comments | « no previous file | scm.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698