Средства тестирования приложений для разработчиков


Особенности создания видов - часть 2


Так выглядит дерево версий для файла в текущем виде.

Рис 12. Так выглядит дерево версий для файла в текущем виде.

Такое положение приводит к тому, что каждый разработчик может взять один и тот же файл и заняться его доработкой: Но правильно ли это?

Ответ - НЕТ. Это неверно, поскольку после того, как разработчики закончат правку файла и дадут команду Check-in, ClearCase не сможет просто создать новую версию - ему придется вызвать MergeManager для объединения новой версии с существующей. А ведь разработчику следует как можно реже прибегать к данному модулю, чтобы не усложнять и без того непростую разработку программного обеспечения. Правда, выход есть и из такой ситуации.

Когда пользователь выводит файл в состояние редактирования (Check-out), ClearCase выводит окно, в котором просит ввести комментарий для события, а также то, каким образом файл будет представляться далее в проекте: RESERVED или UNRESERVED.

Состояние RESERVED превращает версию в зарезервированную за конкретным владельцем, и ClearCase не позволит другому пользователю сделать новую.

Состояние UNRESERVED позволяет всем участникам проекта создавать свои подверсии файла, но при этом самый "шустрый" пользователь, нажавший кнопку Check-in первым, устанавливает контроль за файлом как обычно, а остальным придется производить слияниe с новой версией (рис. 13).

Рис. 13. Так выглядит дерево в случае, если два пользователя одновременно ввели один и тот же файл в состояние Check-in. Как видим, сделать это можно, только стоит ли подменять работу одного человека работой другого?

Отсюда вывод: если вы пользуетесь только однотипными видами, то в большинстве случаев лучше пользоваться операцией RESERVED.

Разумеется, ClearCase предлагает и более эффективные способы работы, правда, для их осуществления на практике необходимы некоторые знания.

Каждый вид строится на базе специальных правил (Rules), которые можно найти на вкладке со свойствами вида. Правило по умолчанию отражает лишь то, о чем мы говорили выше, и выглядит следующим образом: element * CHECKEDOUT element * /main/LATEST

Это значит: показать в виде все элементы в состоянии CHECKEDOUT или LATEST.


Начало  Назад  Вперед