所以我想解决这个难题。我是一个独立游戏开发人员,在任何时候与团结游戏引擎一起工作的6-7客户端项目。我遇到的问题是在项目之间保持共享代码同步--我目前的解决方案非常“手动”,而且耗时(而且当我忘记更新所有内容时容易出错)。我开始研究SVN外部作为解决方案,但有一个问题。统一游戏引擎使用*.meta文件来维护有关文件在每个游戏中的使用方式的数据。
作为一个简单的例子,下面是一个示例文件夹结构:
项目1:
项目2:
显而易见的/立即的解决方案是将我的"SharedCode“文件夹设置为SVN外部文件夹。出现的问题是,SharedScript.cs文件在两个项目上都应该是相同的,但是SharedScript.meta文件是特定于项目的,由游戏引擎自动生成(所以我不能说,将我的所有元文件存储在"SharedCode“文件夹之外的某个文件夹中)。
这里有数百个这样的文件,所以我希望有一个解决方案,它不需要将每个“共享”文件作为一个外部SVN来处理。
我目前丑陋的解决方案是将整个项目树保存在SVN中,并且我有一个子文件夹,它是一个GIT,它忽略了.meta文件。不过,这很难看,我经常提交/更新主项目,忘记提交/推/拉git“库”项目。
如有任何建议,将不胜感激!
发布于 2012-10-15 08:40:26
为什么不对代码使用一个版本控制系统,对统一项目的资产使用一个版本控制系统呢?然后,对需要在项目之间共享的代码使用svn:externals。
您可以忽略项目中的元文件,并使用git对元文件进行版本化。
发布于 2012-06-03 16:06:49
为什么不将您的"SharedCode“文件夹设置为SVN外部-但是没有"SharedScript.meta”文件(以及任何其他特定于项目的/自动生成的文件)。
现在让SharedCode.csproj指向一个不存在的文件"$(SolutionDir)/<(blah)/SharedScript.meta“。您只需手动编辑csproj即可。请注意,您的所有解决方案现在都必须将这个元文件生成到这个相对路径。
现在,当您将这个csproj添加到您选择的解决方案中时,您需要设置项目依赖项,以便在构建"SharedScript.meta“项目之前生成"SharedCode”文件。现在不应该有任何问题。
希望这能帮上忙!
https://stackoverflow.com/questions/10871030
复制相似问题