我最近遇到了一个关于提交 subversion 合并结果的特别棘手的问题。我们的 Subversion 服务器是@1.5.0,我的 TortoiseSVN 客户端现在是@1.6.1。
我正在尝试将功能分支合并回我的主干。合并似乎工作正常;但是,提交失败并显示以下错误消息。
Commit failed (details follow):
File
'flex/src/com/penbay/invision/portal/services/http/soap/ReportServices/GetAllBldgsParamsByRegionBySiteResultEvent.as'
is out of date
'/svn/ibis/!svn/wrk/531d459d-80fa-ea46-bfb4-940d79ee6d2e/visualization/trunk/source/flex/src/com/penbay/invision/portal/services/http/soap/ReportServices/GetAllBldgsParamsByRegionBySiteResultEvent.as'
path not found
You have to update your working copy first.
我的工作主干是最新的。我什至已经将一个新的文件检出到另一个文件夹中,以确保没有任何本地杂乱无章的东西弄乱了合并。我对此进行了更多研究,我认为部分问题是用户错误。我认为我们的问题是:
- 我们有一些开发人员在 1.5 之前和之后提交了使用颠覆客户端的工作。我相信这有可能破坏合并信息。
- 在其他分支中,我们执行了部分合并。也就是说,我们并不总是在分支的根部执行合并。这是为了便于在同一分支内更新 Flex 和 .NET 工作。
- 我们在分支上执行了循环(自反)合并。这样做是因为我们有多个并行分支,并且我们希望使用主干中的最新代码定期更新我们的分支。
Subversion 书籍/团队明确不推荐所有这些内容。我们已经吸取了教训,现在知道了最佳实践。但是,我们首先需要合并并提交我们最新的分支。
纠正我们遇到的问题的最佳方法是什么?
删除主干和分支中的所有合并信息是一个可行的解决方案吗? 不,我已经这样做了,但它不能解决我上面遇到的错误。