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

Side by Side Diff: third_party/upload.py

Issue 6728033: Update upload.py to r690 and include fix for "support for git mv in rietveld" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 9 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 | Annotate | Revision Log
« 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 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # 2 #
3 # Copyright 2007 Google Inc. 3 # Copyright 2007 Google Inc.
4 # 4 #
5 # Licensed under the Apache License, Version 2.0 (the "License"); 5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License. 6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at 7 # You may obtain a copy of the License at
8 # 8 #
9 # http://www.apache.org/licenses/LICENSE-2.0 9 # http://www.apache.org/licenses/LICENSE-2.0
10 # 10 #
(...skipping 1196 matching lines...) Expand 10 before | Expand all | Expand 10 after
1207 if ":" in self.options.revision: 1207 if ":" in self.options.revision:
1208 extra_args = self.options.revision.split(":", 1) + extra_args 1208 extra_args = self.options.revision.split(":", 1) + extra_args
1209 else: 1209 else:
1210 extra_args = [self.options.revision] + extra_args 1210 extra_args = [self.options.revision] + extra_args
1211 1211
1212 # --no-ext-diff is broken in some versions of Git, so try to work around 1212 # --no-ext-diff is broken in some versions of Git, so try to work around
1213 # this by overriding the environment (but there is still a problem if the 1213 # this by overriding the environment (but there is still a problem if the
1214 # git config key "diff.external" is used). 1214 # git config key "diff.external" is used).
1215 env = os.environ.copy() 1215 env = os.environ.copy()
1216 if 'GIT_EXTERNAL_DIFF' in env: del env['GIT_EXTERNAL_DIFF'] 1216 if 'GIT_EXTERNAL_DIFF' in env: del env['GIT_EXTERNAL_DIFF']
1217 return RunShell(["git", "diff", "--no-ext-diff", "--full-index", "-M"] 1217 # -M/-C will not print the diff for the deleted file when a file is renamed.
1218 + extra_args, env=env) 1218 # This is confusing because the original file will not be shown on the
1219 # review when a file is renamed. So first get the diff of all deleted files,
1220 # then the diff of everything except deleted files with rename and copy
1221 # support enabled.
1222 cmd = ["git", "diff", "--no-ext-diff", "--full-index"]
1223 diff = RunShell(cmd + ["--diff-filter=D"] + extra_args, env=env,
1224 silent_ok=True)
1225 diff += RunShell(cmd + ["-C", "--diff-filter=ACMRT"] + extra_args, env=env,
1226 silent_ok=True)
1227 if not diff:
1228 ErrorExit("No output from %s" % (cmd + extra_args))
1229 return diff
1219 1230
1220 def GetUnknownFiles(self): 1231 def GetUnknownFiles(self):
1221 status = RunShell(["git", "ls-files", "--exclude-standard", "--others"], 1232 status = RunShell(["git", "ls-files", "--exclude-standard", "--others"],
1222 silent_ok=True) 1233 silent_ok=True)
1223 return status.splitlines() 1234 return status.splitlines()
1224 1235
1225 def GetFileContent(self, file_hash, is_binary): 1236 def GetFileContent(self, file_hash, is_binary):
1226 """Returns the content of a file identified by its git hash.""" 1237 """Returns the content of a file identified by its git hash."""
1227 data, retcode = RunShellWithReturnCode(["git", "show", file_hash], 1238 data, retcode = RunShellWithReturnCode(["git", "show", file_hash],
1228 universal_newlines=not is_binary) 1239 universal_newlines=not is_binary)
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after
1864 except OSError, (errno, message): 1875 except OSError, (errno, message):
1865 if errno != 2: # ENOENT -- they don't have git installed. 1876 if errno != 2: # ENOENT -- they don't have git installed.
1866 raise 1877 raise
1867 1878
1868 # detect CVS repos use `cvs status && $? == 0` rules 1879 # detect CVS repos use `cvs status && $? == 0` rules
1869 try: 1880 try:
1870 out, returncode = RunShellWithReturnCode(["cvs", "status"]) 1881 out, returncode = RunShellWithReturnCode(["cvs", "status"])
1871 if returncode == 0: 1882 if returncode == 0:
1872 return (VCS_CVS, None) 1883 return (VCS_CVS, None)
1873 except OSError, (errno, message): 1884 except OSError, (errno, message):
1874 if error != 2: 1885 if errno != 2:
1875 raise 1886 raise
1876 1887
1877 return (VCS_UNKNOWN, None) 1888 return (VCS_UNKNOWN, None)
1878 1889
1879 1890
1880 def GuessVCS(options): 1891 def GuessVCS(options):
1881 """Helper to guess the version control system. 1892 """Helper to guess the version control system.
1882 1893
1883 This verifies any user-specified VersionControlSystem (by command line 1894 This verifies any user-specified VersionControlSystem (by command line
1884 or environment variable). If the user didn't specify one, this examines 1895 or environment variable). If the user didn't specify one, this examines
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
2201 try: 2212 try:
2202 RealMain(sys.argv) 2213 RealMain(sys.argv)
2203 except KeyboardInterrupt: 2214 except KeyboardInterrupt:
2204 print 2215 print
2205 StatusUpdate("Interrupted.") 2216 StatusUpdate("Interrupted.")
2206 sys.exit(1) 2217 sys.exit(1)
2207 2218
2208 2219
2209 if __name__ == "__main__": 2220 if __name__ == "__main__":
2210 main() 2221 main()
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