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

资源密集型项目的SVN-代码和;单独存储库中的资源?,svn,Svn,我读了一篇有趣的关于是否将独立项目纳入各自回购协议的讨论。但我的问题是关于一个项目,它有代码,然后是大量的艺术品-至少数百Mb。在一个简单的可用性水平上,告诉开发者“去拿一份工作副本”意味着等待整个艺术部分下载的时间太长了,这让人恼火。我担心当我们更多地使用分支时,这将是一个巨大的膨胀 从概念上讲,这是一个项目。但是,当我与repos合作时,他们希望我单独获得几个子目录的工作副本,事情似乎不知怎么搞砸了。最有可能是由于用户错误,但关键是要减少用户错误的发生 我似乎记得的另一个问题是,在子目录上设

我读了一篇有趣的关于是否将独立项目纳入各自回购协议的讨论。但我的问题是关于一个项目,它有代码,然后是大量的艺术品-至少数百Mb。在一个简单的可用性水平上,告诉开发者“去拿一份工作副本”意味着等待整个艺术部分下载的时间太长了,这让人恼火。我担心当我们更多地使用分支时,这将是一个巨大的膨胀

从概念上讲,这是一个项目。但是,当我与repos合作时,他们希望我单独获得几个子目录的工作副本,事情似乎不知怎么搞砸了。最有可能是由于用户错误,但关键是要减少用户错误的发生


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

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

trunk/
branches/
tags/
下面是一个新文件夹,您可以调用
code
或类似的东西,并将资源存储在
artwork
文件夹中。也就是说,创建这样的文件夹结构

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

开发人员通常只想获得代码主干,并且由于他通常在第一个布局中获得
trunk
,因此他只需要在第二个布局中获得
code/trunk
。我没有尝试过这个,但是如果代码本身依赖于资源,您可能可以通过
svn:externals

来提取它们,您可以对资源进行单独的repo,只需使用svn:externals属性来引用它,避免所有这些用户错误。

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

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

你可以这样做:

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

并告诉开发人员只签出
src
,艺术人员签出
artwork
,当进行分支时,您可以对主干进行分支/标记

,这意味着一旦您进行分支或标记,您的外部目标仍然是移动的。您必须进行分支/标记,然后编辑外部以使用固定版本或其自己的分支/标记,以获得正确的结果。这意味着,一旦您进行分支或标记,您必须同时进行分支/标记,然后编辑外部以使用分支或标记。我同意分支/标记要执行两次,但这很容易编写脚本,并且可以自动化。不是二进制文件。艺术资源,通常不是可压缩的-例如PNG不会真正压缩,视频文件也不会。这是一件好事,但并不能真正解决问题。我已经解决了。老实说,这不关你的事。如果你想帮忙,就帮忙,而不是得到毫无意义的分数。