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)
 |