| 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 and Gerrit.""" | 8 """A git-command for integrating reviews on Rietveld and Gerrit.""" |
| 9 | 9 |
| 10 from __future__ import print_function | 10 from __future__ import print_function |
| (...skipping 2383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2394 # We assume the remote called "origin" is the one we want. | 2394 # We assume the remote called "origin" is the one we want. |
| 2395 # It is probably not worthwhile to support different workflows. | 2395 # It is probably not worthwhile to support different workflows. |
| 2396 gerrit_remote = 'origin' | 2396 gerrit_remote = 'origin' |
| 2397 | 2397 |
| 2398 remote, remote_branch = self.GetRemoteBranch() | 2398 remote, remote_branch = self.GetRemoteBranch() |
| 2399 branch = GetTargetRef(remote, remote_branch, options.target_branch, | 2399 branch = GetTargetRef(remote, remote_branch, options.target_branch, |
| 2400 pending_prefix='') | 2400 pending_prefix='') |
| 2401 | 2401 |
| 2402 if options.squash: | 2402 if options.squash: |
| 2403 self._GerritCommitMsgHookCheck(offer_removal=not options.force) | 2403 self._GerritCommitMsgHookCheck(offer_removal=not options.force) |
| 2404 if not self.GetIssue(): | |
| 2405 # TODO(tandrii): deperecate this after 2016Q2. Backwards compatibility | |
| 2406 # with shadow branch, which used to contain change-id for a given | |
| 2407 # branch, using which we can fetch actual issue number and set it as the | |
| 2408 # property of the branch, which is the new way. | |
| 2409 message = RunGitSilent([ | |
| 2410 'show', '--format=%B', '-s', | |
| 2411 'refs/heads/git_cl_uploads/%s' % self.GetBranch()]) | |
| 2412 if message: | |
| 2413 change_ids = git_footers.get_footer_change_id(message.strip()) | |
| 2414 if change_ids and len(change_ids) == 1: | |
| 2415 details = self._GetChangeDetail(issue=change_ids[0]) | |
| 2416 if details: | |
| 2417 print('WARNING: found old upload in branch git_cl_uploads/%s ' | |
| 2418 'corresponding to issue %s' % | |
| 2419 (self.GetBranch(), details['_number'])) | |
| 2420 self.SetIssue(details['_number']) | |
| 2421 if not self.GetIssue(): | |
| 2422 DieWithError( | |
| 2423 '\n' # For readability of the blob below. | |
| 2424 'Found old upload in branch git_cl_uploads/%s, ' | |
| 2425 'but failed to find corresponding Gerrit issue.\n' | |
| 2426 'If you know the issue number, set it manually first:\n' | |
| 2427 ' git cl issue 123456\n' | |
| 2428 'If you intended to upload this CL as new issue, ' | |
| 2429 'just delete or rename the old upload branch:\n' | |
| 2430 ' git rename-branch git_cl_uploads/%s old_upload-%s\n' | |
| 2431 'After that, please run git cl upload again.' % | |
| 2432 tuple([self.GetBranch()] * 3)) | |
| 2433 # End of backwards compatability. | |
| 2434 | |
| 2435 if self.GetIssue(): | 2404 if self.GetIssue(): |
| 2436 # Try to get the message from a previous upload. | 2405 # Try to get the message from a previous upload. |
| 2437 message = self.GetDescription() | 2406 message = self.GetDescription() |
| 2438 if not message: | 2407 if not message: |
| 2439 DieWithError( | 2408 DieWithError( |
| 2440 'failed to fetch description from current Gerrit issue %d\n' | 2409 'failed to fetch description from current Gerrit issue %d\n' |
| 2441 '%s' % (self.GetIssue(), self.GetIssueURL())) | 2410 '%s' % (self.GetIssue(), self.GetIssueURL())) |
| 2442 change_id = self._GetChangeDetail()['change_id'] | 2411 change_id = self._GetChangeDetail()['change_id'] |
| 2443 while True: | 2412 while True: |
| 2444 footer_change_ids = git_footers.get_footer_change_id(message) | 2413 footer_change_ids = git_footers.get_footer_change_id(message) |
| (...skipping 2634 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5079 if __name__ == '__main__': | 5048 if __name__ == '__main__': |
| 5080 # These affect sys.stdout so do it outside of main() to simplify mocks in | 5049 # These affect sys.stdout so do it outside of main() to simplify mocks in |
| 5081 # unit testing. | 5050 # unit testing. |
| 5082 fix_encoding.fix_encoding() | 5051 fix_encoding.fix_encoding() |
| 5083 setup_color.init() | 5052 setup_color.init() |
| 5084 try: | 5053 try: |
| 5085 sys.exit(main(sys.argv[1:])) | 5054 sys.exit(main(sys.argv[1:])) |
| 5086 except KeyboardInterrupt: | 5055 except KeyboardInterrupt: |
| 5087 sys.stderr.write('interrupted\n') | 5056 sys.stderr.write('interrupted\n') |
| 5088 sys.exit(1) | 5057 sys.exit(1) |
| OLD | NEW |