subversion和tortoisesvn:分支/移动目录

时间:2010-01-18 15:05:53

标签: svn tortoisesvn branch

我的公司代码位于一个subversion存储库中,到目前为止它运行良好。我遵循了关于如何设置存储库的建议,即我有分支/标签/中继子目录。但我现在想要更有条理,并有2个元分支,开发和发布。前者显然是出于开发目的,工程师可以尝试不同的奇怪事物,而后者则是针对产品就绪的稳定代码。所有新功能在开发时将首先存在于“dev”中,一旦被认为可以,它们将偶尔合并到“发布”分支上。承诺“发布”只会来自这种合并加上正常的bug。这些元分支中的每一个都包含普通的分支/标签/中继子目录。

我遇到的问题是我无法为我的生活做好准备。我创建了2个元分支,将所有现有的子目录移动到“dev”,现在我想将“dev”的主干移动到“release”主干中。但我无法想象如何。如果我切换(来自TortoiseSVN),它只是删除所有内容,因为“释放”中继是空的。如果我尝试从'dev / trunk'创建一个分支'release / trunk',tortoisesvn会抱怨该路径不存在。

我无法弄清楚该怎么做。这应该是简单的不应该吗?我猜很多人会使用类似的组织,dev与release?!

欢迎任何建议/意见/想法。

提前致谢。

A

4 个答案:

答案 0 :(得分:5)

通常这样做的方式,项目在存储库的顶层只有一组分支/标签/主干目录。 trunk目录您的“dev”元分支,您在branches目录下创建一个名为“release”的主干分支,作为您的稳定产品已经分支。如果您需要跟踪多个版本(例如v1.0和v2.0),那么branches下会有“1.0”和“2.0”。当您准备好发布代码时,您可以使用相应版本分支中的版本号创建一个标记。

我认为你要做的事情会使存储库结构过于复杂。您可以使用单个分支/标签/中继集来实现所需的一切。

也就是说,通过将Repo-Browser导航到您要复制的目录(在您的情况下为“dev / trunk”),使用TortoiseSVN最容易创建分支,右键单击该文件夹,选择“复制到”,并在您的案例中输入新分支的路径(“释放/主干”)。

答案 1 :(得分:1)

在Repo浏览器中,右键单击源代码所在的目录(trunk?),然后选择“Copy to ...”。

但实际上你可能想重新考虑这个结构。

答案 2 :(得分:1)

打开TortoiseSVN的Repo-browser(通过右键单击Explorer目录列表中的任意位置),导航到您的dev目录,右键单击它并选择“Copy to ...”。现在指定目的地。此操作将作为单个提交发生,因此将要求您输入日志条目。

我正在运行一个稍微旧一点的TortoiseSVN(v1.4.8),但我确信这个或类似的东西会起作用。

答案 3 :(得分:0)

您描述的设置通常称为“功能分支”。即您在一个单独的分支上开发一个新功能,一旦完成,您将它合并回主干(它始终保持稳定版本)。然后,存储库结构可能如下所示:

/trunk
/branches/featureX
/branches/featureY
/tags

然后开发一个功能就像这样:

  • 您为要开发的功能(主干副本)创建分支
  • 当您在该分支上开发该功能时,您可以定期将对主干进行的任何更改合并到您的分支中。这样做是为了使trunk和feature-branch之间的差异尽可能小
  • 一旦您的功能完成,您将分支重新集成到主干,然后删除功能分支

您可以在subversion bookTortoiseSVN help中找到有关此方案和相关命令的更多信息。