【问题标题】:Creating a branch with TortoiseSVN without /trunk structure使用 TortoiseSVN 创建一个没有 /trunk 结构的分支
【发布时间】:2011-12-17 16:24:03
【问题描述】:

背景:我们将源代码保存在我们自己服务器上的 SVN 存储库中。我们有团队 A 致力于网站的主要功能。我们正在寻求与 B 团队就设计方面的工作进行合作,该团队将在不同的地点进行。

很久以前在设置 SVN 存储库时,我创建了一个结构,该结构最终可以在以下位置访问:

svn://www.myserver.com/main/abc

源代码文件存在于 'abc' 级别及其下方的文件夹中。

到目前为止,当我需要创建一个分支时,这对我们来说一直很好。选择 TortoiseSVN → Branch/Tag 似乎让我可以选择在以下位置创建分支:

svn://www.myserver.com/main/def

但是,当我上次尝试时,它似乎在“abc”内创建了一个名为“def”的文件夹,这根本不是我所期望的。我希望创建一个完全独立的存储库副本,供 B 团队使用,并在需要将两者合并时——这可能会尽可能顺利地进行。

[我知道在'abc'中提交更改时,我们还必须在'def'中提交]

【问题讨论】:

  • 请注意,“主干”在 SVN 中并不是一个特殊的位置,它只是大多数人使用的约定。

标签: svn tortoisesvn branch branching-and-merging


【解决方案1】:

svn 中的一个分支只不过是一个副本。如果您使用的接口赋予名称“主干”和“分支”特殊含义(以及您描述它的方式,似乎 TortoiseSVN 就是这样做的),请尽量避免其分支功能并直接创建一个副本。如果您查看 svn://www.myserver.com/main/,然后将 abc 复制到 def,那么一切就绪。然后 B 组可以查看 svn://www.myserver.com/main/def。

【讨论】:

    【解决方案2】:

    Hvd 答案的扩展版

    存储库布局无非是接受的关于使用树的协议。您可以将 mainline 和 side-work 存储在存储库树的任何位置,而它们不相交。

    在您对回购当前状态的描述中,您错过了一件重要的事情:存储库根在哪里,在哪个级别? 两种情况“/main/”和“abc/”都可以解决,但步骤不同。

    使用 TSVN 的存储库浏览器,您甚至可以轻松检测到 root。您可以访问 svn://www.myserver.com/main/ URL 作为存储库,否则会出错?

    与 repo-root 相关的第二个问题是“TeamA 现在使用哪个 URL 来访问 repo?”是的,我已阅读并理解

    最终可以在 svn://www.myserver.com/main/abc 访问的结构

    但它为假设留下了一些空间:

    • TeamA 从 svn://www.myserver.com/main/ 结帐并在工作副本中包含 ABC 目录
    • TeamA 是否从 svn://www.myserver.com/main/abc 结帐并立即在根目录下拥有工作空间

    (第一个版本和 svn://www.myserver.com/main 作为 Q1 的 root 将需要稍后重新签出存储库,以便使用 TeamB 空间排除公共 root)

    简历

    找到 Repo-root,为我们编写它,无论如何我们都会概述接下来的步骤

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-20
      • 2017-02-05
      • 2017-07-01
      • 2010-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-15
      相关资源
      最近更新 更多