Как укоротить каталог загрузки вида в открытом виде? - PullRequest
3 голосов
/ 12 февраля 2009

В Clearcase у меня есть VOB с путем, подобным этому:

\Department\ProductGroup\Product1\Development

У меня есть представление со спецификацией конфигурации, например:

element * CHECKEDOUT
element * .../mybranch/LATEST
element * /main/LATEST -mkbranch mybranch
load \Department\ProductGroup\Product1

Весь исходный код для Product1 находится в каталоге разработки. Ничего, что меня волнует, не существует за пределами этого каталога. Все ссылки в коде относятся к этому каталогу.

Я создал вышеуказанное представление Clearcase в каталоге c: \ dev

В настоящее время вышеуказанная установка создает каталог:

c:\dev\Department\ProductGroup\Product1\Development

Все родительские каталоги для Development пусты. Я предпочел бы иметь только следующие каталоги.

c:\dev\Product1  

Где c:\dev\Product1 сопоставлен с путем VOB \Department\ProductGroup\Product1\Development. Это возможно?

1 Ответ

1 голос
/ 12 февраля 2009

1 / Почему не только загрузить \ Department \ ProductGroup \ Product1 \ Development?

load /Department/ProductGroup/Product1/Development

Примечание: вы можете использовать '/', проще, чем '\', и спецификация конфигурации Windows интерпретирует его правильно.

1bis / Если вы хотите сохранить общее правило, вы можете использовать некоторые " правила очистки "

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

element * CHECKEDOUT

# read/write selection rule for the directory and sub-directory
# where you need to work
element /Department/ProductGroup/Development/... .../mybranch/LATEST
element /Department/ProductGroup/Development/... /main/LATEST -mkbranch mybranch

# specific selection rule for the parent directories of Development
# those rules do not contain a mkbranch directive
element /Department/ProductGroup  .../mybranch/LATEST
element /Department/ProductGroup /main/LATEST
element /Department  .../mybranch/LATEST
element /Department /main/LATEST

# cleaning rule right there: anything outside /Department/ProductGroup/Development
# will not be selected, hence not loaded
element /Department/* -none

load \Department

Таким образом, вы всегда сохраняете одно и то же правило загрузки load \Department, и ваши правила выбора делают очистку за вас.

2 / Что касается проблемы с путями, вы можете использовать Symlink, но самый простой способ - использовать subst

subst X: c:\dev\Department\ProductGroup\Product1\Development

И вы можете продолжать использовать свой снимок в X: \

НО это не сработает, потому что ClearCase требует:

  • view.dat (скрытый файл, указывающий на дерево каталогов, на самом деле представляет собой снимок)
  • vob (в вашем случае Department. ProductGroup\Product1\Development - это путь внутри Vob Department)

    X:> ct lsview -l -full -pro -cview cleartool: Ошибка: невозможно получить информацию о представлении для текущего представления: не объект ClearCase. X:> ct ls cleartool: Ошибка: путь не входит в VOB: "."

По тем же причинам жесткая ссылка с Junction на окнах не будет работать :

c:\dev>junction Product1 Department\ProductGroup\Product1
Junction v1.05 - Windows junction creator and reparse point viewer
Copyright (C) 2000-2007 Mark Russinovich
Systems Internals - http://www.sysinternals.com

Created: C:\dev\Product1
Targetted at: C:\dev\Department\ProductGroup\Product1

C:\cc\xxx>ct ls
cleartool: Error: Pathname is not within a VOB: "."

Итак, что вы можете сделать, это:

subst X: c:\dev

Это в сочетании с конкретными правилами загрузки из 1 / или правилами очистки от 1bis / даст вам:

  • немного более короткий путь
  • нет лишних пустых подкаталогов

2bis / «Devious» решение:

Из проводника ClearCase переместите Development с Department\ProductGroup\Product1 на Department! Этот ход будет записываться в дереве версий 'mybranch' и не будет виден никому, кто работает в /main/LATEST.

Затем с subst сверху вы будете работать в mybranch в Department\Development.

X:\Department\Development

Если вы хотите стать публичным, сделайте обратный ход.

...