# Bug: Pathspec parsing on Windows fails when branch specified

2 messages from 2013-11-20 to 2013-11-20. Participants: Eris Belew, Johannes Sixt.
Thread: https://gitlist.dev/t/35369

## Eris Belew, 2013-11-20 21:09

Subject: Bug: Pathspec parsing on Windows fails when branch specified
Message-ID: <CAM8h_A_zfX4U8hGxiw3_79zMZXmcTN3CPRUcrtsQTQdD4RaMhQ@mail.gmail.com>
URL: https://gitlist.dev/e/CAM8h_A_zfX4U8hGxiw3_79zMZXmcTN3CPRUcrtsQTQdD4RaMhQ%40mail.gmail.com

```
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


Thanks,

Eris

```

## Johannes Sixt, 2013-11-20 22:12

Subject: Re: Bug: Pathspec parsing on Windows fails when branch specified
Message-ID: <528D33D5.4090507@kdbg.org>
URL: https://gitlist.dev/e/528D33D5.4090507%40kdbg.org
In-Reply-To: <CAM8h_A_zfX4U8hGxiw3_79zMZXmcTN3CPRUcrtsQTQdD4RaMhQ@mail.gmail.com>

```
Am 20.11.2013 22:09, schrieb Eris Belew:
> 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

```
