On Mon, Apr 16, 2012 at 10:03:03AM -0700, Junio C Hamano wrote:
quoted
git filter-branch --index-filter '
git ls-files -sz |
perl -0pe "s{\t}{\tnewsubdir/}" |
git update-index --from-scratch -z --index-info
' HEAD
Wouldn't "git read-tree --prefix=newsubdir/" suffice without the pipeline?
I.e.
git filter-branch --index-filter '
rm -f "$GIT_INDEX_FILE"
git read-tree --prefix=newsubdir/ "$GIT_COMMIT"
' HEAD
Yeah, I think it does (at least it makes sense to me, and worked on a
simple test case). I think I might use "git read-tree --empty" instead
of "rm", as it is a little more obvious what is going on. But other than
that, it is much more readable.
It is a slight shame not to show an "ls-files | update-index" example,
because that is the most general form. But since this form is quite
often cut-and-paste by people, I think simple is better here. If we want
to show a more complex example, then we should add it separately.
-Peff