| Index: git_rebase_update.py
|
| diff --git a/git_rebase_update.py b/git_rebase_update.py
|
| index 10c10d151ac41189f9dbe4c95b998388bf7041c7..63d050306a11503333699e85af84390c8289a51b 100755
|
| --- a/git_rebase_update.py
|
| +++ b/git_rebase_update.py
|
| @@ -12,6 +12,7 @@ import collections
|
| import logging
|
| import sys
|
| import textwrap
|
| +import os
|
|
|
| from fnmatch import fnmatch
|
| from pprint import pformat
|
| @@ -20,21 +21,26 @@ import git_common as git
|
|
|
|
|
| STARTING_BRANCH_KEY = 'depot-tools.rebase-update.starting-branch'
|
| +STARTING_WORKDIR_KEY = 'depot-tools.rebase-update.starting-workdir'
|
|
|
|
|
| -def find_return_branch():
|
| - """Finds the branch which we should return to after rebase-update completes.
|
| +def find_return_branch_workdir():
|
| + """Finds the branch and working directory which we should return to after
|
| + rebase-update completes.
|
|
|
| - This value may persist across multiple invocations of rebase-update, if
|
| + These values may persist across multiple invocations of rebase-update, if
|
| rebase-update runs into a conflict mid-way.
|
| """
|
| return_branch = git.config(STARTING_BRANCH_KEY)
|
| + workdir = git.config(STARTING_WORKDIR_KEY)
|
| if not return_branch:
|
| + workdir = os.getcwd()
|
| + git.set_config(STARTING_WORKDIR_KEY, workdir)
|
| return_branch = git.current_branch()
|
| if return_branch != 'HEAD':
|
| git.set_config(STARTING_BRANCH_KEY, return_branch)
|
|
|
| - return return_branch
|
| + return return_branch, workdir
|
|
|
|
|
| def fetch_remotes(branch_tree):
|
| @@ -214,7 +220,8 @@ def main(args=None):
|
| )
|
| return 1
|
|
|
| - return_branch = find_return_branch()
|
| + return_branch, return_workdir = find_return_branch_workdir()
|
| + os.chdir(git.run('rev-parse', '--show-toplevel'))
|
|
|
| if git.current_branch() == 'HEAD':
|
| if git.run('status', '--porcelain'):
|
| @@ -264,7 +271,9 @@ def main(args=None):
|
| % (return_branch, root_branch)
|
| )
|
| git.run('checkout', root_branch)
|
| + os.chdir(return_workdir)
|
| git.set_config(STARTING_BRANCH_KEY, '')
|
| + git.set_config(STARTING_WORKDIR_KEY, '')
|
|
|
| return retcode
|
|
|
|
|