Fix try-repo for staged untracked changes

This commit is contained in:
DanielChabrowski
2019-03-17 22:09:38 +01:00
parent 71c238d4ec
commit 888787fb2d
3 changed files with 20 additions and 1 deletions

View File

@@ -32,9 +32,15 @@ def _repo_ref(tmpdir, repo, ref):
shadow = os.path.join(tmpdir, 'shadow-repo')
cmd_output('git', 'clone', repo, shadow)
cmd_output('git', 'checkout', ref, '-b', '_pc_tmp', cwd=shadow)
idx = git.git_path('index', repo=shadow)
objs = git.git_path('objects', repo=shadow)
env = dict(os.environ, GIT_INDEX_FILE=idx, GIT_OBJECT_DIRECTORY=objs)
staged_files = git.get_staged_files(cwd=repo)
if (len(staged_files) > 0):
cmd_output('git', 'add', *staged_files, cwd=repo, env=env)
cmd_output('git', 'add', '-u', cwd=repo, env=env)
git.commit(repo=shadow)

View File

@@ -91,11 +91,12 @@ def get_conflicted_files():
return set(merge_conflict_filenames) | set(merge_diff_filenames)
def get_staged_files():
def get_staged_files(cwd=None):
return zsplit(cmd_output(
'git', 'diff', '--staged', '--name-only', '--no-ext-diff', '-z',
# Everything except for D
'--diff-filter=ACMRTUXB',
cwd=cwd,
)[1])