Компиляция кода на просмотрах снимков ClearCase UCM

У нас есть огромная база кода, содержащая около 27000 файлов в ClearCase UCM. Наш процесс сборки выглядит следующим образом:

  1. Скопируйте файлы из динамического представления потока на локальный компьютер (скажем, в каталог D:\ABC)
  2. Начать компиляцию

В следующий раз, когда мы компилируем, мы очищаем D:\ABC и повторяем описанный выше процесс. Копирование занимает около 50 минут.

Причины, по которым мы предпочитаем динамические представления представлениям моментальных снимков:

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

Проблемы с просмотром снимков:

  1. Нам нужно очистить код, который мы сгенерировали для последней сборки (они показаны как закрытые для просмотра)
  2. Нам нужно отменить захват (мы удаляем доступ только для чтения для некоторых файлов, так как они должны быть изменены во время компиляции)
  3. Мы должны очистить выходные каталоги и файлы в них, созданные Visual Studio во время компиляции.
  4. Нам нужно переставлять представление снимка каждый раз, когда мы собираемся скомпилировать
  5. Мы не доверяем чистоте снимков.

Мои вопросы:

  1. Правильно ли мы поступаем, копируя файлы из динамических представлений?
  2. Я хотел знать, есть ли способ использовать представления снимков и при этом быть уверенными, что они чистые?
  3. Есть ли какой-либо другой вариант или передовой опыт, который мы можем применить для улучшения нашего процесса?

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


person msiyer    schedule 26.03.2012    source источник


Ответы (1)


1/ No:

  • Копирование из динамического представления намного дольше, чем использование непосредственно представления моментального снимка, которое вы бы просто обновили (чтобы поймать последний код)
  • Кроме того, во время копирования файл может быть обновлен (новая версия проверена), а затем будет скопирован вашим процессом (потому что динамическое представление ... динамически подхватит указанную новую версию). Вкратце: вы не знаете, что копируете.
  • обновление представления моментального снимка является инкрементным процессом.
    Копирование динамического представления - нет (будет скопировано все вместо загрузки только дельты)

2 / Вы бы _ 1_, чтобы убедиться, что все захваченные файлы удалены.

3 / Использование базовой линии безопаснее, чтобы получить фиксированную точку во времени базы кода

person VonC    schedule 26.03.2012
comment
Создаем базовый план после успешной сборки. Так что переход к исходному уровню - это не вариант. Кроме того, этот процесс предназначен не для разработчиков, а является частью непрерывной интеграции. Поэтому нам нужно получить последний исходный код, не полагаясь на какие-либо базовые показатели. - person msiyer; 26.03.2012
comment
Мистер ВонК, в нашем процессе мы блокируем поток перед началом копирования. Так что мы уверены в том, что копируем. Мы базируемся только после успешной сборки. Таким образом, успешная сборка является предпосылкой для создания базовой линии. Это, опять же, не процесс сборки, которому должны следовать разработчики. Это непрерывный процесс интеграции команды SCM. - person msiyer; 26.03.2012
comment
@msreekant, вы также можете установить базовый уровень перед копированием. Тогда нет необходимости блокировать поток. Вам необходимо установить четкую связь между тем, что было построено, и его кодом, не блокируя поток. - person VonC; 26.03.2012