将重命名的文件夹从SVN分支合并回主干,将原始命名文件夹保留在主干中

时间:2010-07-16 22:25:50

标签: svn merge branch rename

一点背景,因为这可能有点令人困惑:我正在开发的项目是大多数代码相同的项目,但有些文件会根据我们部署的平台而改变。为此,根文件夹包含所有不会更改的“核心”文件,然后每个平台都有一个目录,其中包含更改的文件。所以有一个baz/foo.c和一个bar/foo.c,因为foo.c会根据它是部署到baz还是bar而发生变化。 Makefile等使这一切变得神奇。

问题是,我正在开发一个基于qux的新平台(我们会说bar),所以我一直在分支机构工作,并在bar目录。现在我想将该目录重命名为qux,但在合并时保留原始bar,因为该平台仍然存在。因此,我的最终目标是,在合并后的主干中,在我干预之前有bazbar,以及我的更改的新文件夹qux(目前在分支在bar文件夹下,并基于原始bar)。

有一种简单的方法吗?如果我在我的分支中将bar重命名为qux,那么当我将其合并回主干时,它似乎会尝试删除bar,这不是我想要发生的事情。我是否需要在我的分支中创建新文件夹qux,从bar将文件复制到其中,然后将bar恢复到原始状态?或者有更好的方法吗?

修改:要清楚,如果我将文件复制到新文件夹中,bar文件夹中已有更改需要还原。

2 个答案:

答案 0 :(得分:1)

由于bar不会在主干中消失,因此请勿重命名。保持原样,并创建一个新的qux文件夹,然后将bar文件夹的内容复制到其中。复制不会删除bar中的任何内容。根据新平台适当修改qux。然后,当您将功能分支合并回主干时,您将拥有原始的,未更改的bar和新的qux

如果使用Subversion创建副本(而不是普通文件系统副本),您甚至可以获得qux文件的先前历史记录,但您可能不需要。{/ p>

答案 1 :(得分:0)

可能会遗漏一些东西,但听起来应该是这样:

  1. 按原样保留分支机构,您已完成开发,但如果需要,您可以参考其历史记录。
  2. 干净地检查行李箱
  3. 将修改后的条形文件夹复制为主干
  4. 下的新“qux”文件夹
  5. 将qux添加到主干
  6. 提交