繁体   English   中英

如何使用Subversion 1.7+整合多个隐藏的.svn目录

[英]How to consolidate multiple hidden .svn directories with Subversion 1.7+

根据Apache Subversion 1.7发行说明

Subversion 1.7工作副本在工作副本的根目录中只有一个.svn目录,而不是工作副本中每个目录中的.svn目录。

假设存储库中有多个目录,当我第一次检出时,我只选择性地检出特定目录。 正如文档所说,这只会在顶级目录中创建一个.svn隐藏文件夹。

但是,如果我稍后决定签出另一个目录,则在签出完成后,新签出的目录中将会有另一个.svn目录。

这样做的含义是,如果我尝试从根级别进行提交,它只会知道最初检出的目录。 我还必须单独提交任何后续结账。

反正有没有改变这种行为或使两个隐藏的.svn目录合并在一起? 或者我是否必须在第一次结帐时检查整个存储库目录结构?

简答:不。每个都是单独的结账,并有自己的数据库。 我敢肯定,如果你理解隐藏在.svn目录中的深层魔法,你可以让它去做你想做的事情。 但是,与Subversion版本1.1到1.6不同,该.svn目录的结构要复杂得多,也不容易理解。

在您的情况下,最好的办法是重新检查所有内容,并进行新的结帐以包含这两个项目。

如果你想定期这样做,你应该做的是在svn co使用--depth= ,在svn update使用--set-depth=

例如,我正在检查基本目录,但我不想要任何其他内容:

$ svn co --depth=immediates http://svn.vegicorp.com/svn/base_prod
A base_prod/.classpath
A base_prod/.settings
A base_prod/foundation
A base_prod/client
A base_prod/server

检查.settings.classpath文件,以及foundationclientserver目录,但没有别的。 这很快,我不会检查很多我不想要的东西。

现在,我想在服务器上工作:

$ cd base_prod
$ svn update --set-depth=infinity server

这将更新我的服务器目录,但会检出整个目录结构。 我现在可以使用server ,但我没有foundationclient文件占用空间。

后来,我想在foundation做一些工作:

$ svn update --set-depth = infinity foundation

现在,我有foundation目录。 而且,我的base_prod目录下只有一个.svn目录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM