我的SVN存储库中有以下架构:
/trunk
/branches/TESTING
/branches/STAGING
/branches/PRODUCTION
以下是我的正常版本控制工作流程:
这个工作流程99%的时间都很有效。然而,昨天出现了一种情况,我在找工作时遇到了一些麻烦。
自上次生产部署以来,我修复了一些错误,并处理了几个功能,所有功能都经过测试,然后合并并提交到主干。其中一个功能(由客户端)要求在6月17日上午部署。由于其他功能和错误并不重要,我等到6月17日将它们全部部署在一起。然后在6月17日下午,客户决定他们想要退出更改并等到以后的日期。
以下是我采取的步骤:
这很好用,很容易退出更改。
为了准备将来部署这些更改,我从合并功能分支的主干版本创建了一个分支。
但是,当我尝试将这个新分支合并回主干时,没有合并任何文件更改 - 唯一的更新是更新主干属性。
这似乎是版本控制的基本功能 - 退出更改并在将来能够重新合并它们 - 但我无法让它正常工作。还有其他方法可以使用SubVersion / TortoiseSVN吗?
答案 0 :(得分:1)
你创建了一个分支,根本没有做任何更改,然后尝试将该分支合并回来。这应该总是导致没有变化!如果分支复活了以后在主干上被删除的旧代码,它将导致各种问题,没有人会使用分支。
正如Lazy Badger在评论中建议的那样,恢复功能的最简单方法就是简单地恢复首先删除分支更改的修订版。
如果您想继续使用当前的工作流程,我建议您恢复旧的已删除分支,其中首先进行了更改。然后再将该分支合并到主干中。或者,您可以分支当前的主干,并在该分支中,还原删除功能更改的更改。然后你应该能够将你的新分支合并到主干。
答案 1 :(得分:-1)
我在您的工作流程中看到了一些错误,错误和误用
/branches
节点下的紧凑易读空间,你可以使用散列树而不是平面空间(类似/branches/YEAR/MONTH/BRANCHNAME
)