git-ls-files prefix superset problem

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

git-ls-files prefix superset problem

From: David Miller <davem@davemloft.net>
Date: 2016-06-15 22:42:35

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.

Re: git-ls-files prefix superset problem

From: Linus Torvalds <torvalds@osdl.org>
Date: 2016-06-15 22:42:35


On Mon, 31 Jul 2006, David Miller wrote:
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

Re: git-ls-files prefix superset problem

From: David Miller <davem@davemloft.net>
Date: 2016-06-15 22:42:35

From: Linus Torvalds <torvalds@osdl.org>
Date: Mon, 31 Jul 2006 22:18:47 -0700 (PDT)
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!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help