【发布时间】:2011-01-04 22:37:18
【问题描述】:
所以我有一个问题让我在 Subverion 中感到非常悲伤。我在一个应该保持活动状态的分支中工作,直到我的功能集在重新集成之前开发完成。不幸的是,我已经完成的事情现在被企业认为是“关键任务”,他们希望我从分支中挑选出该功能并将其推送到主干中,以便质量检查人员能够获取它。
我遇到的问题是我在一个单独的目录中开发了该功能,该目录是我在完全处理其他事情时创建的。因此,为了合并我的功能所需的剩余代码,我首先需要引入我之前所做的目录创建。
以下是我需要删除的修订:
20 版
一个 ./project_foo
./project_foo/not_required_file.txt
24 版
./project_foo/required_file.txt
因此,为了将其放入后备箱,我必须执行以下操作:
svn merge -r20:21 -> 这让我得到了目录以及 not_required_file.txt
svn revert project_foo/not_required_file.txt -> 删除我不想要的文件
svn merge -r24:25 -> 这得到了我需要的文件
这很有效,并且在我完成开发并运行 svn merge --reintegrate 时将这些东西放入了我想要的树干中,但我(显然)没有从修订版 20 中取回 not_required_file.txt,因此遇到了树冲突在它上面(来自我后来所做的进一步更改)。
因此,我正在寻找一些关于在这些情况下该怎么做的指导。
- 有没有一种方法可以只合并我想要从特定修订中获得的特定更改?
- 有什么方法可以获取我在重新集成整个分支时故意遗漏的更改?
- 能否在主干中创建所需的目录结构,然后仅合并文件更改?
- 我可以创建另一个分支,将所需的更改移到那里,重新集成该分支,然后从主干拉到我原来的分支吗?
谢谢。
【问题讨论】: