threads / discuss / 5065

git-ls-files prefix superset problem

Subject: git-ls-files prefix superset problem

## tl;dr

3 messages between Aug 1, 2006 and Aug 1, 2006.

replies: 2people: 2as markdown or json

David Miller· Aug 1, 2006, 05:13 UTC · lore

I had been previously using git-1.1.3 on my local repositories and I upgraded to the current git head:

b63fafdfd844c2037fba53b9944431c1378b4135

git commit stopped working, specifically it dies on git-ls-files:

davem@sunset:~/src/GIT/net-2.6$ ../git/git-ls-files -- net/ipv4/tcp.c fatal: git-ls-files: internal error - cache entry not superset of prefix davem@sunset:~/src/GIT/net-2.6$

I added some debugging:
Trying get_pathspec([(null)],[net/ipv4/tcp.c])
prefixlen(0)
prefix_path() gives [net/ipv4/tcp.c]
ERROR: pathspec(net/ipv4/tcp.c)
verify_pathspec: len(9)
ERROR: len(9) ce_namelen(ce)(7) ce->name(COPYING)
Is something wrong with my index file?
I tried to rebuild it using:

git read-tree master git checkout-index -f -a git update-index --refresh

but I keep getting the same problem.
It happens on all of my local 2.6.x kernel GIT trees.
Any ideas?
Thanks a lot.
Linus Torvalds· Aug 1, 2006, 05:18 UTC · re: David Miller · lore

Re: git-ls-files prefix superset problem

On Mon, 31 Jul 2006, David Miller wrote:
Show 11 quoted lines
> 
> I had been previously using git-1.1.3 on my local repositories
> and I upgraded to the current git head:
> 
> b63fafdfd844c2037fba53b9944431c1378b4135
> 
> git commit stopped working, specifically it dies on
> git-ls-files:
> 
> davem@sunset:~/src/GIT/net-2.6$ ../git/git-ls-files -- net/ipv4/tcp.c
> fatal: git-ls-files: internal error - cache entry not superset of prefix
It should be fixed by the recent commit
	Fix up some fallout from "setup_git_directory()" cleanup
that Junio already merged.
So just update your git again, and everything should be happy.
		Linus
David Miller· Aug 1, 2006, 05:25 UTC · re: Linus Torvalds · lore

Re: git-ls-files prefix superset problem

From: Linus Torvalds <torvalds@osdl.org>
Date: Mon, 31 Jul 2006 22:18:47 -0700 (PDT)
Show 7 quoted lines
> It should be fixed by the recent commit
> 
> 	Fix up some fallout from "setup_git_directory()" cleanup
> 
> that Junio already merged.
> 
> So just update your git again, and everything should be happy.

Yeah, just as you responded I noticed the there was local variable shadowing of "prefix" which causes it to be NULL and thus prune_cache() doesn't get called.

Thanks!

← back to recent threads