SVN用于资源密集型项目 - 代码和单独存储库中的资源?

时间:2010-01-04 21:57:01

标签: svn

我读了一篇有趣的SO讨论,讨论如何将单独的项目放在他们自己的回购中。但我的问题是关于一个项目,它有代码,然后是很多艺术品 - 至少有数百Mb。在一个简单的可用性级别,告诉开发人员“去获取工作副本”是令人讨厌的,这意味着要等待整个艺术部分的下载时间。而且我担心当我们更多地使用分支时,这将是一个巨大的膨胀。

从概念上讲,这是一个项目。但是,当我使用repos,希望我能够单独获得几个子目录的工作副本时,事情似乎搞砸了。最有可能通过用户错误,但重点是使suer错误不易制作!

我似乎记得的另一个问题是,设置每个用户对子目录的权限不会让人们只是获得repo的工作副本,而是忽略了未经授权的文件夹。相反,它只是打破......我真的不希望我的艺术家能够改变(甚至看到)代码。

4 个答案:

答案 0 :(得分:3)

我仍然将其放入一个存储库,以允许您集中分支和合并此项目。特别是在标记版本时,您必须在发布时标记2个存储库。

你可以做这样的结构:

/svn/repository/trunk/src
/svn/repository/trunk/artwork

并告诉开发人员仅结帐src,艺术人员结帐artwork,并在分支时,您可以分支/标记trunk

答案 1 :(得分:1)

您也可以使用一个仓库,但将资源存储在单独的树中。即,只需移动通常的布局

trunk/
branches/
tags/

在您调用code或类似内容的新文件夹下方,并将资源存储在artwork文件夹中。即创建一个像这样的文件夹结构

code/
    trunk/
    branches/
    tags/
resources/
    trunk/
    branches/
    tags/

开发人员通常只想获取代码中继,并且因为他通常在第一个布局中获得trunk,所以他只需要在第二个布局中获得code/trunk。我没有试过这个,但如果代码本身依赖于资源,您可以通过svn:externals提取它们。

答案 2 :(得分:0)

您可以拥有一个单独的资源仓库,只需使用svn:external属性来引用它,避免所有这些用户错误。

答案 3 :(得分:0)

看起来compressing your binary files可以减少从Subversion存储库导入和导出此类数据所需的时间。

相关问题