2012-03-26 3 views
1

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

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

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

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

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

Неприятности с видом моментальным являются:

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

Мои вопросы:

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

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

ответ

1

1/No:

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

2/Вы бы update -overwrite, чтобы убедиться, что любой угнали файл удаляется

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

+0

Мы создаем базовую линию после успешной сборки. Таким образом, получение базового уровня не является вариантом. Кроме того, этот процесс не для разработчиков, а для частичной интеграции. Поэтому нам нужно получить последний исходный код, не полагаясь на какой-либо базовый уровень. – msiyer

+0

Г-н VonC, в нашем процессе мы блокируем поток, прежде чем мы начнем копирование. Поэтому мы уверены в том, что мы копируем. Мы основываемся только после успешной сборки. Поэтому успешная сборка является предпосылкой для базового уровня. Это, опять же, не процесс сборки, за которым последуют разработчики. Это непрерывный процесс интеграции команды SCM. – msiyer

+0

@msreekant вы также можете использовать исходный код * перед * копированием. Тогда нет необходимости блокировать поток. Вам нужно установить четкую связь между тем, что было построено, и его кодом, без блокировки потока. – VonC