| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 # Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """Wrapper script around Rietveld's upload.py that groups files into | 6 """Wrapper script around Rietveld's upload.py that groups files into |
| 7 changelists.""" | 7 changelists.""" |
| 8 | 8 |
| 9 import getpass | 9 import getpass |
| 10 import os | 10 import os |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 | 51 |
| 52 # Filename where we store repository specific information for gcl. | 52 # Filename where we store repository specific information for gcl. |
| 53 CODEREVIEW_SETTINGS_FILE = "codereview.settings" | 53 CODEREVIEW_SETTINGS_FILE = "codereview.settings" |
| 54 | 54 |
| 55 # Warning message when the change appears to be missing tests. | 55 # Warning message when the change appears to be missing tests. |
| 56 MISSING_TEST_MSG = "Change contains new or modified methods, but no new tests!" | 56 MISSING_TEST_MSG = "Change contains new or modified methods, but no new tests!" |
| 57 | 57 |
| 58 # Global cache of files cached in GetCacheDir(). | 58 # Global cache of files cached in GetCacheDir(). |
| 59 FILES_CACHE = {} | 59 FILES_CACHE = {} |
| 60 | 60 |
| 61 def CheckHomeForFile(filename): |
| 62 """Checks the users home dir for the existence of the given file. Returns |
| 63 the path to the file if it's there, or None if it is not. |
| 64 """ |
| 65 home_vars = ['HOME'] |
| 66 if sys.platform in ('cygwin', 'win32'): |
| 67 home_vars.append('USERPROFILE') |
| 68 for home_var in home_vars: |
| 69 home = os.getenv(home_var) |
| 70 if home != None: |
| 71 full_path = os.path.join(home, filename) |
| 72 if os.path.exists(full_path): |
| 73 return full_path |
| 74 return None |
| 61 | 75 |
| 62 def UnknownFiles(extra_args): | 76 def UnknownFiles(extra_args): |
| 63 """Runs svn status and returns unknown files. | 77 """Runs svn status and returns unknown files. |
| 64 | 78 |
| 65 Any args in |extra_args| are passed to the tool to support giving alternate | 79 Any args in |extra_args| are passed to the tool to support giving alternate |
| 66 code locations. | 80 code locations. |
| 67 """ | 81 """ |
| 68 return [item[1] for item in SVN.CaptureStatus(extra_args) | 82 return [item[1] for item in SVN.CaptureStatus(extra_args) |
| 69 if item[0][0] == '?'] | 83 if item[0][0] == '?'] |
| 70 | 84 |
| (...skipping 546 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 617 Basic commands: | 631 Basic commands: |
| 618 ----------------------------------------- | 632 ----------------------------------------- |
| 619 gcl change change_name | 633 gcl change change_name |
| 620 Add/remove files to a changelist. Only scans the current directory and | 634 Add/remove files to a changelist. Only scans the current directory and |
| 621 subdirectories. | 635 subdirectories. |
| 622 | 636 |
| 623 gcl upload change_name [-r reviewer1@gmail.com,reviewer2@gmail.com,...] | 637 gcl upload change_name [-r reviewer1@gmail.com,reviewer2@gmail.com,...] |
| 624 [--send_mail] [--no_try] [--no_presubmit] | 638 [--send_mail] [--no_try] [--no_presubmit] |
| 625 [--no_watchlists] | 639 [--no_watchlists] |
| 626 Uploads the changelist to the server for review. | 640 Uploads the changelist to the server for review. |
| 641 (You can create the file '.gcl_upload_no_try' in your home dir to |
| 642 skip the automatic tries.) |
| 627 | 643 |
| 628 gcl commit change_name [--no_presubmit] | 644 gcl commit change_name [--no_presubmit] |
| 629 Commits the changelist to the repository. | 645 Commits the changelist to the repository. |
| 630 | 646 |
| 631 gcl lint change_name | 647 gcl lint change_name |
| 632 Check all the files in the changelist for possible style violations. | 648 Check all the files in the changelist for possible style violations. |
| 633 | 649 |
| 634 Advanced commands: | 650 Advanced commands: |
| 635 ----------------------------------------- | 651 ----------------------------------------- |
| 636 gcl delete change_name | 652 gcl delete change_name |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 699 return True | 715 return True |
| 700 return DoPresubmitChecks(change_info, committing, True) | 716 return DoPresubmitChecks(change_info, committing, True) |
| 701 | 717 |
| 702 | 718 |
| 703 def UploadCL(change_info, args): | 719 def UploadCL(change_info, args): |
| 704 if not change_info.GetFiles(): | 720 if not change_info.GetFiles(): |
| 705 print "Nothing to upload, changelist is empty." | 721 print "Nothing to upload, changelist is empty." |
| 706 return | 722 return |
| 707 if not OptionallyDoPresubmitChecks(change_info, False, args): | 723 if not OptionallyDoPresubmitChecks(change_info, False, args): |
| 708 return | 724 return |
| 709 no_try = FilterFlag(args, "--no_try") or FilterFlag(args, "--no-try") | 725 no_try = FilterFlag(args, "--no_try") or \ |
| 726 FilterFlag(args, "--no-try") or \ |
| 727 not (CheckHomeForFile(".gcl_upload_no_try") is None) |
| 710 no_watchlists = FilterFlag(args, "--no_watchlists") or \ | 728 no_watchlists = FilterFlag(args, "--no_watchlists") or \ |
| 711 FilterFlag(args, "--no-watchlists") | 729 FilterFlag(args, "--no-watchlists") |
| 712 | 730 |
| 713 # Map --send-mail to --send_mail | 731 # Map --send-mail to --send_mail |
| 714 if FilterFlag(args, "--send-mail"): | 732 if FilterFlag(args, "--send-mail"): |
| 715 args.append("--send_mail") | 733 args.append("--send_mail") |
| 716 | 734 |
| 717 # Supports --clobber for the try server. | 735 # Supports --clobber for the try server. |
| 718 clobber = FilterFlag(args, "--clobber") | 736 clobber = FilterFlag(args, "--clobber") |
| 719 | 737 |
| (...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1208 return 0 | 1226 return 0 |
| 1209 args =["svn", command] | 1227 args =["svn", command] |
| 1210 root = GetRepositoryRoot() | 1228 root = GetRepositoryRoot() |
| 1211 args.extend([os.path.join(root, x) for x in change_info.GetFileNames()]) | 1229 args.extend([os.path.join(root, x) for x in change_info.GetFileNames()]) |
| 1212 RunShell(args, True) | 1230 RunShell(args, True) |
| 1213 return 0 | 1231 return 0 |
| 1214 | 1232 |
| 1215 | 1233 |
| 1216 if __name__ == "__main__": | 1234 if __name__ == "__main__": |
| 1217 sys.exit(main()) | 1235 sys.exit(main()) |
| OLD | NEW |