Как я могу использовать Вне всякого сравнения 3 в качестве diff3-cmd для svn?

Есть несколько способов сделать это:

  1. То, как работает fields_for, заключается в том, что у вас есть form_for для родительской модели, и внутри нее вы можете поместить fields_for модели которые принадлежат родителю. Хороший пример приведен в Rails Docs
  2. . Простой и более расширяемый вариант с течением времени, но не очень "семантический", - использовать JavaScript / JQuery. Вы можете вызвать $("form #new_pretreatments").submit(); и то же самое для Диагностики после нажатия кнопки.
  3. Возможно, вместо этого у тебя могла бы быть только одна модель, чтобы сохранить их обоих. Например модель под названием Болезнь. Каждый раз, когда пациент получает заболевание, создается новое, в котором есть столбцы для каждого диагноза и предварительной обработки. Вероятно, это лучший вариант, вместо добавления другой модели для каждой информации, которую может иметь пациент.

10
задан Community 23 May 2017 в 11:58
поделиться

3 ответа

Для этого создайте пакетный файл с именем (например) diff3wrap.bat и настройте diff3-cmd в конфигурации SVN так, чтобы он указывал на него.

Следующий файл diff3wrap.bat выполнит эту работу. . Он создает временное имя файла для вывода слияния и удаляет его после возврата объединенного содержимого обратно в SVN.

@ECHO OFF

SET DIFF3="C:\Program Files\BeyondCompare3\BComp.exe"

REM Subversion provides the paths we need as the last three parameters
REM These are parameters 9, 10, and 11.  
REM Suitable titles for these three panes in the merge tool are in parameters 4, 6 and 8 respectively.


REM But we have access to only nine parameters at a time, so we shift our nine-parameter window
REM twice to let us get to what we need, thus changing the effective positions of the various parameters.
REM
SHIFT
SHIFT
SET MYTITLE=%2
SET OLDTITLE=%4
SET YOURTITLE=%6
SET MINE=%7
SET OLDER=%8
SET YOURS=%9
SET OUTPUTFILE=%OLDER%_%RANDOM%.merge

REM Call BeyondCompare to perform the actual merge
REM Note we give it a temporary output file and echo the output back out for SVN to use as the merged file
%DIFF3% /lefttitle=%MYTITLE% /centertitle=%OLDTITLE% /righttitle=%YOURTITLE% /outputtitle="Merge Output" %MINE% %YOURS% %OLDER% %OUTPUTFILE% 

if NOT %errorlevel% == 0 goto :mergenotcomplete

REM Merge complete. Echo the output to stdout for SVN to pick up as the result, then throw away the temporary file

TYPE %OUTPUTFILE%
del /f /q %OUTPUTFILE%
exit 0

:mergenotcomplete
exit 1
8
ответ дан 3 December 2019 в 22:38
поделиться

У меня есть опыт работы только с BC3 и TFS, так что относитесь к этому с недоверием. Трехстороннее слияние было единственной функцией, с которой у меня были проблемы. Не раз мне приходилось вручную копировать и вставлять изменения в BC3, чтобы завершить слияние.

1
ответ дан 3 December 2019 в 22:38
поделиться

Мне нравится пакетный файл Liamf, но я думаю, что это может взять небольшой твик:

я добавил Automerge и ReviewConclicts к призыву команды, так что в случае слияния без конфликтов он просто закрывается без вмешательства - UI будет только всплывать, чтобы просмотреть конфликты.

Таким образом, рассматриваемая линия становится:

%DIFF3% /automerge /reviewconflicts /lefttitle=%MYTITLE% /centertitle=%OLDTITLE% /righttitle=%YOURTITLE% /outputtitle="Merge Output" %MINE% %YOURS% %OLDER% %OUTPUTFILE% 
4
ответ дан 3 December 2019 в 22:38
поделиться
Другие вопросы по тегам:

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