我读了一篇有趣的SO讨论,讨论如何将单独的项目放在他们自己的回购中。但我的问题是关于一个项目,它有代码,然后是很多艺术品 - 至少有数百Mb。在一个简单的可用性级别,告诉开发人员“去获取工作副本”是令人讨厌的,这意味着要等待整个艺术部分的下载时间。而且我担心当我们更多地使用分支时,这将是一个巨大的膨胀。
从概念上讲,这是一个项目。但是,当我使用repos,希望我能够单独获得几个子目录的工作副本时,事情似乎搞砸了。最有可能通过用户错误,但重点是使suer错误不易制作!
我似乎记得的另一个问题是,设置每个用户对子目录的权限不会让人们只是获得repo的工作副本,而是忽略了未经授权的文件夹。相反,它只是打破......我真的不希望我的艺术家能够改变(甚至看到)代码。
答案 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存储库导入和导出此类数据所需的时间。