如何在不获取所有其他目录和子目录的情况下获取外部Subversion

时间:2012-04-04 21:06:55

标签: svn branch svn-externals externals svn-update

我有一个名为'repo'的Subversion存储库。回购内部是主干/分支/目录。在分支机构内/有几十个发布分支,例如1.0 /,1.1 /。这些分支/目录包含一个相对较大的应用程序。

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

我已尝试'svn up -set-depth immediates',但这似乎没有得到外部。有没有办法告诉svn获取myExternal /而不提取所有分支/?

使用SVN 1.7。

2 个答案:

答案 0 :(得分:6)

外部只是svn签出,所以你可以手动检查它们。

你也可以使用这样的命令。如果您的外部格式不同,则可能需要稍微修改一下。

svn propget svn:externals | awk '{print $2, $1}' | xargs -L1 svn co

答案 1 :(得分:4)

是的,这是subversion externals are not created unless depth=infinity的已知问题。

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

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