我最近遇到了一个关于在subversion中提交合并结果的特别粘性问题。我们的Subversion服务器是@ 1.5.0,我的TortoiseSVN客户端现在是@ 1.6.1。如何更正“提交失败,文件xxx已过期,找不到xxx路径”。
我想合并一个功能分支回我的树干。合并似乎工作正常;但是,提交失败并显示以下错误消息。
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之前和之后一些提交Subversion客户端的工作。我相信这有可能破坏合并信息。
- 在其他分支中,我们执行了部分合并。也就是说,我们并不总是在分支的根部进行合并。这有助于更新同一分支中的Flex和.NET工作。
- 我们在我们的分支上执行循环(反射)合并。这是因为我们有多个并行分支,我们希望定期更新我们的分支,并使用trunk中的最新代码。
所有这些东西都不被Subversion书籍/团队推荐。我们已经吸取了教训,现在知道最佳做法。但是,我们首先需要合并并提交我们最新的分支。
纠正我们遇到的问题的最佳方法是什么?
会删除干线和分支中的所有合并信息是否可行? 不,我已经做到了这一点,但它并没有解决我得到的错误。
我也应该这样做,但是,考虑到这是发生在时间紧缩期间,我错误地将我的分支导出到主干并进行修改,从而失去了历史记录。幸运的是,自那以后我没有遇到过这个问题。 – 2009-07-14 20:39:54
我认为下面@ simon-d的答案是真正的解决方案。这更像是一个解决方法:) – 2011-09-15 13:39:26