首页 / 知识

关于svn:Subversion如何制作标签?

2023-04-13 23:12:00

关于svn:Subversion如何制作标签?

How are tags made in Subversion?

我知道如何在Subversion中使用标签。 每当到达发行里程碑时,我都会创建一个标签。

我不太了解它们是如何工作的。

标签是从我指定的任何修订版本制作的副本吗? 还是标记更像参考,内部颠覆只是说GO TO /trunk/project/ Revision 5或其他内容。

创建标记(svn copy)的命令似乎暗示它是一个副本,但是我已经看到其他人写道,subversion并没有真正复制任何内容。

假设我仅转储存储库的HEAD版本。 除了标签,我不在乎任何历史。 这些标签是否与Head修订版的其余部分一起被丢弃?

最后,这就是我真正不想知道的只是编程魔术。


是的,svn副本(无论您是将其视为标签,分支还是在主干中复制文件)都一样。 SVN将在内部创建指向该修订版中源位置的指针。如果您随后对副本进行更改(如果它是主干中的分支或复制的文件,则可能会执行此操作,但不应对标签执行此操作),SVN只会存储更改的内容,而不是创建一个全新的副本复制。


Subversion图书以完整免费的形式在线上发表:
http://svnbook.red-bean.com/en/1.4/svn-book.html#svn.branchmerge.tags

是的,您基本上可以进行svn复制。 Subversion足够聪明,可以执行写时复制样式机制,以节省空间并最小化传输时间。


是的,标签只是一个副本:

1
svn copy trunk tags/BLAH

当人们说SVN并没有真正复制任何内容时,它们意味着存储库不需要复制数据。它使用类似于符号链接的方式来跟踪副本。


TortoiseSVN帮助很好地解释了它:

Subversion does not have special commands for branching or tagging, but uses so-called"cheap copies" instead. Cheap copies are similar to hard links in Unix, which means that instead of making a complete copy in the repository, an internal link is created, pointing to a specific tree/revision. As a result branches and tags are very quick to create, and take up almost no extra space in the repository.
[...]
If you modify a working copy created from a branch and commit, then all changes go to the new branch and not the trunk. Only the modifications are stored. The rest remains a cheap copy.


标签是对使用该标签时的修订号集的引用,它在内部与分支或副本相同。


一个例子:

1
2
3
$ svn copy https://jorgesysgr.com/svn/AndNews/branches \\
           https://jorgesysgr.com/svn/AndNews/tags/release-1.1 \\
           -m"release 1.1 Android News."

更多信息:创建一个简单标签


标签里程碑发行副本

最新内容

相关内容

热门文章

推荐文章

标签云

猜你喜欢