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

Side by Side Diff: scm.py

Issue 1595018: Change |scm.GIT.GenerateDiff| and |scm.GIT.GetDifferentFiles| to ignore unmerged upstream changes. (Closed)
Patch Set: Created 10 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2006-2009 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """SCM-specific utility classes.""" 5 """SCM-specific utility classes."""
6 6
7 import glob 7 import glob
8 import os 8 import os
9 import re 9 import re
10 import shutil 10 import shutil
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 227
228 @staticmethod 228 @staticmethod
229 def GenerateDiff(cwd, branch=None, branch_head='HEAD', full_move=False, 229 def GenerateDiff(cwd, branch=None, branch_head='HEAD', full_move=False,
230 files=None): 230 files=None):
231 """Diffs against the upstream branch or optionally another branch. 231 """Diffs against the upstream branch or optionally another branch.
232 232
233 full_move means that move or copy operations should completely recreate the 233 full_move means that move or copy operations should completely recreate the
234 files, usually in the prospect to apply the patch for a try job.""" 234 files, usually in the prospect to apply the patch for a try job."""
235 if not branch: 235 if not branch:
236 branch = GIT.GetUpstream(cwd) 236 branch = GIT.GetUpstream(cwd)
237 command = ['diff-tree', '-p', '--no-prefix', branch, branch_head] 237 command = ['diff', '-p', '--no-prefix', branch + "..." + branch_head]
238 if not full_move: 238 if not full_move:
239 command.append('-C') 239 command.append('-C')
240 # TODO(maruel): --binary support. 240 # TODO(maruel): --binary support.
241 if files: 241 if files:
242 command.append('--') 242 command.append('--')
243 command.extend(files) 243 command.extend(files)
244 diff = GIT.Capture(command, cwd)[0].splitlines(True) 244 diff = GIT.Capture(command, cwd)[0].splitlines(True)
245 for i in range(len(diff)): 245 for i in range(len(diff)):
246 # In the case of added files, replace /dev/null with the path to the 246 # In the case of added files, replace /dev/null with the path to the
247 # file being added. 247 # file being added.
248 if diff[i].startswith('--- /dev/null'): 248 if diff[i].startswith('--- /dev/null'):
249 diff[i] = '--- %s' % diff[i+1][4:] 249 diff[i] = '--- %s' % diff[i+1][4:]
250 return ''.join(diff) 250 return ''.join(diff)
251 251
252 @staticmethod 252 @staticmethod
253 def GetDifferentFiles(cwd, branch=None, branch_head='HEAD'): 253 def GetDifferentFiles(cwd, branch=None, branch_head='HEAD'):
254 """Returns the list of modified files between two branches.""" 254 """Returns the list of modified files between two branches."""
255 if not branch: 255 if not branch:
256 branch = GIT.GetUpstream(cwd) 256 branch = GIT.GetUpstream(cwd)
257 command = ['diff', '--name-only', branch, branch_head] 257 command = ['diff', '--name-only', branch + "..." + branch_head]
258 return GIT.Capture(command, cwd)[0].splitlines(False) 258 return GIT.Capture(command, cwd)[0].splitlines(False)
259 259
260 @staticmethod 260 @staticmethod
261 def GetPatchName(cwd): 261 def GetPatchName(cwd):
262 """Constructs a name for this patch.""" 262 """Constructs a name for this patch."""
263 short_sha = GIT.Capture(['rev-parse', '--short=4', 'HEAD'], cwd)[0].strip() 263 short_sha = GIT.Capture(['rev-parse', '--short=4', 'HEAD'], cwd)[0].strip()
264 return "%s-%s" % (GIT.GetBranch(cwd), short_sha) 264 return "%s-%s" % (GIT.GetBranch(cwd), short_sha)
265 265
266 @staticmethod 266 @staticmethod
267 def GetCheckoutRoot(path): 267 def GetCheckoutRoot(path):
(...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after
756 if not cur_dir_repo_root: 756 if not cur_dir_repo_root:
757 return None 757 return None
758 758
759 while True: 759 while True:
760 parent = os.path.dirname(directory) 760 parent = os.path.dirname(directory)
761 if (SVN.CaptureInfo(parent, print_error=False).get( 761 if (SVN.CaptureInfo(parent, print_error=False).get(
762 "Repository Root") != cur_dir_repo_root): 762 "Repository Root") != cur_dir_repo_root):
763 break 763 break
764 directory = parent 764 directory = parent
765 return GetCasedPath(directory) 765 return GetCasedPath(directory)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698