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

Unified Diff: third_party/upload.py

Issue 785433003: Update upload.py in depot_tools to infra.git@3d174a0959ba68a4cd83a5abce9f497e30bfce68 (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@fix_broken
Patch Set: Created 6 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/upload.py
diff --git a/third_party/upload.py b/third_party/upload.py
index 2dde68ee7a8ca146014822037f45d2f291d1e8de..3a72955207154012de6513620196f5666ef6a471 100755
--- a/third_party/upload.py
+++ b/third_party/upload.py
@@ -103,22 +103,18 @@ VCS_CVS = "CVS"
VCS_UNKNOWN = "Unknown"
VCS = [
-{
- 'name': VCS_MERCURIAL,
- 'aliases': ['hg', 'mercurial'],
-}, {
- 'name': VCS_SUBVERSION,
- 'aliases': ['svn', 'subversion'],
-}, {
- 'name': VCS_PERFORCE,
- 'aliases': ['p4', 'perforce'],
-}, {
- 'name': VCS_GIT,
- 'aliases': ['git'],
-}, {
- 'name': VCS_CVS,
- 'aliases': ['cvs'],
-}]
+ {'name': VCS_MERCURIAL,
+ 'aliases': ['hg', 'mercurial']},
+ {'name': VCS_SUBVERSION,
+ 'aliases': ['svn', 'subversion'],},
+ {'name': VCS_PERFORCE,
+ 'aliases': ['p4', 'perforce']},
+ {'name': VCS_GIT,
+ 'aliases': ['git']},
+ {'name': VCS_CVS,
+ 'aliases': ['cvs']},
+ ]
+
VCS_SHORT_NAMES = [] # hg, svn, ...
VCS_ABBREVIATIONS = {} # alias: name, ...
@@ -218,7 +214,7 @@ def StatusUpdate(msg):
def ErrorExit(msg):
"""Print an error message to stderr and exit."""
- print >>sys.stderr, msg
+ print >> sys.stderr, msg
sys.exit(1)
@@ -381,41 +377,41 @@ class AbstractRpcServer(object):
try:
auth_token = self._GetAuthToken(credentials[0], credentials[1])
except ClientLoginError, e:
- print >>sys.stderr, ''
+ print >> sys.stderr, ''
if e.reason == "BadAuthentication":
if e.info == "InvalidSecondFactor":
- print >>sys.stderr, (
+ print >> sys.stderr, (
"Use an application-specific password instead "
"of your regular account password.\n"
"See http://www.google.com/"
"support/accounts/bin/answer.py?answer=185833")
else:
- print >>sys.stderr, "Invalid username or password."
+ print >> sys.stderr, "Invalid username or password."
elif e.reason == "CaptchaRequired":
- print >>sys.stderr, (
+ print >> sys.stderr, (
"Please go to\n"
"https://www.google.com/accounts/DisplayUnlockCaptcha\n"
"and verify you are a human. Then try again.\n"
"If you are using a Google Apps account the URL is:\n"
"https://www.google.com/a/yourdomain.com/UnlockCaptcha")
elif e.reason == "NotVerified":
- print >>sys.stderr, "Account not verified."
+ print >> sys.stderr, "Account not verified."
elif e.reason == "TermsNotAgreed":
- print >>sys.stderr, "User has not agreed to TOS."
+ print >> sys.stderr, "User has not agreed to TOS."
elif e.reason == "AccountDeleted":
- print >>sys.stderr, "The user account has been deleted."
+ print >> sys.stderr, "The user account has been deleted."
elif e.reason == "AccountDisabled":
- print >>sys.stderr, "The user account has been disabled."
+ print >> sys.stderr, "The user account has been disabled."
break
elif e.reason == "ServiceDisabled":
- print >>sys.stderr, ("The user's access to the service has been "
+ print >> sys.stderr, ("The user's access to the service has been "
"disabled.")
elif e.reason == "ServiceUnavailable":
- print >>sys.stderr, "The service is not available; try again later."
+ print >> sys.stderr, "The service is not available; try again later."
else:
# Unknown error.
raise
- print >>sys.stderr, ''
+ print >> sys.stderr, ''
continue
self._GetAuthCookie(auth_token)
return
@@ -462,7 +458,7 @@ class AbstractRpcServer(object):
for header, value in extra_headers.items():
req.add_header(header, value)
try:
- f = self.opener.open(req)
+ f = self.opener.open(req, timeout=70)
response = f.read()
f.close()
return response
@@ -543,37 +539,37 @@ class HttpRpcServer(AbstractRpcServer):
class CondensedHelpFormatter(optparse.IndentedHelpFormatter):
- """Frees more horizontal space by removing indentation from group
- options and collapsing arguments between short and long, e.g.
- '-o ARG, --opt=ARG' to -o --opt ARG"""
-
- def format_heading(self, heading):
- return "%s:\n" % heading
-
- def format_option(self, option):
- self.dedent()
- res = optparse.HelpFormatter.format_option(self, option)
- self.indent()
- return res
-
- def format_option_strings(self, option):
- self.set_long_opt_delimiter(" ")
- optstr = optparse.HelpFormatter.format_option_strings(self, option)
- optlist = optstr.split(", ")
- if len(optlist) > 1:
- if option.takes_value():
- # strip METAVAR from all but the last option
- optlist = [x.split()[0] for x in optlist[:-1]] + optlist[-1:]
- optstr = " ".join(optlist)
- return optstr
+ """Frees more horizontal space by removing indentation from group
+ options and collapsing arguments between short and long, e.g.
+ '-o ARG, --opt=ARG' to -o --opt ARG"""
+
+ def format_heading(self, heading):
+ return "%s:\n" % heading
+
+ def format_option(self, option):
+ self.dedent()
+ res = optparse.HelpFormatter.format_option(self, option)
+ self.indent()
+ return res
+
+ def format_option_strings(self, option):
+ self.set_long_opt_delimiter(" ")
+ optstr = optparse.HelpFormatter.format_option_strings(self, option)
+ optlist = optstr.split(", ")
+ if len(optlist) > 1:
+ if option.takes_value():
+ # strip METAVAR from all but the last option
+ optlist = [x.split()[0] for x in optlist[:-1]] + optlist[-1:]
+ optstr = " ".join(optlist)
+ return optstr
parser = optparse.OptionParser(
- usage=("%prog [options] [-- diff_options] [path...]\n"
- "See also: http://code.google.com/p/rietveld/wiki/UploadPyUsage"),
- add_help_option=False,
- formatter=CondensedHelpFormatter()
-)
+ usage=("%prog [options] [-- diff_options] [path...]\n"
+ "See also: http://code.google.com/p/rietveld/wiki/UploadPyUsage"),
+ add_help_option=False,
+ formatter=CondensedHelpFormatter()
+ )
parser.add_option("-h", "--help", action="store_true",
help="Show this help message and exit.")
parser.add_option("-y", "--assume_yes", action="store_true",
@@ -681,8 +677,11 @@ group.add_option("--emulate_svn_auto_props", action="store_true",
group = parser.add_option_group("Git-specific options")
group.add_option("--git_similarity", action="store", dest="git_similarity",
metavar="SIM", type="int", default=50,
- help=("Set the minimum similarity index for detecting renames "
- "and copies. See `git diff -C`. (default 50)."))
+ help=("Set the minimum similarity percentage for detecting "
+ "renames and copies. See `git diff -C`. (default 50)."))
+group.add_option("--git_only_search_patch", action="store_false", default=True,
+ dest='git_find_copies_harder',
+ help="Removes --find-copies-harder when seaching for copies")
group.add_option("--git_no_find_copies", action="store_false", default=True,
dest="git_find_copies",
help=("Prevents git from looking for copies (default off)."))
@@ -1010,7 +1009,7 @@ use_shell = sys.platform.startswith("win")
def RunShellWithReturnCodeAndStderr(command, print_output=False,
universal_newlines=True,
env=os.environ):
- """Executes a command and returns the output from stdout, stderr and the return code.
+ """Run a command and return output from stdout, stderr and the return code.
Args:
command: Command to execute.
@@ -1041,7 +1040,7 @@ def RunShellWithReturnCodeAndStderr(command, print_output=False,
p.wait()
errout = p.stderr.read()
if print_output and errout:
- print >>sys.stderr, errout
+ print >> sys.stderr, errout
p.stdout.close()
p.stderr.close()
return output, errout, p.returncode
@@ -1049,7 +1048,7 @@ def RunShellWithReturnCodeAndStderr(command, print_output=False,
def RunShellWithReturnCode(command, print_output=False,
universal_newlines=True,
env=os.environ):
- """Executes a command and returns the output from stdout and the return code."""
+ """Run a command and return output from stdout and the return code."""
out, err, retcode = RunShellWithReturnCodeAndStderr(command, print_output,
universal_newlines, env)
return out, retcode
@@ -1224,7 +1223,8 @@ class VersionControlSystem(object):
mimetype = mimetypes.guess_type(filename)[0]
if not mimetype:
return False
- return mimetype.startswith("image/") and not mimetype.startswith("image/svg")
+ return (mimetype.startswith("image/") and
+ not mimetype.startswith("image/svg"))
def IsBinaryData(self, data):
"""Returns true if data contains a null byte."""
@@ -1270,21 +1270,21 @@ class SubversionVCS(VersionControlSystem):
"""
url = self._GetInfo("URL")
if url:
- scheme, netloc, path, params, query, fragment = urlparse.urlparse(url)
- guess = ""
- # TODO(anatoli) - repository specific hacks should be handled by server
- if netloc == "svn.python.org" and scheme == "svn+ssh":
- path = "projects" + path
- scheme = "http"
- guess = "Python "
- elif netloc.endswith(".googlecode.com"):
- scheme = "http"
- guess = "Google Code "
- path = path + "/"
- base = urlparse.urlunparse((scheme, netloc, path, params,
- query, fragment))
- LOGGER.info("Guessed %sbase = %s", guess, base)
- return base
+ scheme, netloc, path, params, query, fragment = urlparse.urlparse(url)
+ guess = ""
+ # TODO(anatoli) - repository specific hacks should be handled by server
+ if netloc == "svn.python.org" and scheme == "svn+ssh":
+ path = "projects" + path
+ scheme = "http"
+ guess = "Python "
+ elif netloc.endswith(".googlecode.com"):
+ scheme = "http"
+ guess = "Google Code "
+ path = path + "/"
+ base = urlparse.urlunparse((scheme, netloc, path, params,
+ query, fragment))
+ LOGGER.info("Guessed %sbase = %s", guess, base)
+ return base
if required:
ErrorExit("Can't find URL in output from svn info")
return None
@@ -1339,9 +1339,10 @@ class SubversionVCS(VersionControlSystem):
}
def repl(m):
- if m.group(2):
- return "$%s::%s$" % (m.group(1), " " * len(m.group(3)))
- return "$%s$" % m.group(1)
+ if m.group(2):
+ return "$%s::%s$" % (m.group(1), " " * len(m.group(3)))
+ return "$%s$" % m.group(1)
+
keywords = [keyword
for name in keyword_str.split(" ")
for keyword in svn_keywords.get(name, [])]
@@ -1394,7 +1395,8 @@ class SubversionVCS(VersionControlSystem):
if returncode:
# Directory might not yet exist at start revison
# svn: Unable to find repository location for 'abc' in revision nnn
- if re.match('^svn: Unable to find repository location for .+ in revision \d+', err):
+ if re.match('^svn: Unable to find repository location '
+ 'for .+ in revision \d+', err):
old_files = ()
else:
ErrorExit("Failed to get status for %s:\n%s" % (filename, err))
@@ -1616,16 +1618,18 @@ class GitVCS(VersionControlSystem):
# append a diff (with rename detection), without deletes.
cmd = [
"git", "diff", "--no-color", "--no-ext-diff", "--full-index",
- "--ignore-submodules",
+ "--ignore-submodules", "--src-prefix=a/", "--dst-prefix=b/",
]
diff = RunShell(
cmd + ["--no-renames", "--diff-filter=D"] + extra_args,
env=env, silent_ok=True)
+ assert 0 <= self.options.git_similarity <= 100
if self.options.git_find_copies:
- similarity_options = ["--find-copies-harder", "-l100000",
- "-C%s" % self.options.git_similarity ]
+ similarity_options = ["-l100000", "-C%d%%" % self.options.git_similarity]
+ if self.options.git_find_copies_harder:
+ similarity_options.append("--find-copies-harder")
else:
- similarity_options = ["-M%s" % self.options.git_similarity ]
+ similarity_options = ["-M%d%%" % self.options.git_similarity ]
diff += RunShell(
cmd + ["--diff-filter=AMCRT"] + similarity_options + extra_args,
env=env, silent_ok=True)
@@ -2086,7 +2090,7 @@ class PerforceVCS(VersionControlSystem):
line_count = len(diffData.file_body.splitlines())
diffData.change_summary = "@@ -0,0 +1"
if line_count > 1:
- diffData.change_summary += ",%d" % line_count
+ diffData.change_summary += ",%d" % line_count
diffData.change_summary += " @@"
diffData.prefix = "+"
return diffData
« 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