Обратный Чангсет деятельности в Clearcase - PullRequest
2 голосов
/ 08 ноября 2011

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

Но политика SCM не позволяет нам удалять / rmver что-либо. Так что я остался с обратным слиянием 1 версии назад. То есть, допустим, у меня есть версия 5.java, зарегистрированная в действии. Один из способов добиться этого - найти версию 4 (используя - предшественник ) и слепо скопировать эту версию 4 как версию 6. Предположим, что на этот раз в каждом файле есть только 1 версия в действии. Если в файле было зарегистрировано более 1 версии через действие, это было бы более сложно, поэтому давайте пока проигнорируем это.

Любые другие идеи, или мой подход будет / не будет работать?

1 Ответ

4 голосов
/ 08 ноября 2011

Еще один надежный способ:

  • список всех файлов в занятии
  • для каждого файла, найдите самую старую версию
  • сделать отрицательное слияние или вычитающее слияние .

Может быть выполнено вычитающее слияние для исключения или обхода плохих версий в ветви без фактического удаления плохих версий.
Объединение Cleartool с использованием параметра -delete позволит пользователю выполнить переход из последней известной исправной версии в новую версию в той же ветке, что исключает работу, выполненную в версиях, определенных как ошибочные.

Это соответствует вашим политикам SCM.

По сути, это то, что сценарий cset.pl, упомянутый Тамиром, как я объясняю в " Clearcase: как откатить все изменения в конкретной ветке? "

ccperl cset.pl -undo myActivity
...