首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >subversion (SVN)中的标签到底是什么?SVN提供了哪些内置的标签工具?(与Clearcase相比)

subversion (SVN)中的标签到底是什么?SVN提供了哪些内置的标签工具?(与Clearcase相比)
EN

Stack Overflow用户
提问于 2011-11-03 22:04:42
回答 4查看 1K关注 0票数 1

subversion (SVN)中的标签到底是什么?Subversion真正提供了哪些内置功能来有效地利用它们?

我之所以这样问,是因为我想将某个版本的文件集合标记为标签。这将使版本命名更有意义。我也想准确地检索那些带有该标签的文件,不多也不少,以便在某个版本中从这些文件中构建软件。

我相信,在ClearCase中,标签很可能是文件的属性。我得到了令人担忧的印象,标签并不是Subversion的真正特殊或核心,而是一个任意的概念,只是一个文件夹,其中包含某个版本的文件的副本,这是真的吗?如果是这样的话,它就没有ClearCase中的等价物有用了。

Subversion被宣传为将标签作为一种功能,当工具看起来并没有真正的核心概念时,为什么要说它是一种功能呢?它似乎没有在文献中被广泛地写到,至少足以帮助我解决我的问题。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-03 22:50:59

我得到了一个令人担忧的印象,标签对于Subversion来说并不是什么特别或核心的东西,相反,它们是一个任意的概念,只是一个文件夹,其中包含某个版本的文件的副本,这是真的吗?如果是这样的话,它就没有ClearCase中的等价物有用了。

这是完全正确的。分支也是如此。分支也只是一个用于创建分支的目录。

然而,仅仅因为它是这样做的并不意味着它们是无用的。标签通常用于在特定时刻拍摄存储库的快照。例如,我想做一个构建,并标记该构建中使用的文件。稍后,当我们决定发布时,我想用我的版本号来标记那些完全相同的文件。Subversion的标记方法和在ClearCase中一样好用。

事实上,Subversion中的标记比ClearCase中的标记要好得多。在ClearCase中,我首先必须创建标签类型,然后将该标签类型应用于我想要标记的每个文件的版本。如果要标记10,000个文件,可能需要20分钟左右。在Subversion中,标记是即时的。标记10,000个文件只需不到一秒钟的时间。标记100,000或1,000,000个文件不需要更多时间。

在Subversion中,您只需列出tags目录的内容,即可获得所有标记的列表。这样做会给出一个实际标签的列表。在ClearCase中,您只能执行一个lstype -type lbtype,它为您提供标签类型,但这并不意味着这些标签中的任何一个实际上都在任何文件上。

在Subversion中,标记和分支通常具有不同的名称空间。在ClearCase中,它们共享相同的名称空间,因此您通常需要做一些工作来区分标签和标签。标准是标签是大写的,标签是小写的。

在Subversion中,您还可以看到何时以及由谁应用了标记。在Subversion中,标记和分支具有不同的名称空间。而且,因为标记仅仅是目录,所以可以用于标记的灵活性是无限的:

  • 有些站点有一个tags目录,还有一个用于obsolete_tags的特殊目录。如果不再需要某个标签,可以将其移动到废弃目录中。这意味着在标签目录中列出标签只列出相关的标签。然而,开发人员仍然可以看到过时的标签。
  • 一些网站使用不同的目录来存放构建标签和发布标签。这样,如果你试图查看所有不同版本标签的列表,你就不会看到成千上万的构建标签。
  • 一些网站对不同的客户或发布类型有不同的目录。这样,您就可以讨论Acme的3.4版本与Vegco的3.4版本。

ClearCase标签的最大优点是可以锁定ClearCase标签类型,因此如果标签类型的所有者没有解锁标签类型,则无法移动或应用这些标签类型。然而,Subversion中有许多预提交钩子脚本可以做或多或少相同的事情。我有一个允许你创建一个标签,但不能修改它。

其他钩子脚本走得更远。Subversion文件和目录可以设置属性。我见过允许创建该标记的人在目录上放置"lock- tag“属性的钩子,以防止其被修改。"lock- tag“属性允许修改标签。这允许Subversion标记模拟ClearCase中的行为。

在Subversion中,分支和标记对开发人员非常可见,并且比ClearCase中的相应部分更容易应用和使用。许多其他版本控制系统已经模仿了Subversion对标记和分支所做的工作,因为它使整个系统比ClearCase、CVS和旧版本控制系统中的旧系统更明显,在旧版本控制系统中,标记和分支仅仅是附加在单个文件上的属性。

票数 5
EN

Stack Overflow用户

发布于 2011-11-03 22:33:01

您说得对,标签对于Subversion来说并不是什么特别的东西,只是对于开发人员或在脚本中,它们可以被以某种特殊的方式处理。

实际上,我在这里看到的Subversion here的特性是分支和标记是廉价的(恒定时间)操作。作为硬链接的复制操作意味着这不是本身的标签功能。来自here

Subversion没有用于分支或标记的特殊命令,而是使用所谓的“廉价副本”。廉价副本类似于Unix中的硬链接,这意味着不是在存储库中创建完整副本,而是创建指向特定树/修订的内部链接。因此,分支和标记的创建速度非常快,并且几乎不占用存储库中的额外空间。

票数 2
EN

Stack Overflow用户

发布于 2011-11-03 22:39:50

subversion (SVN)中的标签到底是什么?

特定位置下某个修订版(RO,按照约定)上的存储库副本

以及Subversion真正提供了哪些内置功能来高效地使用它们?

没有什么特别的-标签(只是在任何VCS中)只是一些存储库快照的标签,带有永久且易于使用的名称

我想将某个版本的文件集合标记为标记。这将使版本命名更有意义。我也想准确地检索那些带有该标签的文件,不多也不少,以便在某个版本中从这些文件中构建软件。

好吧,它的标签是

对于Subversion来说,

标签并不是什么特别或核心的东西,而是一个任意的概念,只是一个文件夹,其中包含某个版本的文件的副本,这是真的吗?

可以,作为svn-repo的分支机构和所有其他physical部分

Subversion被宣传为将标签作为一个功能,当它看起来并不是该工具的核心概念时,那么为什么说它是一个功能呢?

“廉价拷贝”,适用于标签和分支,功能。当您必须分支|标记多to存储库时,易于识别

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7996211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档