bash – 签出一个完整的Subversion树,不包括标签/和分支/
我正在开发一个包含100个Maven子项目的企业源代码树.由于每个子项目都有自己的分支/标签/子文件夹布局,因此整个树的布局如下:
root/ some/intermediate/dirs/ project1/ branches/ ... tags/ ... trunk/ ... project2/ branches/ ... tags/ ... trunk/ ... ... projectN/ branches/ ... tags/ ... trunk/ ... other/intermediate/dirs/ projectN+1/ ... 我需要检查所有项目的主干/版本但不幸的是,命令$svn co protocol:// path / to / repo / root /检查完整版本的标签和分支,留下了数以千计的冗余源树和永远. 此外,N是一个非常大的数字,对我来说,单独进入和检查每个项目的主干是不切实际的. 是否有一个svn命令可以让我跳过标签/和分支/树? 我找到了a blog that explains how to write a Java program to accomplish this using the SVNKit,但我希望我可以使用命令行中的单行完成它. 更新:首选只使用svn可执行文件的解决方案,但如果需要一些shell脚本,我更喜欢Windows批处理脚本,否则,任何bash或zsh脚本都会… 解决方法
你需要的是
SVN sparse directories.
你需要一个骨架结构,当你到达它们时只填充树干.像(Bourne shell语法): svn co --depth empty protocol://path/to/repo/root/ for in in some intermediate dirs; do svn up --set-depth empty $i; cd $i; done svn up --depth immediates . for i in *; do svn up --depth infinity $i/trunk; done 我假设有问题的目录都没有包含空格或shell元字符 – 必要时添加适当的引用. 当使用稀疏目录时要小心 – 很容易忘记被排除的内容和实际不存在的内容…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |