所以我有这个困境,我正在努力解决。我是一名独立游戏开发人员,使用 Unity 游戏引擎在任何给定时间处理 6-7 个客户端项目。我遇到的问题是让我的共享代码在项目之间保持同步——我当前的解决方案非常“手动”且耗时(当我忘记更新所有内容时容易出错)。我开始研究 SVN 外部作为解决方案,但有一个问题。Unity 游戏引擎使用 *.meta 文件来维护有关文件在每个游戏中的使用方式的数据。
作为一个简单的示例 - 这是一个示例文件夹结构:
项目一:
- 根
- 根/资产
- ROOT/资产/共享代码
- ROOT/Assets/SharedCode/SharedScript.cs
- ROOT/Assets/SharedCode/SharedScript.meta
项目二:
- 根
- 根/资产
- ROOT/资产/共享代码
- ROOT/Assets/SharedCode/SharedScript.cs
- ROOT/Assets/SharedCode/SharedScript.meta
显而易见/直接的解决方案是让我的“SharedCode”文件夹成为外部的 SVN。出现的问题是 SharedScript.cs 文件在两个项目上应该是相同的,但是 SharedScript.meta 文件是项目特定的并且由游戏引擎自动生成(所以我不能说,将我所有的元文件存储在一个“SharedCode”文件夹外部某处的单个文件夹)。
有数百个这样的文件,所以我喜欢一个不涉及将每个“共享”文件视为自身外部的 SVN 的解决方案。
我目前丑陋的解决方案是将整个项目树保留在 SVN 中 - 我有一个子文件夹,它是一个忽略 .meta 文件的 GIT 存储库。虽然它非常难看,我经常提交/更新主项目而忘记提交/推送/拉取 git“库”项目。
任何建议将不胜感激!