代码之家  ›  专栏  ›  技术社区  ›  user200783

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

  •  1
  • user200783  · 技术社区  · 16 年前

    在我的Subversion存储库中,我有标准 /trunk , /branches 和 /tags 文件夹和标签,比如 /tags/tag1 .

    可以结账吗 /TAG/TAG1 ,进行一些本地更改,然后直接提交 作为另一个标签 说 /tags/tag2 ?我能在不触碰树干或树枝的情况下做到这一点吗?

    此外,如果使用Subversion通常是可行的,那么可以使用Tortoissesvn完成吗?

    编辑:

    如果可以使用Tortoissesvn完成此操作,我假设可以从命令行完成此操作。我需要使用什么命令?

    5 回复  |  直到 9 年前
        1
  •  3
  •   Davide Gualano    16 年前

    是的,您可以这样做:签出标记,然后从工作副本中选择分支/标记,并在“在存储库中创建副本”部分中选择“工作副本”,在“到URL:”字段中输入新标记的URL。

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

        2
  •  1
  •   CruiZen    16 年前

    从Tortoissesvn可以做到这一点。 转到在Windows资源管理器中本地修改的标记的位置。从Tortoissesvn上下文菜单中选择“branch/tag”。 现在选择“svn://server/project/tag2”之类的目标URL。 接下来,对于“在存储库中创建副本自”,选择“工作副本”选项。

        3
  •  0
  •   Jarrett Meyer    16 年前

    可以从创建分支 /tags/tag1 到 /tags/tag2 . 您可以在不接触主干或任何现有分支的情况下执行此操作。

    我们称之为hotfix分支,因为 /trunk 已经继续了,但里面有些东西 /tags/release-1.0 这需要修正。所以我们将从 /标签/版本-1.0 到 /tags/release-1.0.1 . 我们将进行修复并提交到那个标签。

        4
  •  0
  •   Amber    16 年前

    Subversion基本上将所有内容都视为目录结构——标记只是结构中碰巧位于“tags”目录中的另一个文件夹。

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

    如果您希望修订的顺利进行,一个更好的方案是将旧标记复制到分支中;进行更改,提交分支,然后将分支复制回新标记。这将更准确地保存变化的历史。

        5
  •  0
  •   BT147    9 年前

    好吧,你可以从一个标签中创建一个标签,但是如上所述的标签是“只读”的快照,所以最好先从前面的标签中创建一个trunc,通过“更新到修订”来表示标签1,并给出标签1的特定版本号,然后对trunc进行更改,不使用trunc的svn update/commit,只需从trunc中分支一个标签,选择工作副本并创建新标签。不要忘记在这个练习结束时切换trunc,以便与svn标签保持连续性。