From: Jonathan Nieder Date: Sat, 20 Aug 2011 02:15:15 GMT Subject: Re: update-index --index-info producing spurious submodule commits Message-ID: <20110820021430.GA14281@elie.sbx02827.chicail.wayport.net> In-Reply-To: Greg Troxel wrote: > Junio C Hamano writes: >> "ls-tree -r HEAD foo" is probably what you meant to say. > > Thanks very much for the clue - that works. The update-index > documentation should probably say that only blobs (or perhaps commits > intended to be submodules??) are acceptable, and perhaps say "ls-tree > -r" instead of ls-tree. Makes sense. Please make it so. By the way, for this particular application I wonder if something like git ls-files -z | git update-index -z --force-remove --stdin git read-tree --prefix=/ would be easier. Or a commit-filter. :) tree=$1 shift tree=$( git ls-tree -z "$tree" | perl -0ne ' chop; my ($info, $name) = split(/\t/, $_, 2); if ($name eq "") { printf("040000 tree \t\0"); } else { printf("%s\0", $_); } ' | git mktree -z ) git commit-tree "$tree" "$@" Thanks, Jonathan