Subversion 1.6 的工作副本元数据存储在整个工作副本的每个目录中,即每个目录中都有一个“.svn”目录。这样做的一个好处是,我可以轻松地复制工作副本中的任何子目录,而它本身就是它自己的工作副本。
在 Subversion 1.7 中,工作副本元数据结构已发生改变,只有顶级目录才会有一个用于整个工作副本的“.svn”文件夹。如果您在子目录上执行“svn info”,它仍然能够检测到它是工作副本的一部分,因此我假设 svn 将向上遍历,直到它到达父目录中的“.svn”或到达文件层次结构的根目录。但如果我将该子目录复制到其他地方,它将不再具有这种关系。在大多数情况下这不是问题,但我失去了上面提到的良好副作用。
有没有一种方法可以让 svn 客户端从本地工作副本导出子目录工作副本,而无需返回服务器?我之所以尝试这样做,是因为对于我们的 svn 存储库,进行初始签出会占用 50GB 的空间,从而给网络造成巨大负载。我过去常常将硬盘上相对较新的工作副本传递给任何新加入的人,让他们复制到他的笔记本电脑中,作为一种快速启动。我的硬盘上有整个存储库,但有些人只需要特定的子目录,因此能够创建子目录工作副本将是一个不错的奖励。
谢谢,黄
答案1
svn 客户端有没有办法从本地工作副本导出子目录工作副本而不必返回服务器?
不。
但你至少有两个选择
- 使用 1.6 客户端创建结帐,将子目录提供给 joners,然后他们将其升级到 1.7
- 加入者只能结帐
<needed dirs>
答案2
您可以专门对该文件夹进行 SVN 签出。如果有任何本地更改,则可以用新文件覆盖