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

[BUG] git ls-files -m --with-tree does double output

From
AMAnders Melchiorsen <mail@cup.kalibalik.dk>
Date
Nov 13, 2008, 21:53 UTC
Message-ID
<37512.N1gUGH5fRhE=.1226613228.squirrel@webmail.hotelhot.dk>

Junio, I am resending this one because I am not sure whether you ignored it on purpose, or it got lost during your vacation.

The combination of -m and --with-tree shows duplicate entries:
and@dylle:~$ mkdir repo ; cd repo
and@dylle:~/repo$ git init
Initialized empty Git repository in /home/and/repo/.git/
and@dylle:~/repo$ date >a ; git add a ; git commit -m'Add 1'
Created initial commit c027435: Add 1
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 a
and@dylle:~/repo$ date >a
and@dylle:~/repo$ git ls-files -m --with-tree=HEAD
a
a
Jeff King added:

I have confirmed this, and it looks like it has always been that way. It looks like overlay_tree_on_cache just does a read_tree to pull the tree into the index, and then we end up with duplicate entries.

I'm not too familiar with the read_tree code, so I am cc'ing Junio (who is out of touch for a little while) and Linus, who are much more clueful in this area.

It isn't clear to me which code is _supposed_ to be pulling out such duplicates here. That is, is read_tree broken, or is overlay_tree_on_cache just calling it wrong?

Anders.
Next: Junio C Hamano
Message 1 of 6 in “[BUG] git ls-files -m --with-tree does double output”
  1. Anders MelchiorsenNov 13, 2008
  2. Junio C HamanoNov 13, 2008
  3. Junio C HamanoNov 13, 2008
  4. Anders MelchiorsenNov 13, 2008
  5. Junio C HamanoNov 16, 2008
  6. Anders MelchiorsenNov 16, 2008

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.