Как правильно использовать KDiff3 с TortoiseSVN для разрешения конфликтов? - PullRequest
28 голосов
/ 10 октября 2008

У меня TortoiseSVN настроен на использование KDiff3 в качестве инструмента разрешения конфликтов (я считаю, что он показывает больше информации, полезной для слияния, чем встроенный TortoiseMerge).

Когда я открываю файл командой Tortoise «Edit Conflicts», он показывает мне три файла, и мне приходится выбирать «Merge-> Merge Current File» вручную. Проблема в том, что KDiff3 сохраняет результат в source_file.working вместо source_file. Таким образом, без сохранения как, реальный файл с конфликтом не изменяется. Есть ли способ обойти это руководство Сохранить как каждый раз?

Я знаю, что это не просто вопрос программирования, а вспомогательный процесс, достаточно распространенный для программистов, поэтому он должен быть здесь полезен. Я не мог найти ответ на этот вопрос в другом месте.

Ответы [ 4 ]

41 голосов
/ 14 октября 2008

Шахта немного длиннее:

"C:\Program Files\KDiff3\kdiff3.exe" %base %mine %theirs -o %merged --L1 Base --L2 Mine --L3 Theirs
5 голосов
/ 11 февраля 2011

Если есть кто-то, похожий на меня, позвольте мне указать, что это сделано в TortoiseSVN-> Settings-> Diff Viewer. Я установил KDiff3 в Windows с уже установленной черепахой, и она была настроена автоматически. Мне потребовалось некоторое время, чтобы выяснить, где это нужно было сделать.

4 голосов
/ 10 октября 2008

Оказывается, мне просто нужна более конкретная командная строка. Я просто указал путь к kdiff3.exe и надеялся, что аргументов по умолчанию, переданных из TortoiseSVN, будет достаточно. Не так. Вот что нужно (ключом является аргумент -o):

C:\Program Files\KDiff3\kdiff3.exe %base %theirs %mine -o %merged
0 голосов
/ 16 января 2019

У меня была такая же проблема, но я мог решить ее без какой-либо командной строки: когда я нажал «Редактировать конфликты», kdiff3 открылся. После разрешения конфликта я просто нажал «сохранить» и закрыл окно kdiff3. После того, как окно было закрыто, я переключился обратно в окно SVN «разрешение конфликта» и нажал «решено» Затем вспыхнул следующий конфликт ....

...