On Sat, 13 Aug 2005, Dave Jones wrote:
>
> My git snapshot creator that builds the hourly tarballs at
> http://www.codemonkey.org.uk/projects/git-snapshots/
> currently does an rsync, and then a checkout, and finally
> it cleans up by removing all the checked out files.
> It currently does this by hand, but on learning about
> this 'new' command, I thought, cool, now I can do..
>
> git-ls-files | xargs rm -rf
>
> however, this then leaves a bunch of empty subdirs, as
> git-ls-files doesn't list the subdirs by themselves in
> the output. Am I missing some other option ?
Nope, you're not missing anything, except that you shouldn't do that.
"git-ls-files" is very nice for things like
git-ls-files | xargs grep ....
but your example is not one of them. Not without options, and not _with_
strange options.
Your example is an example of just not doing it the right way.
If you really want a temporary tree, what you do is something like
git-checkout-cache --prefix=tmp-dir/ -f -a
and when you're done, you just do
rm -rf tmp-dir
and you're done.
NOTE NOTE NOTE! In the above, the order of the parameters is really really
important! "-a" takes effect when it is seen, so it needs to be last.
Also, the "--prefix" thing really _really_ needs the slash at the end,
because it's literally used to prefix the pathname.
HOWEVER, if all you want to do is just a tar-file, then there's a better
solution. It's called
snap=git-snapshot-$(date +"%Y%m%d")
git-tar-tree HEAD $snap | gzip -9 > $snap.tar.gz
which is even easier, and a hell of a lot more efficient.
Git actually has a _lot_ of nifty tools. I didn't realize that people
didn't know about such basic stuff as "git-tar-tree" and "git-ls-files".
Linus
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html