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

Unified Diff: gclient_scm.py

Issue 10317002: Make gclient pack work again by not prefixing "thread_id>" (Closed) Base URL: http://src.chromium.org/svn/trunk/tools/depot_tools/
Patch Set: Created 8 years, 8 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 | « gclient.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gclient_scm.py
===================================================================
--- gclient_scm.py (revision 135306)
+++ gclient_scm.py (working copy)
@@ -16,11 +16,11 @@
import subprocess2
-class DiffFilterer(object):
- """Simple class which tracks which file is being diffed and
+class DiffFiltererWrapper(object):
+ """Simple base class which tracks which file is being diffed and
replaces instances of its file name in the original and
working copy lines of the svn/git diff output."""
- index_string = "Index: "
+ index_string = None
original_prefix = "--- "
working_prefix = "+++ "
@@ -28,15 +28,15 @@
# Note that we always use '/' as the path separator to be
# consistent with svn's cygwin-style output on Windows
self._relpath = relpath.replace("\\", "/")
- self._current_file = ""
- self._replacement_file = ""
+ self._current_file = None
def SetCurrentFile(self, current_file):
self._current_file = current_file
- # Note that we always use '/' as the path separator to be
- # consistent with svn's cygwin-style output on Windows
- self._replacement_file = posixpath.join(self._relpath, current_file)
+ @property
+ def _replacement_file(self):
+ return posixpath.join(self._relpath, self._current_file)
+
def _Replace(self, line):
return line.replace(self._current_file, self._replacement_file)
@@ -51,6 +51,21 @@
print(line)
+class SvnDiffFilterer(DiffFiltererWrapper):
+ index_string = "Index: "
+
+
+class GitDiffFilterer(DiffFiltererWrapper):
+ index_string = "diff --git "
+
+ def SetCurrentFile(self, current_file):
+ # Get filename by parsing "a/<filename> b/<filename>"
+ self._current_file = current_file[:(len(current_file)/2)][2:]
+
+ def _Replace(self, line):
+ return re.sub("[a|b]/" + self._current_file, self._replacement_file, line)
+
+
def ask_for_data(prompt):
try:
return raw_input(prompt)
@@ -177,7 +192,7 @@
gclient_utils.CheckCallAndFilter(
['git', 'diff', merge_base],
cwd=self.checkout_path,
- filter_fn=DiffFilterer(self.relpath).Filter)
+ filter_fn=GitDiffFilterer(self.relpath).Filter)
def update(self, options, args, file_list):
"""Runs git to update or transparently checkout the working copy.
@@ -830,7 +845,7 @@
['svn', 'diff', '-x', '--ignore-eol-style'] + args,
cwd=self.checkout_path,
print_stdout=False,
- filter_fn=DiffFilterer(self.relpath).Filter)
+ filter_fn=SvnDiffFilterer(self.relpath).Filter)
def update(self, options, args, file_list):
"""Runs svn to update or transparently checkout the working copy.
« no previous file with comments | « gclient.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698