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

Side by Side Diff: scm.py

Issue 329393002: Revert of scm.GIT.IsValidRevision: Only return True if the given object is a commit (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 6 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | tests/scm_unittest.py » ('j') | 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) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 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 cStringIO 7 import cStringIO
8 import glob 8 import glob
9 import logging 9 import logging
10 import os 10 import os
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 # the string and return code 0. So strip one character to force 'git 484 # the string and return code 0. So strip one character to force 'git
485 # rev-parse' to do a hash table look-up and returns 128 if the hash is not 485 # rev-parse' to do a hash table look-up and returns 128 if the hash is not
486 # present. 486 # present.
487 lookup_rev = rev 487 lookup_rev = rev
488 if re.match(r'^[0-9a-fA-F]{40}$', rev): 488 if re.match(r'^[0-9a-fA-F]{40}$', rev):
489 lookup_rev = rev[:-1] 489 lookup_rev = rev[:-1]
490 try: 490 try:
491 sha = GIT.Capture(['rev-parse', lookup_rev], cwd=cwd).lower() 491 sha = GIT.Capture(['rev-parse', lookup_rev], cwd=cwd).lower()
492 if lookup_rev != rev: 492 if lookup_rev != rev:
493 # Make sure we get the original 40 chars back. 493 # Make sure we get the original 40 chars back.
494 if rev.lower() != sha: 494 return rev.lower() == sha
495 return False
496 if sha_only: 495 if sha_only:
497 if not sha.startswith(rev.lower()): 496 return sha.startswith(rev.lower())
498 return False 497 return True
499 except subprocess2.CalledProcessError: 498 except subprocess2.CalledProcessError:
500 return False 499 return False
501 obj_type = GIT.Capture(['cat-file', '-t', rev], cwd=cwd).strip()
502 return obj_type == 'commit'
503 500
504 @classmethod 501 @classmethod
505 def AssertVersion(cls, min_version): 502 def AssertVersion(cls, min_version):
506 """Asserts git's version is at least min_version.""" 503 """Asserts git's version is at least min_version."""
507 if cls.current_version is None: 504 if cls.current_version is None:
508 current_version = cls.Capture(['--version'], '.') 505 current_version = cls.Capture(['--version'], '.')
509 matched = re.search(r'version ([0-9\.]+)', current_version) 506 matched = re.search(r'version ([0-9\.]+)', current_version)
510 cls.current_version = matched.group(1) 507 cls.current_version = matched.group(1)
511 current_version_list = map(only_int, cls.current_version.split('.')) 508 current_version_list = map(only_int, cls.current_version.split('.'))
512 for min_ver in map(int, min_version.split('.')): 509 for min_ver in map(int, min_version.split('.')):
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after
1140 # revert, like for properties. 1137 # revert, like for properties.
1141 if not os.path.isdir(cwd): 1138 if not os.path.isdir(cwd):
1142 # '.' was deleted. It's not worth continuing. 1139 # '.' was deleted. It's not worth continuing.
1143 return 1140 return
1144 try: 1141 try:
1145 SVN.Capture(['revert', file_status[1]], cwd=cwd) 1142 SVN.Capture(['revert', file_status[1]], cwd=cwd)
1146 except subprocess2.CalledProcessError: 1143 except subprocess2.CalledProcessError:
1147 if not os.path.exists(file_path): 1144 if not os.path.exists(file_path):
1148 continue 1145 continue
1149 raise 1146 raise
OLDNEW
« no previous file with comments | « no previous file | tests/scm_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698