#clearcase #cleartool
#clearcase #cleartool
Вопрос:
Я пишу скрипт для автоматизации некоторых операций слияния, и я хотел бы сделать это с помощью этой команды:
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_]
Есть ли способ избежать этого?
Ответ №1:
Проблема с findmerge
, как описано в этой технической заметке, заключается в том, что она может выдавать противоречивый отчет « Needs Merge
» в зависимости от расположения гиперссылок слияния.
И это вряд ли будет исправлено в ближайшее время:
Это требует значительных архитектурных изменений и не будет устранено в течение следующих 18 месяцев.
Пожалуйста, обратитесь в службу поддержки клиентов Rational, чтобы изучить рекомендации UCM по обходу этого ограничения.
Я не нашел простого решения:
Обычно я findmerge
сначала использую directory ( -type d
), у которого нет этой проблемы с дополнительным сообщением.
Затем, если все каталоги объединены, я продолжаю с файлами, с -merge -abort
(чтобы остановиться на первом конфликте): поскольку в вашем слиянии изначально не должно быть конфликта, этот режим ( -merge -abort
) с меньшей вероятностью выдаст сообщение «Требуется слияние».
Комментарии:
1. хорошо, мне нужно сделать это с помощью другой команды. Как насчет слияния? Вы знаете, требуется ли для этого взаимодействие с пользователем? Спасибо!
2. @epzee:
merge
может сработать … при условии, что вы знаете, какой файл или каталог нужно объединить. Это не рекурсивная команда (на самом деле, именно поэтомуfindmerge -merge
существует в первую очередь!)3. Да, входные данные скрипта представляют собой список файлов, готовых к объединению. Как вы думаете, команда слияния подойдет? Вы рекомендуете какой-либо аргумент для этого конкретного случая? Кроме того, я должен принять какие-либо особые меры? Большое спасибо, Фон, это действительно очень полезно!
4. @epzee: особое соображение, которое следует принять во внимание, — убедиться, что сначала объединяются каталоги, что означает точность списка файлов. Затем объедините каждый файл один за другим. Если этот список должен содержать каталоги, всегда сначала объединяйте каталоги.
5. Просто сообщаю вам, что, по крайней мере, в Windows 7 с ClearCase 8 опция -abort для cleartool findmerge вообще ничего не делает. 🙁 Независимо от того, задан ли параметр -abort, при наличии нетривиального слияния cleartool все равно откроет инструмент графического слияния. Мне пришлось прибегнуть к вызову findmerge 3 раза. Сначала выполните слияния каталогов, затем найдите, но не выполняйте все остальные слияния, затем проанализируйте выходные данные и затем вызовите его в третий раз, только если все слияния содержали вложенную строку (автоматически) . И недавно я обнаружил, что даже (автоматическая) часть ненадежна … (продолжение в следующем посте)