Re: Bug: Pathspec parsing on Windows fails when branch specified
Am 20.11.2013 22:09, schrieb Eris Belew:
Show 24 quoted lines
> System: Windows Server 2008 R2
> Git: git version 1.8.4.msysgit.0
> Shell: Powershell V3 (No third-party modules loaded)
>
> Summary:
> When specifying a pathspec including a branch/commit, path separator
> characters are not translated. Since tab-completion in windows shells (ex:
> CMD, PowerShell, not unix-style shells running on windows) uses the windows
> path separator, and other git commands work fine with the windows path
> separator, the expected behavior would be to translate for me.
>
> Reproduction:
> git diff BRANCH:path\to\file path\to\file
>
> Result:
> fatal: Path 'path\to\file' does not exist in 'BRANCH'
>
> Expected:
> Normal diff operation
>
> Workaround:
> Manually convert pathspec. Examples of working command:
> git diff BRANCH:path/to/file path\to\otherfile
> git diff BRANCH:path/to/file path/to/otherfile
That's not a bug, it is expected behavior. "BRANCH:path/to/file" is not "file on disk" syntax, but Git's syntax to reference a particular object in the database. For this reason, forward-slashes are mandated; there is no option to use backslashes in this case.
Backslashes could actually be part of directory and file names in the database. It would be impossible to check out a tree with such names on Windows, obviously.
-- Hannes