Конфигурация спецификации в рациональном прозрачном регистре
Я настолько новичок в этом понятном инструменте. Я учусь, потому что у меня есть проект для работы. я только что узнал, что спецификация конфигурации по умолчанию
element *CHECKEDOUT
element */main/LATEST
Таким образом, новая версия создается в main
ветка после предыдущей версии.
Но я пробовал это, и я просто изменил свою конфигурационную спецификацию на эти
element *CHECKEDOUT
element */main/2
После этих настроек, когда я нажимаю на файл, он говорит "file not found
": Я не могу проверить или проверить.
И затем я изменил на стандартную конфигурационную спецификацию, она снова работает.
В чем дело?
Также скажите мне, как я могу пойти в version 4
создать там ветку, если моя последняя версия 6 в main
?
1 ответ
Делая правило выбора:
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
всего, если у них есть один, или последняя версия, если у них их нет.
Если вы хотите создать ветку с определенной точки, лучше не полагаться на номер версии (потому что то, что вы называете "версией 4", действительно только для вашего файла, а не для вашего каталога).
Не забывайте, что файлы и каталог версионируются в элементной основе: вы создаете версию файла, затем каталога, затем другого файла...: он ориентирован на файлы, а не на репозиторий, как другие VCS (SVN, Git, Mercurial, ...) с атомарным коммитом и одним номером ревизии для всего репо: здесь у вас есть индивидуальный номер версии для каждого элемента (файла или каталога).
См. " Какие основные концепции ClearCase должен знать каждый разработчик?"
Лучше всего сначала установить метку, чтобы оттуда разветвляться.
Но если у вас нет лейбла, мой совет:
- определить момент времени, когда ваш код находится в том состоянии, в котором вы хотите, чтобы он был для вашей ветви
- сделать правило выбора на основе времени
- дополнить это правило выбора директивой 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.