You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.0 KiB
Python
79 lines
2.0 KiB
Python
#!/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
|
|
|
|
import breakpad # pylint: disable=W0611
|
|
|
|
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)
|