OLD | NEW |
---|---|
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 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 # Copyright (C) 2008 Evan Martin <martine@danga.com> | 6 # Copyright (C) 2008 Evan Martin <martine@danga.com> |
7 | 7 |
8 """A git-command for integrating reviews on Rietveld.""" | 8 """A git-command for integrating reviews on Rietveld.""" |
9 | 9 |
10 from distutils.version import LooseVersion | 10 from distutils.version import LooseVersion |
(...skipping 3523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3534 stdout = RunCommand(command, cwd=top_dir, env=env) | 3534 stdout = RunCommand(command, cwd=top_dir, env=env) |
3535 if opts.dry_run and stdout: | 3535 if opts.dry_run and stdout: |
3536 return_value = 2 | 3536 return_value = 2 |
3537 except dart_format.NotFoundError as e: | 3537 except dart_format.NotFoundError as e: |
3538 print ('Unable to check dart code formatting. Dart SDK is not in ' + | 3538 print ('Unable to check dart code formatting. Dart SDK is not in ' + |
3539 'this checkout.') | 3539 'this checkout.') |
3540 | 3540 |
3541 return return_value | 3541 return return_value |
3542 | 3542 |
3543 | 3543 |
3544 @subcommand.usage('<codereview url or issue id>') | |
3545 def CMDcheckout(parser, args): | |
3546 """Checks out a branch associated with a given open Rietveld issue.""" | |
Dirk Pranke
2015/09/22 19:23:17
how do you know that the issue is still open? I'd
scottmg
2015/09/22 19:34:22
When you `git cl land`, branch.<branch>.rietveldis
| |
3547 _, args = parser.parse_args(args) | |
3548 | |
3549 if len(args) != 1: | |
3550 parser.print_help() | |
3551 return 1 | |
3552 | |
3553 if re.match(r'\d+', args[0]): | |
3554 target_issue = args[0] | |
3555 elif args[0].startswith('http'): | |
3556 target_issue = re.sub(r'.*/(\d+)/?', r'\1', args[0]) | |
3557 else: | |
3558 parser.print_help() | |
3559 return 1 | |
3560 | |
3561 key_and_issues = [x.split() for x in RunGit( | |
3562 ['config', '--local', '--get-regexp', r'branch\..*\.rietveldissue']) | |
3563 .splitlines()] | |
3564 branches = [] | |
3565 for key, issue in key_and_issues: | |
3566 if issue == target_issue: | |
3567 branches.append(re.sub(r'branch\.(.*)\.rietveldissue', r'\1', key)) | |
3568 | |
3569 if len(branches) == 0: | |
3570 print 'No branch with open issue found for %s.' % target_issue | |
Dirk Pranke
2015/09/22 19:23:17
and reword this message
| |
3571 return 1 | |
3572 if len(branches) == 1: | |
3573 RunGit(['checkout', branches[0]]) | |
3574 else: | |
3575 print 'Multiple branches match issue %s:' % target_issue | |
3576 for i in range(len(branches)): | |
3577 print '%d: %s' % (i, branches[i]) | |
3578 which = raw_input('Choose by index: ') | |
3579 try: | |
3580 RunGit(['checkout', branches[int(which)]]) | |
3581 except (IndexError, ValueError): | |
3582 print 'Invalid selection, not checking out any branch.' | |
3583 return 1 | |
3584 | |
3585 return 0 | |
3586 | |
3587 | |
3544 def CMDlol(parser, args): | 3588 def CMDlol(parser, args): |
3545 # This command is intentionally undocumented. | 3589 # This command is intentionally undocumented. |
3546 print zlib.decompress(base64.b64decode( | 3590 print zlib.decompress(base64.b64decode( |
3547 'eNptkLEOwyAMRHe+wupCIqW57v0Vq84WqWtXyrcXnCBsmgMJ+/SSAxMZgRB6NzE' | 3591 'eNptkLEOwyAMRHe+wupCIqW57v0Vq84WqWtXyrcXnCBsmgMJ+/SSAxMZgRB6NzE' |
3548 'E2ObgCKJooYdu4uAQVffUEoE1sRQLxAcqzd7uK2gmStrll1ucV3uZyaY5sXyDd9' | 3592 'E2ObgCKJooYdu4uAQVffUEoE1sRQLxAcqzd7uK2gmStrll1ucV3uZyaY5sXyDd9' |
3549 'JAnN+lAXsOMJ90GANAi43mq5/VeeacylKVgi8o6F1SC63FxnagHfJUTfUYdCR/W' | 3593 'JAnN+lAXsOMJ90GANAi43mq5/VeeacylKVgi8o6F1SC63FxnagHfJUTfUYdCR/W' |
3550 'Ofe+0dHL7PicpytKP750Fh1q2qnLVof4w8OZWNY')) | 3594 'Ofe+0dHL7PicpytKP750Fh1q2qnLVof4w8OZWNY')) |
3551 return 0 | 3595 return 0 |
3552 | 3596 |
3553 | 3597 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3596 if __name__ == '__main__': | 3640 if __name__ == '__main__': |
3597 # These affect sys.stdout so do it outside of main() to simplify mocks in | 3641 # These affect sys.stdout so do it outside of main() to simplify mocks in |
3598 # unit testing. | 3642 # unit testing. |
3599 fix_encoding.fix_encoding() | 3643 fix_encoding.fix_encoding() |
3600 colorama.init() | 3644 colorama.init() |
3601 try: | 3645 try: |
3602 sys.exit(main(sys.argv[1:])) | 3646 sys.exit(main(sys.argv[1:])) |
3603 except KeyboardInterrupt: | 3647 except KeyboardInterrupt: |
3604 sys.stderr.write('interrupted\n') | 3648 sys.stderr.write('interrupted\n') |
3605 sys.exit(1) | 3649 sys.exit(1) |
OLD | NEW |