Как я могу настроить Подвижный для использования WinMerge для слияний под cygwin?

Решено путем замены javascript на нижеследующее. Обратите внимание, что мне пришлось поменять Аксиоса на старую ванильную порцию.

fetch(`${config.apiGatewayURL}/download-file/${file}`)
    .then(response => {
        const blob = response.blob();
        blob.type = response.headers['content-type'];
        return blob;
    })
    .then(blob => {
        const fileURL = URL.createObjectURL(blob);
        const a = document.createElement('a');
        document.body.appendChild(a);
        a.href = fileURL;
        a.click();
        document.body.removeChild(a);
    })
    .catch(error => {
        console.log(error);
    });
9
задан Joel Spolsky 14 February 2009 в 05:01
поделиться

2 ответа

Прием - то, что пути cygwin не являются тем же, поскольку Windows соединяет каналом, таким образом, Вам нужно немного сценария, который преобразовывает пути cygwin к путям Windows прежде, чем передать их как аргументы WinMerge.

Вот то, как сделать это:

(1) Создайте сценарий оболочки в /usr/bin/winmerge следующим образом:

#!/bin/sh
"/cygdrive/c/Program Files/WinMerge/WinMergeU.EXE" /e /ub /dl other /dr local `cygpath -aw $1` `cygpath -aw $2` `cygpath -aw $3`

Примечание: cygpath преобразовывает пути. Если WinMerge не находится в месте по умолчанию, измените путь здесь.

(2) Сделайте тот исполняемый файл файла

 chmod +x /usr/bin/winmerge

(3) Добавьте следующее к Вашему ~/.hgrc файл:

[ui]
merge = winmerge

[merge-tools]
winmergeu.executable=/usr/bin/winmerge
winmergeu.args=$other $local $output
winmergeu.fixeol=True
winmergeu.checkchanged=True
winmergeu.gui=False

Примечание! У Вас, вероятно, уже есть [ui] раздел с Вашим именем в нем. Не забудьте объединять мои изменения с Вашими, только добавлять новое [ui] раздел. Например, мой .hgrc похож на это:

[ui]
username = Joel Spolsky <spolsky@example.com>
merge = winmergeu

[extensions]
fetch =

[merge-tools]
winmergeu.executable=/usr/bin/winmerge
winmergeu.args=$other $local $output
winmergeu.fixeol=True
winmergeu.checkchanged=True
winmergeu.gui=False
16
ответ дан 4 December 2019 в 13:05
поделиться

Вот строка сценария оболочки, которая работает для Subversion / cygwin / WinMerge. Основное различие в том, какие аргументы использовать.

/cygdrive/c/Program\ Files/WinMerge/WinMergeU.exe /e /ub /dl "$3" /dr "$5" "`cygpath -aw $6`" "`cygpath -aw $7`" &

Обратите внимание, что в этом примере также задаются поля описания и запускаются сравнения в фоновом режиме, так что все различия запускаются одновременно. Если вам это не нравится, удалите "&".

Если вы не знаете, что передает вам ваша программа контроля версий, попробуйте добавить 'echo $ @ ' в сценарий оболочки. Он напечатает аргументы, переданные скрипту.

0
ответ дан 4 December 2019 в 13:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: