Change `intent_to_add_files` from using `git status` to `git diff`
@@ -150,18 +150,10 @@ def get_staged_files(cwd: str | None = None) -> list[str]:
def intent_to_add_files() -> list[str]:
_, stdout, _ = cmd_output(
- 'git', 'status', '--ignore-submodules', '--porcelain', '-z',
+ 'git', 'diff', '--ignore-submodules', '--diff-filter=A',
+ '--name-only', '-z',
)
- parts = list(reversed(zsplit(stdout)))
- intent_to_add = []
- while parts:
- line = parts.pop()
- status, filename = line[:3], line[3:]
- if status[0] in {'C', 'R'}: # renames / moves have an additional arg
- parts.pop()
- if status[1] == 'A':
- intent_to_add.append(filename)
- return intent_to_add
+ return zsplit(stdout)
def get_all_files() -> list[str]:
