| #!/usr/bin/python |
| # Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| """Wrapper for trychange.py for git checkout.""" |
| |
| import logging |
| import sys |
| |
| from scm import GIT |
| import subprocess2 |
| import third_party.upload |
| import trychange |
| import git_cl |
| |
| |
| def GetRietveldIssueNumber(): |
| try: |
| return GIT.Capture( |
| ['config', 'branch.%s.rietveldissue' % GIT.GetBranch('.')], |
| '.').strip() |
| except subprocess2.CalledProcessError: |
| return None |
| |
| |
| def GetRietveldPatchsetNumber(): |
| try: |
| return GIT.Capture( |
| ['config', 'branch.%s.rietveldpatchset' % GIT.GetBranch('.')], |
| '.').strip() |
| except subprocess2.CalledProcessError: |
| return None |
| |
| |
| def GetRietveldServerUrl(): |
| try: |
| return GIT.Capture(['config', 'rietveld.server'], '.').strip() |
| except subprocess2.CalledProcessError: |
| return None |
| |
| |
| def main(args): |
| patchset = GetRietveldPatchsetNumber() |
| if patchset: |
| args.extend([ |
| '--issue', GetRietveldIssueNumber(), |
| '--patchset', patchset, |
| ]) |
| else: |
| rietveld_url = GetRietveldServerUrl() |
| if rietveld_url: |
| args.extend(['--rietveld_url', GetRietveldServerUrl()]) |
| try: |
| cl = git_cl.Changelist() |
| change = cl.GetChange(cl.GetUpstreamBranch(), None) |
| # Hack around a limitation in logging. |
| logging.getLogger().handlers = [] |
| sys.exit(trychange.TryChange( |
| args, change, swallow_exception=False, |
| prog='git try', |
| extra_epilog='\n' |
| 'git try will diff against your tracked branch and will ' |
| 'detect your rietveld\n' |
| 'code review if you are using git-cl\n')) |
| except third_party.upload.ClientLoginError, e: |
| print('Got an exception while trying to log in to Rietveld.') |
| print(str(e)) |
| return 0 |
| |
| |
| if __name__ == '__main__': |
| try: |
| sys.exit(main(sys.argv[1:])) |
| except KeyboardInterrupt: |
| sys.stderr.write('interrupted\n') |
| sys.exit(1) |