Subversion(和TortoiseSVN):是否可以直接从现有标签创建标签?

时间:2010-02-16 10:29:11

标签: svn tortoisesvn tags

在我的subversion存储库中,我有标准的/trunk/branches/tags文件夹以及一个标记,比如/tags/tag1

是否可以结帐/tags/tag1,进行一些本地更改,然后直接提交作为另一个标记,比如/tags/tag2?我可以不触摸行李箱或任何树枝吗?

另外,如果通常可以使用subversion,可以使用TortoiseSVN吗?

修改

如果可以使用TortoiseSVN完成,我认为可以从命令行完成。我需要使用哪些命令?

5 个答案:

答案 0 :(得分:3)

是的,您可以执行此操作:签出标签,然后从工作副本中选择分支/标签,然后在“从以下位置创建存储库中的副本”部分和“到URL:”中选择“工作副本”字段输入新标记的网址。

但你为什么要这样做呢?通常,标签是代码库状态的“只读”快照,不应修改。

答案 1 :(得分:1)

可以从TortoiseSVN执行此操作。 转到在Windows资源管理器中本地修改的标记的位置。从TortoiseSVN上下文菜单中选择“分支/标记”。 现在选择TO url为'svn:// server / project / tag2'。 接下来,对于“在库中创建副本”,选择“工作副本”选项

答案 2 :(得分:0)

您可以创建从/tags/tag1/tags/tag2的分支。您可以在不触及行李箱或任何现有分支的情况下执行此操作。

我们将此修补程序称为分支,因为/trunk已经移动,但/tags/release-1.0中的某些内容需要修复。因此,我们将从/tags/release-1.0分支到/tags/release-1.0.1。我们将修复并提交该标记。

答案 3 :(得分:0)

Subversion基本上将所有内容视为目录结构 - 标签只是结构中的另一个文件夹,恰好位于“tags”目录中。

因此,从技术上讲,您可以查看tags目录,将一个标记文件夹复制到新文件夹,svn add该新文件夹,然后提交它 - 这实际上会创建一个新的标记,基于旧文件。但是,你不会得到旧标签和新标签之间的链接(哪种有意义 - 标签不应该链接到任何东西,它们应该只是快照)。

如果您希望修订版本的良好进展,那么更好的方案是将旧标记复制到分支中;进行更改,提交分支,然后将分支复制回新标记。这将更准确地保留变化的历史。

答案 4 :(得分:0)

您可以从标签创建标签,但如上所述标签是"只读"快照如此更好第一个创建一个Trunc从早期的标签说标签1由"更新到修订版"并给出Tag1的特定rev no,然后对Trunc进行更改并且不使用svn update / commit of trunc简单地从trunc分支标签并选择工作副本并制作新标签。不要忘记在结尾处切换Trunc这种做法是为了与svn标签保持连续性。