Конфигурация спецификации в рациональном прозрачном регистре - PullRequest
1 голос
/ 05 июля 2011

Я настолько новичок в этом понятном инструменте. Я учусь, потому что у меня есть проект для работы. я только что узнал, что спецификация конфигурации по умолчанию

element *CHECKEDOUT
element */main/LATEST 

Таким образом, новая версия создается в ветке main после предыдущей версии.
Но я пробовал это, и я просто изменил свою конфигурационную спецификацию на эти

element *CHECKEDOUT
element */main/2

После этих настроек, когда я щелкаю по файлу, он говорит: "file not found": я не могу зарегистрироваться или выписаться.
И затем я изменил на спецификацию конфигурации по умолчанию, она снова работает.

Что не так?
Также скажите мне, как я могу перейти на version 4, чтобы создать там ветку, если моя последняя версия 6 в main?

1 Ответ

1 голос
/ 05 июля 2011

Создавая правило выбора:

 element */main/2

Вы указываете ClearCase показывать только «версию 2» из ... Все:

 /my/path/to/a/File

Так что, если какой-либо из родителейВ каталоге 'aFile' еще нет версии 2, вы не сможете получить доступ к aFile.

. Вы всегда должны сохранять правило выбора '/main/LATEST' в .конец вашей конфигурации, чтобы, если какое-либо из предыдущих правил не сработало, отступил к этому одному универсальному правилу (универсальному, потому что в любом элементе по крайней мере его version 0 хранится вветвь 'main', если 'main' не был переименован, что очень плохо)

Например:

 element * CHECKEDOUT
 element * /main/2
 element * /main/LATEST

будет работать и покажет вам version 2 всего, если они есть, или ПОСЛЕДНЕЙ версии, если их нет.

Когда вы хотите создать ветку с определенной точки, лучше не полагаться на номер версии (потому что вывызов 'version 4' действителен только для вашего файла, но не для вашего каталога).
Не забывайте, что файлы и каталог имеют версиив элементной базе: вы создаете версию файла, затем каталог, затем другой файл ...: он ориентирован на файл, а не на репозиторий, как другие VCS (SVN, Git, Mercurial, ...) с атомарной фиксациейи один номер редакции для всего репо: здесь у вас есть индивидуальный номер версии для каждого элемента (файла или каталога).
См. " Каковы основные концепции ClearCaseкаждый разработчик должен знать?", чтобы узнать больше

Лучше всего сначала установить метку, чтобы оттуда перейти.

Но если у вас нет метки,я бы посоветовал:

  • определить момент времени, когда ваш код находится в том состоянии, в котором вы хотите, чтобы он находился для вашей ветви
  • сделать выбор на основе времениrule
  • дополните это правило выбора директивой mkbranch
  • не забывайте о новых файлах, которые вы добавите в эту ветку (это правило /main/0)

Итак:

element * CHECKEDOUT
element * .../myBranch/LATEST
element * /main/LATEST -time dd-Month-yyyy -mkbranch myBranch
element * /main/0 -mkbranch myBranch
element * /main/LATEST 

создаст новую ветку 'myBranch' для любого элементаСоздано не более на дату dd-Month-yyy.

...