| OLD | NEW | 
|---|
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be | 
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. | 
| 4 | 4 | 
| 5 # Monkeypatch IMapIterator so that Ctrl-C can kill everything properly. | 5 # Monkeypatch IMapIterator so that Ctrl-C can kill everything properly. | 
| 6 # Derived from https://gist.github.com/aljungberg/626518 | 6 # Derived from https://gist.github.com/aljungberg/626518 | 
| 7 import multiprocessing.pool | 7 import multiprocessing.pool | 
| 8 from multiprocessing.pool import IMapIterator | 8 from multiprocessing.pool import IMapIterator | 
| 9 def wrapper(func): | 9 def wrapper(func): | 
| 10   def wrap(self, timeout=None): | 10   def wrap(self, timeout=None): | 
| (...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 490     * 'HEAD' | 490     * 'HEAD' | 
| 491     * 'origin/master' | 491     * 'origin/master' | 
| 492     * 'cool_branch~2' | 492     * 'cool_branch~2' | 
| 493   """ | 493   """ | 
| 494   try: | 494   try: | 
| 495     return map(binascii.unhexlify, hash_multi(*commitrefs)) | 495     return map(binascii.unhexlify, hash_multi(*commitrefs)) | 
| 496   except subprocess2.CalledProcessError: | 496   except subprocess2.CalledProcessError: | 
| 497     raise BadCommitRefException(commitrefs) | 497     raise BadCommitRefException(commitrefs) | 
| 498 | 498 | 
| 499 | 499 | 
| 500 RebaseRet = collections.namedtuple('RebaseRet', 'success message') | 500 RebaseRet = collections.namedtuple('RebaseRet', 'success stdout stderr') | 
| 501 | 501 | 
| 502 | 502 | 
| 503 def rebase(parent, start, branch, abort=False): | 503 def rebase(parent, start, branch, abort=False): | 
| 504   """Rebases |start|..|branch| onto the branch |parent|. | 504   """Rebases |start|..|branch| onto the branch |parent|. | 
| 505 | 505 | 
| 506   Args: | 506   Args: | 
| 507     parent - The new parent ref for the rebased commits. | 507     parent - The new parent ref for the rebased commits. | 
| 508     start  - The commit to start from | 508     start  - The commit to start from | 
| 509     branch - The branch to rebase | 509     branch - The branch to rebase | 
| 510     abort  - If True, will call git-rebase --abort in the event that the rebase | 510     abort  - If True, will call git-rebase --abort in the event that the rebase | 
| 511              doesn't complete successfully. | 511              doesn't complete successfully. | 
| 512 | 512 | 
| 513   Returns a namedtuple with fields: | 513   Returns a namedtuple with fields: | 
| 514     success - a boolean indicating that the rebase command completed | 514     success - a boolean indicating that the rebase command completed | 
| 515               successfully. | 515               successfully. | 
| 516     message - if the rebase failed, this contains the stdout of the failed | 516     message - if the rebase failed, this contains the stdout of the failed | 
| 517               rebase. | 517               rebase. | 
| 518   """ | 518   """ | 
| 519   try: | 519   try: | 
| 520     args = ['--onto', parent, start, branch] | 520     args = ['--onto', parent, start, branch] | 
| 521     if TEST_MODE: | 521     if TEST_MODE: | 
| 522       args.insert(0, '--committer-date-is-author-date') | 522       args.insert(0, '--committer-date-is-author-date') | 
| 523     run('rebase', *args) | 523     run('rebase', *args) | 
| 524     return RebaseRet(True, '') | 524     return RebaseRet(True, '', '') | 
| 525   except subprocess2.CalledProcessError as cpe: | 525   except subprocess2.CalledProcessError as cpe: | 
| 526     if abort: | 526     if abort: | 
| 527       run('rebase', '--abort') | 527       run('rebase', '--abort') | 
| 528     return RebaseRet(False, cpe.stdout) | 528     return RebaseRet(False, cpe.stdout, cpe.stderr) | 
| 529 | 529 | 
| 530 | 530 | 
| 531 def remove_merge_base(branch): | 531 def remove_merge_base(branch): | 
| 532   del_branch_config(branch, 'base') | 532   del_branch_config(branch, 'base') | 
| 533   del_branch_config(branch, 'base-upstream') | 533   del_branch_config(branch, 'base-upstream') | 
| 534 | 534 | 
| 535 | 535 | 
| 536 def root(): | 536 def root(): | 
| 537   return config('depot-tools.upstream', 'origin/master') | 537   return config('depot-tools.upstream', 'origin/master') | 
| 538 | 538 | 
| (...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 761         hash=branch_hash, upstream=upstream_branch, ahead=ahead, behind=behind) | 761         hash=branch_hash, upstream=upstream_branch, ahead=ahead, behind=behind) | 
| 762 | 762 | 
| 763   # Set None for upstreams which are not branches (e.g empty upstream, remotes | 763   # Set None for upstreams which are not branches (e.g empty upstream, remotes | 
| 764   # and deleted upstream branches). | 764   # and deleted upstream branches). | 
| 765   missing_upstreams = {} | 765   missing_upstreams = {} | 
| 766   for info in info_map.values(): | 766   for info in info_map.values(): | 
| 767     if info.upstream not in info_map and info.upstream not in missing_upstreams: | 767     if info.upstream not in info_map and info.upstream not in missing_upstreams: | 
| 768       missing_upstreams[info.upstream] = None | 768       missing_upstreams[info.upstream] = None | 
| 769 | 769 | 
| 770   return dict(info_map.items() + missing_upstreams.items()) | 770   return dict(info_map.items() + missing_upstreams.items()) | 
| OLD | NEW | 
|---|