7

我有一个名为“repo”的 Subversion 存储库。repo 里面是trunk/ 和branches/ 目录。在branchs/ 中有几十个发布分支,例如1.0/、1.1/。这些分支/目录包含一个相对较大的应用程序。

我想在 repo 的根目录添加一个外部,称为“myExternal”。当我定义外部时,让 SVN 创建 myExternal/ 目录的唯一方法是从 repo 的根目录运行“svn up”。但是,这也会导致整个分支/内容被检出,这是不可接受的(我们有许多开发人员需要将 myExternal/ 添加到他们的 repo 副本中,并且不能让他们都检出千兆字节的不需要的分支)。

我试过'svn up --set-depth immediates',但这似乎没有得到外部。有什么方法可以告诉 svn 获取 myExternal/ 而不获取所有分支 / ?

使用 SVN 1.7。

4

2 回答 2

6

外部只是 svn 结帐,因此您可以手动签出。

您也可以使用这样的命令。如果您的外部文件格式不同,您可能需要对其进行一些修改。

svn propget svn:externals | awk '{print $2, $1}' | xargs -L1 svn co
于 2014-10-02T08:19:30.957 回答
4

是的,除非 depth=infinity ,否则不会创建 subversion externals的已知问题。

我认为没有办法重新设计您的目录结构,以便 myExternal 不是附加到repo而是附加到它的子文件夹,例如设置在/trunk和/branches中的每个文件夹。

或者,您可以创建一个脚本,首先获取 repo 的立即数,然后获取 repo 上设置的外部(它可以通过读取 repo 的属性获得:svn propget svn:externals)。

于 2012-04-04T21:46:11.407 回答