【发布时间】:2016-02-01 21:39:11
【问题描述】:
我一直在尝试将 UnityYAMLMerge 设置为 Windows 10 中 Unity 5.3.1 和 Git 的合并工具。
很遗憾,我不知道如何让它发挥作用。根据我在这些链接上阅读的内容,这是我所做的: http://docs.unity3d.com/Manual/SmartMerge.html https://www.reddit.com/r/Unity3D/comments/39bdq5/how_to_solve_scene_conflicts_with_unitys_smart/
1) 通过添加以下内容来设置 .gitconfig(全局)和 .git/config(本地项目):
[合并] 工具 = unityyamlmerge
[合并工具“unityyamlmerge”] 信任退出代码 = 假 cmd = 'C:\Program Files\Unity\Editor\Data\Tools\UnityYAMLMerge.exe 合并' -p "$BASE" "$REMOTE" "$LOCAL" "$MERGED"
2) 安装 Perforce P4V 并添加合并应用程序
3) 设置 mergespecfile.txt 修改未注释的行,使其如下所示: 统一使用 "C:\Program Files\Perforce\p4merge.exe" "$BASE" "$LOCAL" "$REMOTE" "$MERGED" 预制使用 "C:\Program Files\Perforce\p4merge.exe" "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
我和我的队友编辑了一个场景,当我拉动更改 (git bash) 时,它只会向我显示典型的错误消息: 警告:无法合并二进制文件:Assets/Scenes/GameScene.unity(HEAD 与 81d75fc59feed35563a24b8dd609fa29deb5ec46) 自动合并资产/场景/GameScene.unity CONFLICT(内容):在 Assets/Scenes/GameScene.unity 中合并冲突 自动合并失败;修复冲突,然后提交结果。
我不确定我是否遗漏了什么。我希望有人可以帮助我们。
谢谢。
【问题讨论】:
-
文件被视为二进制文件。您需要在.gitattributes 中覆盖它们的类型。您也可能希望在此处根据文件类型配置差异/合并工具。
-
这与 StackOverflow 完全没有关系。也许尝试系统管理站点之一?请注意,(i)您不能“合并”二进制文件(视频、音乐、图像),您只能“合并”计算机代码。 (ii) git 不适合 Unity3d,subversion 在游戏业务中非常流行
-
SO 上有很多与 git-git 相关的问题,而这似乎不是一个完整的题外话。一个人可以合并任何类型的文件,包括二进制文件,如果可以定义一个合理的半自动化过程,从三个前辈派生出一个结果文件:一个基础、一个变体 A、一个变体 B。当然需要特殊的,专用于一种特殊的文件类型差异和合并工具,适用于普通文本文件之外的所有情况。这就是@OscarB92 尝试配置
UnityYamlMerge工具的原因。