Re: Filter-branch's "move tree to subdirectory" example fails with BSD sed?
- From
Jeff King <peff@peff.net>
- Date
- Apr 16, 2012, 17:13 UTC
- Message-ID
- <20120416171307.GA11221@sigill.intra.peff.net>
- In-Reply-To
- <7vr4vnwqwo.fsf@alter.siamese.dyndns.org>
On Mon, Apr 16, 2012 at 10:03:03AM -0700, Junio C Hamano wrote:
Show 13 quoted lines
> > 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"
> ' HEADYeah, 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