git/list[1] front-page[2] threads[3] people[4] search[5] about
 

git ls-files handles paths differently in Windows and Mac (probably Linux)

From
Kirill Likhodedov <kirill.likhodedov@jetbrains.com>
Date
Oct 12, 2010, 12:14 UTC
Message-ID
<3C33A244-2449-4A3C-A8B5-2060CE61EE04@jetbrains.com>
Hi all,
The behavior of ls-files is inconsistent in Windows and Mac.
I want to see which files were changed in the specific directory of my working tree, so I call ls-files:
> git ls-files -douvm --exclude-standard -- MYDIR

On Mac (and probably on Linux) git inspects the content of MYDIR and gives me the status of not-indexed changes in this directory. On Windows git gives the same result (only changes in MYDIR), but it scans the whole repository!

I noticed it because it took a long time to scan a small directory, and then I confirmed it by using monitoring tools: on Windows I used Process Monitor, on Mac I used FileMon - both give the list of accessed files in the real time.

To narrow the search scope to MYDIR I have to add "/**" and thus call:
> git ls-files -douvm --exclude-standard -- MYDIR/**
This works as expected - scans only MYDIR.
But I can't call it with several directories:
> git ls-files -douvm --exclude-standard -- MYDIR/** ANOTHERDIR/**

This doesn't work as expected and scans the whole repo. So to scan two directories I have to call ls-files twice.

Looks like a bug. Maybe a bug of porting Git to windows, but the behavior is the same on msys-git and cygwin-git. It was tested with Git 1.7.1 on Mac, MsysGit 1.7.3.1 and 1.7.0.2, CygwinGit 1.7.0.4.

Thanks.

---------------------------------- Kirill Likhodedov JetBrains, Inc http://www.jetbrains.com "Develop with pleasure!"

Next: Alex Riesen
Message 1 of 13 in “git ls-files handles paths differently in Windows and Mac (probably Linux)”
  1. Kirill LikhodedovOct 12, 2010
  2. Alex RiesenOct 12, 2010
  3. Kirill LikhodedovOct 12, 2010
  4. Kirill LikhodedovOct 12, 2010
  5. Alex RiesenOct 12, 2010
  6. Kirill LikhodedovOct 13, 2010
  7. Alex RiesenOct 13, 2010
  8. Jakub NarebskiOct 13, 2010
  9. Kirill LikhodedovOct 13, 2010
  10. Alex RiesenOct 12, 2010
  11. Johannes SixtOct 12, 2010
  12. Kirill LikhodedovOct 12, 2010
  13. Johannes SixtOct 12, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.