Автоматическое слияние в прозрачном регистре с помощью команды cleartool findmerge

Я пишу скрипт для автоматизации некоторых операций слияния, и я хотел бы сделать это с помощью этой команды:

cleartool findmerge file_name -fver /main/branch_name/LATEST -merge -log NUL -c "Automatic merge"

Дело в том, что иногда я получаю это сообщение, и мне нужно нажать Enter, чтобы продолжить процесс:

Needs Merge "file_path" [to _branch_ from _another_branch_ base _yet_another_branch_]

Любой способ избежать этого?


person epzee    schedule 13.04.2011    source источник


Ответы (1)


Проблема с findmerge, как данное техническое примечание, заключается в том, что он может возвращать противоречивые «Needs Merge» в зависимости от расположения гиперссылок слияния.

И это вряд ли будет исправлено в ближайшее время:

Это требует значительных архитектурных изменений и не будет решено в течение следующих 18 месяцев.
Обратитесь в службу поддержки клиентов Rational, чтобы узнать о передовых методах UCM, чтобы обойти это ограничение.

Я не нашел простого решения:

Я обычно сначала findmerge в каталоге (-type d), у которого нет этой проблемы с дополнительными сообщениями.
Затем, если все каталоги объединены, я продолжаю работать с файлами с -merge -abort (чтобы остановиться при первом конфликте): так как ваш Во-первых, у слияния не должно быть конфликтов, этот режим (-merge -abort) с меньшей вероятностью сообщит о сообщении «Требуется слияние».

person VonC    schedule 13.04.2011
comment
хорошо, поэтому мне нужно сделать это с помощью другой команды. Что насчет слияния? Знаете ли вы, требует ли это взаимодействия с пользователем? Спасибо! - person epzee; 14.04.2011
comment
@epzee: merge может работать ... если вы знаете, какой файл или каталог нужно объединить. Это не рекурсивная команда (вот почему на самом деле существует findmerge -merge!) - person VonC; 14.04.2011
comment
Да, ввод скрипта — это список файлов, готовых к слиянию. Как вы думаете, команда слияния подойдет? Вы рекомендуете какой-либо аргумент для этого конкретного случая? Кроме того, какие-либо особые соображения, которые я должен принять? Большое спасибо Von, это действительно очень полезно! - person epzee; 14.04.2011
comment
@epzee: особое внимание следует обратить на то, чтобы сначала объединить каталоги, что означает, что список файлов является точным. Затем объедините каждый файл один за другим. Если этот список должен содержать каталоги, всегда сначала объединяйте каталоги. - person VonC; 14.04.2011
comment
Просто сообщаю вам, что, по крайней мере, в Windows 7 с ClearCase 8 опция -abort для cleartool findmerge вообще ничего не делает. :-( Независимо от того, указан ли параметр -abort, если есть нетривиальное слияние, cleartool все равно откроет инструмент графического слияния. Мне пришлось прибегнуть к вызову findmerge 3 раза. Сначала выполнить слияние каталогов, затем найти, но не выполнять все другие слияния, затем анализировать вывод, а затем вызывать его в третий раз, только если все слияния содержат подстроку (автоматический). И недавно я обнаружил, что даже (автоматический) часть не надежна... (продолжение в следующем посте) - person antred; 21.12.2015
comment
@antred Действительно странно ... вы открыли PMR в службу поддержки IBM, чтобы сообщить об этой проблеме? - person VonC; 21.12.2015
comment
(продолжение предыдущего комментария) ... как и в некоторых случаях, cleartool, даже если он сделал (автоматическую) распечатку, продолжал открывать инструмент графического слияния только для того, чтобы затем обнаружить, что инструмент графического слияния может решить слияние само по себе, но по-прежнему требуется ввод данных пользователем, чтобы нажать кнопку «ОК», чтобы закрыть инструмент, что, конечно, приведет к срабатыванию скриптового подхода, который должен работать без вмешательства пользователя. Ах, ClearCase, клянусь, в конце концов я сойду с ума. - person antred; 21.12.2015
comment
@vonC Я этого не делал. На мой взгляд, у ClearCase так много нерешенных проблем, некоторые из которых известны с 2004 года или даже раньше, что совершенно очевидно, что IBM в любом случае не будет тратить много усилий на исправление такого рода вещей. Учитывая, как мало осталось пользователей ClearCase, я не уверен, что вы можете винить их... с другой стороны, они определенно берут достаточно денег из карманов своих клиентов, чтобы оправдать немного больше усилий. - person antred; 10.03.2016