我正在尝试创建一个tar文件来部署一些代码,但我不希望部署所有的.svn文件。
如何过滤掉这些?他们在多个目录中......
答案 0 :(得分:68)
tar --exclude=.svn -z -c -v -f mytarball.tar.gz mydir/
答案 1 :(得分:28)
您可以使用 tar --exclude-vcs 。
我用于备份文件夹:
来自手册:
“ - 排除-VCS” 排除以下版本控制系统使用的文件和目录:'CVS','RCS','SCCS','SVN','Arch','Bazaar','Mercurial'和'Darcs'。
更多信息http://www.gnu.org/software/tar/manual/html_section/exclude.html
答案 2 :(得分:4)
使用svn export
命令制作本地沙箱的干净副本。
http://svnbook.red-bean.com/en/1.0/re10.html
svn export [-r REV] URL [PATH]
svn export PATH1 PATH2
答案 3 :(得分:3)
您可以使用svn导出功能获取没有.svn文件夹的文件的干净版本。
在与工作副本不同的位置执行此操作。
答案 4 :(得分:2)
方法(1)
在这个引用SVN Book的解决方案(以SVN为中心)的线程中扩展答案,我给出了这个例子:
C:GT; svn export -r rrev https:/ A_SERVER / svn / A_REPO / A_PROJECT / c:\ tmp \ arepo - aproject - rrev \
C:\ TMP \ arepo - 在进行一个项目 - rrev> tar zcvf arepo - aproject - rrev.tar.gz *
方法(2)
还有另一个冗长且信息丰富的主题:
How can I get `find` to ignore .svn directories?
这种不同的讨论使我看起来主要以发现为中心,以焦油为中心。 (两个有趣的话题本身都是正确的)
我发现最好使用上面的解决方案(1)。对我来说。
我主要得到另一个“find - from - filtered-STDIN-way”工作,但并不总是给出了使用所有DOS,Linux,find-variants,xargs等的复杂性和变幻莫测。