Как расширить драйвер git merge? - PullRequest
0 голосов
/ 18 февраля 2019

Я нашел этот замечательный пример о том, как реализовать драйвер слияния git: https://github.com/Praqma/git-merge-driver

Для сохранения некоторых щелчков идея состоит в том, чтобы создать сценарий слияния, изменив .gitconfig и изменив .gitattributes наиспользуйте его для некоторых файлов.

merge-driver.sh

echo "ancestor: $1"
echo " current: $2"
echo "   other: $3"
echo "This is the merge result" > $2
echo "Conflict resolved!"
echo "resolved: $2"
cat $2
exit 0

.gitconfig

[merge "my-custom-driver"]
    name = Custom Driver
    driver = merge-driver.sh %O %A %B

.gitattributes

*.mrg merge=my-custom-driver

Моя проблема заключается в следующем: я хочу вызвать Git default merge-driver прежде, чем решить конфликт, если он не завершается корректно, то я могу проверить конфликты <<< === >>>и решить их, если смогу.

Итак, как мне вызвать git default merge driver вручную?

1 Ответ

0 голосов
/ 18 февраля 2019

... как [можно] вызвать git default merge driver вручную?

Вы не можете - не совсем.Проблема заключается в том, что драйвер слияния по умолчанию встроен в git merge в низкоуровневой обработке слияния.Ваши альтернативы - вызвать встроенную обработку слияния или вызвать ваш собственный драйвер, и если вы выбрали собственный драйвер, альтернатива обработки слияния по умолчанию уже отклонена и больше недоступна.

К счастью, есть встроенная в Git программа, которая почти так же хороша, как драйвер слияния по умолчанию, или, может быть, даже лучше (у нее есть одна опция, которой нет у драйвера по умолчанию).Эта программа называется git merge-file и она задокументирована .Если вы дадите ему правильный набор параметров, он получит почти то же самое , что и драйвер слияния по умолчанию.

Он выйдет из нуля, если посчитает, что разрешил конфликт, иненулевой, если нет.

...