У меня есть своеобразное сомнение в Clearcase. Я не могу полностью описать, почему я делаю такую запутанную архитектуру, но мне нужно это сделать (благодаря ошибке, сделанной кем-то давно).
Хорошо, вот немного деталей: B1 - зараженная ветвь, в которой изменения как моей группы, так и изменения другой группы так сильно смешались, что нет способа найти, чей код чей). Таким образом, предлагаемое решение состоит в том, чтобы создать новую ветвь с именем B2 (на том же уровне, что и B1) и поместить в нее весь немодифицированный код другой группы (способ сделать это - объединить B1 с B2 и затем удалить все изменения от этого, пока это не становится оригинальным). Затем создайте ветку CR на B1 и оставьте только новые или измененные файлы моей группы в этой ветке. Наконец, создайте ветку интеграции из B2 и объедините изменения из ветви CR B1 в ветку интеграции B2.
Итак, вот что я сделал: (Случай использования, где у меня есть dir D, где есть файлы a, b и c. Моя группа закончила изменять файл a, в то время как b и c не изменились вообще).
Есть ветка B1, на которой есть файлы a, b и c. Есть еще одна ветка B2. Слияние сделано из B1 в B2. Теперь B2 также имеет a, b и c.
В этот момент обе ветви B1 и B2 совпадают. Сейчас я удаляю файл a из ветки B2 (rmname). Теперь В2 имеет только b и c. Я поместил ярлык в эту ветку под названием Label1. Это делает код с меткой Label1 как неизмененный код из другой группы.
Теперь я создаю подчиненную ветвь с именем CR1 из B1 и удаляю все файлы, которые есть в ветке B2 (т.е. b и c), так что она содержит только модифицированный код из исходного кода на нем. В моем случае это файл.
В этот момент ветка B2 с меткой Label1 имеет файлы b и c (это немодифицированный код), а ветвь CR1, выходящая из B1, имеет только a (которая была изменена нами).
Теперь я создаю еще одну ветку, которая называется интеграционной веткой, которая идет от B2 Label1. И затем я делаю слияние ветки CR с этим, ожидая, что у меня будут все три файла a, b и c для меня. Все, что мне нужно сделать, это сделать представление дерева версий и посмотреть, кто что изменил.
Но проблема, с которой я сталкиваюсь, заключается в том, что, поскольку я уже сделал rmname файла a в ветке B2 до установки Label. В результате слияния файл a из ветви CR не берется.
Как мне обойти эту проблему. Я хочу выборочно слить. Возможно ли это?
извините, если это плохой дизайн. Я не очень разбираюсь в деле «Очистить» и у меня ограниченные возможности и время, чтобы очистить чужой бардак.