Подтвердить что ты не робот

Как использовать p4merge как инструмент merge/diff для Mercurial?

Кто-нибудь знает, как настроить Mercurial для использования p4merge как инструмент слияния/разбора в OS X 10.5?

4b9b3361

Ответ 1

Поместите это в свой ~/.hgrc (или, необязательно, ваш Mercurial.ini в Windows):

[merge-tools]
p4.priority = 100
p4.premerge = True  # change this to False if you're don't trust hg internal merge
p4.executable = /Applications/p4merge.app/Contents/MacOS/p4merge
p4.gui = True
p4.args = $base $local $other $output

Требуется Mercurial 1.0 или новее. Очевидно, вам нужно будет обновить путь к этому исполняемому файлу, чтобы отразить, где вы установили p4merge.

Ответ 2

Я нашел ответ Ry4an, чтобы быть хорошим решением, за исключением незначительной проблемы, которая оставила p4merge (под mac os), смешивая входы команд. Сделайте все, что описано в его ответ, и добавьте следующую строку в раздел [merge-tools]:

p4.args=$base $local $other $output

В этой строке указывается меркурий, в которой порядок p4merge принимает свои аргументы.

Ответ 3

Я использую версию 1.0.1 TortoiseHg, и p4merge работает из коробки.

Просто перейдите в Глобальные настройки → TortoiseHg и выберите следующие параметры:

  • Инструмент для трехстороннего слияния: p4merge
  • Инструмент визуального разума: p4merge

Screenshot

Ответ 4

Возможно, потому, что я работаю над Windows, но предлагаемое решение не сработало для меня. Вместо этого выполняется следующее.

В вашем ~/.hgrc//Mercurial.ini я применил следующие изменения:

Включено расширение ExtDiff:

[extensions]
hgext.extdiff =

Добавлена ​​команда P4 extdiff:

[extdiff]
cmd.p4diff = p4merge

Настроил его как инструмент визуального сравнения по умолчанию:

[tortoisehg]
vdiff = p4diff

Ответ 5

Я использую следующий бит Python для запуска p4merge и использую его с git:

#!/usr/bin/python
import sys
import os

os.system('/Applications/p4merge.app/Contents/MacOS/p4merge "%s" "%s"' % (sys.argv[2], sys.argv[5]))

Я не уверен, как ртуть выглядит, чтобы запустить внешний инструмент diff? Надеюсь, это так же просто, как настройка 2 и 5 в приведенной выше строке как индекс аргументов для "проверенных" и "текущей рабочей копии".

Ответ 6

Я предполагаю, что есть инструмент CLI для p4merge (о котором я ничего не знаю).

Я написал сообщение в блоге об использовании Changes.app и некоторых других инструментах GUI с Mercurial: Использование Mercurial с инструментами GUI.

В принципе, вам нужно знать ожидаемые вызовы инструмента CLI, который загружает инструмент diff. IE, как заставить его загружать данные из определенного файла и как заставить его ждать выхода. Должно быть достаточно информации на эту должность, чтобы дать вам несколько идей.