Как установить Unity YAML mergetool (или как мержить сцены с префабами)

Скачайте и установите git bash если у вас его нет https://git-scm.com/download/win Скачайте и установите meld. Прога с удобным интерфейсом разрешения мерж-конфликтов, она будет открываться если конфликт со сценой или префабом решится автоматически не полностью. https://meldmerge.org/

Откройте в блокноте файл по пути “Unity\Hub\Editor\2019.4.10f1\Editor\Data\Tools\mergespecfile.txt” и вставьте в его самое начало вот эти 3 строки:

unity use "PATH" "%l" "%r" "%b" "%d"
prefab use "PATH" "%l" "%r" "%b" "%d"
* use "PATH" "%r" "%b" "%l" -o "%d"

C:\Users\Username\AppData\Local\Programs\Meld\Meld.exe

Если вы установили meld не в стандартной папке, то вместо %program% укажите путь к папке установки. Далее для каждого проекта, где вы собираетесь использовать этот инструмент, надо будет открыть файл по пути “.git/config” в блокноте, и под конец вставить это:

[merge]
    tool = unityyamlmerge
[mergetool "unityyamlmerge"]
    trustExitCode = false
    keepTemporaries = true
    keepBackup = false
    path = 'C:\\Program Files\\Unity\\Hub\\Editor\\2019.4.10f1\\Editor\\Data\\Tools\\UnityYAMLMerge.exe'
    cmd = 'C:\\Program Files\\Unity\\Hub\\Editor\\2019.4.10f1\\Editor\\Data\\Tools\\UnityYAMLMerge.exe' merge -p $BASE $REMOTE $LOCAL $MERGED

В path и cmd укажите свой путь до unity, если он отличается версией или лежит не в стандартной папке

Теперь вы можете использовать YAML mergetool, для этого при возникновении конфликтов, решите всё кроме сцен и префабов, откройте консоль в папке проекта, и введите команду “git mergetool”. Если это будет возможно, то тулза автоматически разрешает все возникшие конфликты, иначе откроет meld и мы должны будете решить оставшиеся самостоятельно, сохранить и закрыть meld.

Last updated