在Subversion中如何制作标签?
时间:2020-03-05 18:46:34 来源:igfitidea点击:
我知道如何在Subversion中使用标签。每当到达发行里程碑时,我都会创建一个标签。
我不太了解它们是如何工作的。
标签只是从我指定的任何修订版本复制而来的副本吗?或者是更像参考的标记,其中内部颠覆仅显示"转到/ trunk / project /修订版5"或者其他内容。
创建标签(" svn copy")的命令似乎暗示它是一个副本,但是我看到其他人写道,subversion并没有真正复制任何内容。
假设我仅转储存储库的HEAD版本。除了标签,我不在乎任何历史记录。这些标签是否与Head修订版的其余部分一起被丢弃?
最后,这是我真的不想知道的仅仅是编程魔术。
解决方案
回答
是的,标签只是一个副本:
svn copy trunk tags/BLAH
当人们说SVN并没有真正复制任何内容时,它们意味着存储库不需要复制数据。它使用类似于符号链接的方式来跟踪副本。
回答
标签是在内部使用时对版本号集合的引用,该版本与分支或者副本相同。
回答
Subversion图书以完整和免费的形式在线发布:
http://svnbook.red-bean.com/en/1.4/svn-book.html#svn.branchmerge.tags
是的,我们基本上可以进行svn复制。 Subversion足够聪明,可以执行写时复制样式机制,以节省空间并最小化传输时间。
回答
是的,svn副本(无论我们是将其视为标签,分支还是在主干中复制文件)都是相同的。 SVN将在内部创建指向该修订版中源位置的指针。如果我们随后对副本进行更改(如果它是主干中的分支或者复制的文件,则可能会执行此操作,但不应该对标签执行此操作),SVN将仅存储更改的内容,而不是创建一个全新的副本复制。