ClearCase - Как заблокировать файл только на определенной ветви
Может ли кто-то указать мне, чтобы заблокировать файл только на определенной ветви в clearcase? Обратите внимание, что я хочу, чтобы тот же файл был изменен во всех других ветках, над которыми работают другие команды...
Может помочь блокировка ветвей в зависимости от ситуации. Но это не очень хорошая идея. Пожалуйста, поделитесь своими мыслями.
2 ответа
Вы можете заблокировать конкретный экземпляр ветви.
cleartool lock co.exe @@ / main / foo
Блокирует этот экземпляр ветви и запрещает кому-либо изменять эту ветку, в то же время позволяя извлекать и использовать все другие экземпляры - например, ci.exe @@ / main / foo / 2.
В зависимости от настроек вашего представления вам может потребоваться использовать команду lsvtree или cleartool find, чтобы найти все экземпляры веток.
Это было бы не просто clearool lock
, так как это заблокировало бы элемент для всех ветвей.
Простой подход будет cleartool checkout -reserved
, но это должно предотвратить проверку и на других ветках.
Это оставляет вас с предустановленным триггером извлечения, используя переменные среды триггера CLEARCASE_BRTYPE
:
cleartool mktrtype -c "Prevent checkout on a branch" -element -all -preop checkout -execwin "ccperl \\shared\path\to\triggers\lock_on_branch.bat" LOCK_ON_BRANCH
Скрипт будет использовать:
CLEARCASE_XPN
(Все операции; только триггеры элемента)
CLEARCASE_ID_STR
, но с добавлениемCLEARCASE_PN
а такжеCLEARCASE_XN_SFX
значения, чтобы сформировать полное VOB-расширенное имя пути объекта, участвующего в операции.
CLEARCASE_BRTYPE
(Все операции, которые могут быть ограничены типом ветви) Тип ветви, участвующий в операции, вызвавшей срабатывание триггера. В операции переименования старое имя переименованного объекта типа ветви.