Вы всегда можете использовать параметр -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
на правой директории
- Полную историю ветвей и тегов вы можете видеть, кто внес изменения, когда, почему и т. д.
- Отображается полная история тега или ветви. Если кто-то меняет тег или ветку, вы видите, кто сделал это очень четко.
- Он обескураживает разветвление типа хетер-скеттера, которое вы видите во многих других системах управления версиями, когда разработчики выбирают различные ветви и туловище, что нужно разветвить или пометить. Это делает отслеживание истории очень трудной задачей. Схема Subversion побуждает вас думать о ветвях и тегах как о влиянии на все файлы в проекте.