gitpython-developers/GitPython

repo.is_dirty() is not working with a pathspec

apatard opened this issue · 1 comments

Using a pathspec like ':!foo' as argument to repo.is_dirty() will result in :

git.exc.GitCommandError: Cmd('git') failed due to: exit code(128)
  cmdline: git diff --cached --abbrev=40 --full-index --raw :!foo
  stderr: 'fatal: ambiguous argument '!foo': unknown revision or path not in the working tree.

The code should be adding a -- before the path to avoid any ambiguity. For instance, like that:

        if path:
            default_args.append('--')
            default_args.append(path)
Byron commented

Thanks for taking a look and offering up a solution. It looks like the corresponding change would have to be done here, and a PR would be very welcome.

Thank you