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