Hi,
On Thu, 21 Jun 2007, Andy Parkins wrote:
On Thursday 2007 June 21, Jeff King wrote:
quoted
You can do this much more efficiently by just operating on the index.
Something like:
git-filter-branch --index-filter \
'git-ls-files -s | sed -n 's/change/paths/p' | git-update-index
--index-info' \ directorymoved
:-D Even better. I am definitely in the "fan of git-filter-branch" camp.
Thanks for sharing that line; I've actually found it instructive for more than
just git-filter-branch. I definitely hadn't appreciated the fact that the
index can be so easily manipulated.
You have to adapt the line minimally: As is, it will possibly catch the
wrong names, and it does not _move_ the directory, but rather _copy_ it.
So I think something like
git-ls-files -s | sed "s-\t-&newsubdir/-" |
GIT_INDEX_FILE="$GIT_INDEX_FILE".new git-update-index --index-info &&
mv "$GIT_INDEX_FILE".new "$GIT_INDEX_FILE"
is needed.
Ciao,
Dscho