您可以随时使用-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
右侧目录
- 了标签和分支的完整历史记录很容易看到,你可以看到谁做了更改,什么时候,为什么等等。
- 显示标签或分支的完整历史记录,如果有人更改了标签或分支,你会看到谁清楚了。
- 当开发人员在各分支机构上选择并选择要分支或标记的内容时,它会阻止您在许多其他版本控制系统中看到的hel sk分流类型。这使得追踪历史非常困难。 Subversion的计划鼓励您将分支和标签视为影响项目中的所有文件。