0xb*_*7ed 3 svn bash version-control branch cmd
我正在开发一个包含100个Maven子项目的企业源代码树.由于每个子项目都有自己的布局branches/
和tags/
子文件夹,整个树的布局是这样的:
root/
some/intermediate/dirs/
project1/
branches/
...
tags/
...
trunk/
...
project2/
branches/
...
tags/
...
trunk/
...
...
projectN/
branches/
...
tags/
...
trunk/
...
other/intermediate/dirs/
projectN+1/
...
Run Code Online (Sandbox Code Playgroud)
我需要检查trunk/
所有项目的版本,但不幸的是,该命令$ svn co protocol://path/to/repo/root/
检查完整版本的标签和分支,留下了数以千计的冗余源树,并永远.
此外,这N
是一个非常大的数字,我不可能单独进入并检查每个项目的行李箱.
是否有一个svn
命令,使我跳过tags/
和branches/
树木?
我找到了一个博客,解释了如何使用SVNKit编写Java程序来完成此任务,但我希望我可以使用命令行中的单行程来完成它.
更新:svn
首选只使用可执行文件的解决方案,但是如果需要一些shell脚本,我更喜欢Windows批处理脚本,否则,任何bash
或zsh
脚本都会...
你需要的是SVN稀疏目录.
你需要一个骨架结构,trunk
当你到达它们时只填写s.像(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
Run Code Online (Sandbox Code Playgroud)
我假设有问题的目录都没有包含空格或shell元字符 - 必要时添加适当的引用.
当使用稀疏目录时要小心 - 很容易忘记被排除的内容和实际不存在的内容......
归档时间: |
|
查看次数: |
599 次 |
最近记录: |