the*_*now 1 svn tags revision clearcase snapshot
subversion(SVN)中的标签究竟是什么?Subversion真正提供哪些内置功能来高效利用它们?
我问,因为我想将某个版本的文件集标记为标记.这将使更有意义的发布命名.我还想确切地检索具有该标记的那些文件,不多也不少,从特定版本的那些文件构建软件.
在ClearCase中,标签可能是文件的属性,我相信.我得到令人担忧的印象,标签对Subversion来说并不是特别的或核心,但是它们是一个随意的概念,只是一个文件夹,其中包含某个版本的文件副本,这是真的吗?如果是这样的话,它就像ClearCase中的等价物一样没用.
Subversion被提升为将标记作为一个特征,当看起来该工具没有真正的概念核心时,为什么说它是一个特征呢?它似乎并没有在文献中广泛写出来,至少足以帮助我解决我的问题.
我得到令人担忧的印象,标签对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.如果不再需要标记,则可以将其移动到过时的目录.这意味着列出tags目录中的标签仅列出相关标签.但是,开发人员仍然可以看到过时的标签.ClearCase标签的最大优点是可以锁定ClearCase标签类型,因此如果没有标签类型的所有者解锁标签类型,则无法移动或应用它们.但是,Subversion中有许多预提交钩子脚本可以做或多或少相同的事情.我有一个允许您创建标签,但不能修改它.
其他钩子脚本走得更远.Subversion文件和目录可以在其上设置属性.我见过钩子,允许创建该标签的人在目录上放置一个"lock-tag"属性,以防止它被修改.删除"lock-tag"属性允许修改标记.这允许Subversion标记模仿ClearCase中的行为.
在Subversion中,分支和标记对于开发人员来说非常明显,并且比ClearCase中的计数器部分更容易应用和使用.许多其他版本控制系统已经模拟了Subversion对标签和分支所做的事情,因为它使整个系统比ClearCase,CVS和旧版本控制系统中的旧系统更加可见,其中标签和分支仅仅是附加在单个文件上的属性.
| 归档时间: |
|
| 查看次数: |
785 次 |
| 最近记录: |