加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 签出一个完整的Subversion树,不包括标签/和分支/

发布时间:2020-12-16 01:48:58 所属栏目:安全 来源:网络整理
导读:我正在开发一个包含100个Maven子项目的企业源代码树.由于每个子项目都有自己的分支/标签/子文件夹布局,因此整个树的布局如下: root/ some/intermediate/dirs/ project1/ branches/ ... tags/ ... trunk/ ... project2/ branches/ ... tags/ ... trunk/ ...
我正在开发一个包含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元字符 – 必要时添加适当的引用.

当使用稀疏目录时要小心 – 很容易忘记被排除的内容和实际不存在的内容……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读