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

在Tortoissesvn中创建分支时,“head”、“working copy”和“specific”修订意味着什么?

  •  8
  • Asad  · 技术社区  · 15 年前

    Tortoise SVN的新用户,负责源代码控制。

    我有一个Visual Studio解决方案,它由5个Web应用程序项目组成。 我需要拿出一个,然后在一个分支中处理它。 当我尝试将其分支时,它询问我以下选项之一

    • 存储库中的标题修订
    • 存储库中的特定修订
    • 工作副本修订

    alt text http://img25.imageshack.us/img25/3747/svnfile.jpg

    问题1: 这些到底是什么?我对“修订标题”和“工作副本”感到困惑,因为它们在我看来是一样的。

    alt text http://img34.imageshack.us/img34/8079/svn2.jpg

    编辑:

    问题2: 为什么我们不能从存储库GUI本身进行分支(将是head revision)?

    问题3: 您能列出从目录分支所需的步骤吗?

    4 回复  |  直到 15 年前
        1
  •  14
  •   John Feminella    15 年前

    这个 头部修正 存储库中是已提交给源代码管理的最新修订版。你的 工作拷贝 修订是当前树所反映的修订。因为人们可能在你工作时承诺了一些事情,所以你的工作副本修订版不一定等于 HEAD 修订。

    当你分支时,你被要求分支 从一个特定的点 . TSVN正在询问您希望这一点是什么,您有三个选择之一:

    • 从现在开始工作的地方(工作副本修订版)
    • 当前存储库所在的位置(存储库的 修订)
    • 其他任意修订(特定修订)

    更新: 操作添加了一些不属于原始内容的附加问题,所以我修改了我的答案。

    为什么我们不能从存储库GUI本身进行分支(将是head revision)?

    Tortoissesvn GUI并不代表Subversion可能完成的一整套操作。Subversion实际上只是一组命令行工具,TSVN是它们的包装器。如果您想在服务器上创建一个完整的新分支,只需使用:

    svn copy svn://example.com/repo/trunk/ svn://example.com/repo/branches/1.4
    

    您能列出从目录进行分支所需的步骤吗?

    Tortoissesvn手册非常明确地说明了如何做到这一点。见 here .

        2
  •  3
  •   Stefan    15 年前
    • 头部修订是指最新的 存储库中的修订。
    • 存储库中的特定修订:您可以在这里输入任何您喜欢的修订。Tortoissesvn自动填写工作副本的修订版本。但是你当然可以改变它(也许你想从一周前创建的修订中标记)。Tortoissesvn自动填充的修订通常是您的存储库所在的修订(即head),特别是在您经常更新的情况下。但是:当您准备进行分支/标记时,其他人可以提交一些您可能不希望包含在分支/标记中的内容。这就是为什么使用修订版而不是head更安全的原因。但是,如果您确定此时没有其他人提交,则可以在此处使用head。
    • 工作副本:如果您正在工作,请使用此选项。如果您希望在分支/标记中包含本地修改,请使用此选项。如果要将工作保存在分支中(也称为搁置),则此选项非常有用。
        3
  •  2
  •   Alexander Gessler    15 年前

    您的工作副本可以使用不同的版本作为存储库的主版本。也就是说,当您处理工作副本时,您签出了一个不是最新版本的特定修订版,或者用户提交到存储库。

        4
  •  2
  •   Ken Liu    15 年前

    为了回答问题2,您 可以 从Tortoissesvn GUI创建分支。使用存储库浏览器,找到要从中分支的路径,然后右键单击该文件夹并选择“复制到…”。输入的URL将是要分支的URL (通常以“分支”文件夹为根)。

    这将在存储库中远程创建一个分支,而不需要先创建一个工作副本。该操作被称为“copy”而不是“branch”的原因是SVN中的分支操作实际上与创建副本相同(这不是一个不同的操作)。