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

Re: Bug report about symlinks

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 1, 2014, 16:23 UTC
Message-ID
<xmqqppgkw55g.fsf@gitster.dls.corp.google.com>
In-Reply-To
<53DABD69.7010004@web.de>
René Scharfe <l.s.r@web.de> writes:
Show 40 quoted lines
> # Create test repo with two directories with two files each.
> $ git init
> Initialized empty Git repository in /tmp/.git/
> $ mkdir a b
> $ echo x >a/equal
> $ echo x >b/equal
> $ echo y >a/different
> $ echo z >b/different
> $ git add a b
> $ git commit -minitial
> [master (root-commit) 6d36895] initial
>  4 files changed, 4 insertions(+)
>  create mode 100644 a/different
>  create mode 100644 a/equal
>  create mode 100644 b/different
>  create mode 100644 b/equal
>
> # Replace one directory with a symlink to the other.
> $ rm -rf b
> $ ln -s a b
>
> # First git status call.
> $ git status
> On branch master
> Changes not staged for commit:
>   (use "git add/rm <file>..." to update what will be committed)
>   (use "git checkout -- <file>..." to discard changes in working directory)
>
>         deleted:    b/different
>
> Untracked files:
>   (use "git add <file>..." to include in what will be committed)
>
>         b
>
> no changes added to commit (use "git add" and/or "git commit -a")
> ...
>
> It could be debated if the first git status call should also report
> b/equal as deleted.
Hmph.

I wonder if "could be" is an understatement. The difference of reporting between b/equal and b/different may indicate that somebody is mistakenly comparing the index with these paths, without first checking each path with has_symlink_leading_path(), or something, no?

Or am I misreading the report and codepath?
Puzzled...
Previous: René ScharfeNext: René Scharfe
Message 3 of 10 in “Bug report about symlinks”
  1. Nikolay AvdeevJul 31, 2014
  2. René ScharfeJul 31, 2014
  3. Junio C HamanoAug 1, 2014
  4. René ScharfeAug 2, 2014
  5. Junio C HamanoAug 3, 2014
  6. René ScharfeAug 3, 2014
  7. Junio C HamanoAug 4, 2014
  8. read-cache: check for leading symlinks when refreshing indexRené Scharfe, Aug 9, 2014
  9. Duy NguyenAug 4, 2014
  10. Junio C HamanoAug 4, 2014

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.