Unity工具—版本合并UnityYAMLMerge

Unity 内部集成的版本合并工具,可用于第三方版本管理工具解决 Scene 和 Prefab 冲突问题

本文译自官方手册

原文地址:Unity工具—版本合并UnityYAMLMerge

前提

使用第三方版本管理工具需先将 Unity 的

  1. Edit > Project Settings > Version Control 选项改为Visible Meta Files

  2. Edit > Project Settings > Asset Serialization 选项改为Force Text

    该操作是将 Unity Asset 文件的内容由二进制格式改为 yaml 文本格式,以便于版本管理识别

工具位置

Windows下,Unity 安装目录下

C:\Program Files\Unity\Editor\Data\Tools\UnityYAMLMerge.exe

or

C:\Program Files (x86)\Unity\Editor\Data\Tools\UnityYAMLMerge.exe

Mac OSX,右键显示包内容

/Applications/Unity/Unity.app/Contents/Tools/UnityYAMLMerge

使用方法

P4V

  1. 配置 > 合并(Preference > Merge)
  2. 选择其他应用 (Other application)
  3. 点击添加(Add) 按钮
  4. 在扩展区选择 .unity
  5. 在应用栏(Application)输入UnityYAMLMerge路径
  6. 在参数栏(Arguments)输入 merge -p %b %1 %2 %r
  7. 点击保存(Save)

Git

配置 Git,添加以下内容到.git.gitconfig文件

[merge]
tool = unityyamlmerge

[mergetool "unityyamlmerge"]
trustExitCode = false
cmd = '<path to UnityYAMLMerge>' merge -p "$BASE" "$REMOTE" "$LOCAL" "$MERGED"

Mercurial

添加以下内容到.hgrc文件

[merge-patterns]
**.unity = unityyamlmerge
**.prefab = unityyamlmerge

[merge-tools]
unityyamlmerge.executable = <path to UnityYAMLMerge>
unityyamlmerge.args = merge -p --force $base $other $local $output
unityyamlmerge.checkprompt = True
unityyamlmerge.premerge = False
unityyamlmerge.binary = False

SVN

添加以下内容到~/.subversion/config

[helpers]
merge-tool-cmd = <path to UnityYAMLMerge>

TortoiseGit

  1. 打开 配置 > 差异查看器 > 合并工具 点击高级 (Preferences > Diff Viewer > Merge Tool 点击 Advance)

  2. 在扩展名下拉栏选择 .unity

  3. 在扩展程序区输入

    <path to UnityYAMLMerge> merge -p %base %theirs %mine %merged
    

PlasticSCM

  1. 配置 > 合并工具 点击添加按钮 (Preferences > Merge Tool 点击 Add)

  2. 选择外部(External)合并工具

  3. 选择使用下方路径文件(Use with files that match the following pattern)

  4. 添加.unity后缀

  5. 输入指令

    <path to UnityYAMLMerge> merge -p "@basefile" "@sourcefile"  "@destinationfile" "@output"
    

SourceTree

  1. 工具 > 选项 > 差异(Tools > Options > Diff)
  2. 合并工具下拉栏选择自定义 (Custom)
  3. 合并指令栏(Merge Command)输入UnityYAMLMerge的路径
  4. 在参数栏(Arguments)输入merge -p $BASE $REMOTE $LOCAL $MERGED
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354