为源代码树打一个干净的包
-------------
有时候项目源码树中混有一些额外的,临时产生的文件,或者含有些源代码管理工具产生的管理文件,如.svn。这些文件散步在源码树中。
现在我想对源码树tar一个包,又不想让这些临时文件进入这个tar包,怎么办? 最简单的方法就是利用你使用的源代码管理工具。
如果你用svn管理代码,用以下命令:
svn ls -R | xargs tar -jcvf mypackage.tar.bz2
如果是用git管理,用以下命令:
git-ls-tree --name-only --full-name -r master | xargs tar -jcvf mypackage.tar.bz2
这样,一个干净的源代码包就产生了 :-)
===补充===
如果文件名或目录名含有空格则小心了,以下命令用于过滤掉'.svn'目录以及为文件名加引号:
find . -name '*.*' ! -regex '.*\.svn.*' -printf "\"%p\"\n" | xargs tar -jcvf mypackage.tar.bz2