Ответ 1
Вы всегда можете использовать параметр -r
для ссылки на конкретную ревизию. При этом вы также можете использовать пиннинг версии @rev
, чтобы убедиться, что вы ссылаетесь на макет ревизии Subversion при конкретной ревизии. Следующее создаст тег из соединительной линии в редакции 577 и вызовет этот тег REV-1.2
:
$ svn cp -r 577 https://subversion.assembla.com/svn/my_assembla_svn_directory/trunk
https://subversion.assembla.com/svn/my_assembla_svn_directory/tags/REV-1.2
Если у вас нет каталогов trunk
, branches
и tags
, вам нужно будет переместить вашу работу, чтобы создать некоторые из них:
$ # Move the current directory to the "trunk"
$ svn cp https://subversion.assembla.com/svn/my_assembla_svn_directory \
https://subversion.assembla.com/svn/my_assembla_svn_directory/trunk
$ # Make a corresponding tags and branches directories too
$ svn mkdir https://subversion.assembla.com/svn/my_assembla_svn_directory/branches
$ svn mkdir https://subversion.assembla.com/svn/my_assembla_svn_directory/tags
$ # Now, we can delete the old location. Let your developers know this,
$ # so they're not surprised by this and will be able to do a "svn relocate"
$ svn delete https://subversion.assembla.com/svn/my_assembla_svn_directory/
$ # Whoops. I should have done the tagging when I had a chance.
$ #Oh well, we'll use the `@rev` pinning:
$ svn -r557 cp https://subversion.assembla.com/svn/[email protected] \
https://subversion.assembla.com/svn/my_assembla_svn_directory/tags/REL-1.2
Subversion не реализует тегирование и разветвление, кроме как в качестве копии. Это не редкость. Аналогичным образом Perforce реализует ветвление. Фактически, как только вы привыкнете к этому, он работает очень хорошо:
- Легко видеть действительные ветки и теги (просто выполните
svn ls
в правом каталоге - Полная история тегов и веток легко увидеть. Вы можете видеть, кто внес изменения, когда, почему и т.д.
- Отображается полная история тега или ветки. Если кто-то меняет тег или ветку, вы видите, кто сделал это очень четко.
- Это препятствует разветвлению типа helter-scelter, которое вы видите во многих других системах управления версиями, когда разработчики выбирают различные ветки и туловище, что нужно разветкить или пометить. Это делает отслеживание истории очень трудной задачей. Схема Subversion побуждает вас думать о ветвях и тегах как о влиянии на все файлы в проекте.