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

Unified Diff: scm.py

Issue 507070: Add gclient_scm.GitWrapper.pack() (Closed)
Patch Set: Cleaner path join Created 11 years 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 | « gclient_scm.py ('k') | tests/gclient_scm_test.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: scm.py
diff --git a/scm.py b/scm.py
index c06049cd73b060377f76281e16371ab848a28bfb..998f9fb2661cc4b2a932d8aa1c9bfdb51aed1198 100644
--- a/scm.py
+++ b/scm.py
@@ -68,6 +68,38 @@ class GIT(object):
return results
@staticmethod
+ def RunAndFilterOutput(args,
+ in_directory,
+ print_messages,
+ print_stdout,
+ filter):
+ """Runs a command, optionally outputting to stdout.
+
+ stdout is passed line-by-line to the given filter function. If
+ print_stdout is true, it is also printed to sys.stdout as in Run.
+
+ Args:
+ args: A sequence of command line parameters to be passed.
+ in_directory: The directory where svn is to be run.
+ print_messages: Whether to print status messages to stdout about
+ which commands are being run.
+ print_stdout: Whether to forward program's output to stdout.
+ filter: A function taking one argument (a string) which will be
+ passed each line (with the ending newline character removed) of
+ program's output for filtering.
+
+ Raises:
+ gclient_utils.Error: An error occurred while running the command.
+ """
+ command = [GIT.COMMAND]
+ command.extend(args)
+ gclient_utils.SubprocessCallAndFilter(command,
+ in_directory,
+ print_messages,
+ print_stdout,
+ filter=filter)
+
+ @staticmethod
def GetEmail(repo_root):
"""Retrieves the user email address if known."""
# We could want to look at the svn cred when it has a svn remote but it
@@ -333,31 +365,26 @@ class SVN(object):
print_messages,
print_stdout,
filter):
- """Runs svn checkout, update, status, or diff, optionally outputting
- to stdout.
-
- The first item in args must be either "checkout", "update",
- "status", or "diff".
+ """Runs a command, optionally outputting to stdout.
- svn's stdout is passed line-by-line to the given filter function. If
+ stdout is passed line-by-line to the given filter function. If
print_stdout is true, it is also printed to sys.stdout as in Run.
Args:
- args: A sequence of command line parameters to be passed to svn.
+ args: A sequence of command line parameters to be passed.
in_directory: The directory where svn is to be run.
print_messages: Whether to print status messages to stdout about
- which Subversion commands are being run.
- print_stdout: Whether to forward Subversion's output to stdout.
+ which commands are being run.
+ print_stdout: Whether to forward program's output to stdout.
filter: A function taking one argument (a string) which will be
passed each line (with the ending newline character removed) of
- Subversion's output for filtering.
+ program's output for filtering.
Raises:
- Error: An error occurred while running the svn command.
+ gclient_utils.Error: An error occurred while running the command.
"""
command = [SVN.COMMAND]
command.extend(args)
-
gclient_utils.SubprocessCallAndFilter(command,
in_directory,
print_messages,
« no previous file with comments | « gclient_scm.py ('k') | tests/gclient_scm_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698