2014-02-19 4 views
1

В ClearCase, из-за разных рабочих процессов среди нескольких разработчиков, мы закончили с некоторыми файлами на двух ветвях, хотя они идентичны; это вызывает ненужную головную боль во время переустановки/слияния. Чтобы удалить те из одного из ветвей, во-первых, мне нужно найти список элементов (файлов/каталогов), которые идентичны по BRANCH_1 и BRANCH_2. Есть ли способ найти этот список?Найти идентичные элементы в Clearcase

Я знаю, как использовать построитель отчетов (и скрипты cleartool) и найти разницу между двумя метками, но это, похоже, не помогает.

Любая помощь будет оценена!

ответ

0

В вашем случае мы говорим о том же файле с двумя идентичными версиями на разных ветвях.

Самого простой способ обнаружить те через 2 просмотров снимки (снимок, потому что быстрее для чтения-доступа, чем динамические представления), и с помощью инструментов простого Diff (как kdiff3, например)

Для каждого идентичного файла обнаружен , вы можете нарисовать стрелку слияния между двумя версиями из двух разных ветвей. См. «Merge arrow in clear case».

Это слияние стрелка будет достаточно для ClearCase, чтобы не считать (т.е. игнорировать) те же файлы во время очередного ClearCase слияния.

ОП отмечает, что:

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

Опять же, cleartool descr -fmt подхода полезен: он позволит описать элемент с их полным расширенным путем (с %n: /main/x/branch1/y): таким образом, для файла, который существует в обоих представлениях и был найден " тождественно»с помощью инструмента сравнения, вы можете проверить, если он находится в 2-х различных расширенных именах путей, или с тем же самым (в этом случае, вам не нужно ничего делать для этого файла)


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

official IBM documentation about Evil Twin проконсультирует по простой cleartool find (у вас также есть old 2010 video on it).
В сочетании с fmt_ccase, вы можете запустить 2 поиск с descr -fmt "%En %On\n":

  • один в AView на branch1
  • один в представлении на branch2

Это будет отображать полное имя элементов найденный вместе с их идентификатором (id объекта): 2 файла с тем же именем, но другой oid будет злым близнецом.

Вы бы найти подобный подход «What's the easiest way to detect “evil twins” in Rational ClearCase?»

+0

Спасибо за быстрый ответ. Моей ситуацией могут быть не злые близнецы. Предположим, что foo.c существует на \ main, затем один человек создает foo.c на \ main \ 1 \ branch1, он редактирует и вносит в него изменения. Позже кто-то другой создает его на branch2, выбирая из ветки1, поэтому \ main \ 1 \ branch1 \ 3 \ branch2. В этот момент элемент branch2 проверяется, и он отличается (branch2 \ 1) от третьей версии на ветке 1 (branch1 \ 3). Позже кто-то проверяет branch2 \ 1 и редактирует его и проверяет его при создании branch2 \ 2, который становится идентичным branch1 \ 3. Как найти foo.c тождественно на ветке1 и ветке2? – user3328803

+0

Я просто проверил, выполнив команды, которые вы предложили, и файл имеет одинаковый идентификатор OID для обоих представлений (один смотрит на branch1, другой - на branch2), поэтому они по определению не являются злыми. Но оба файла имеют одинаковое содержимое, и мне нужно найти все такие файлы на огромном VOB. Любая помощь приветствуется! – user3328803

+0

@ user3328803 Хорошо, я отредактировал свой ответ, чтобы ответить на вашу текущую ситуацию. – VonC