我最近遇到了关于在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.
我的工作箱是最新的。我甚至检查了一个新的文件夹到另一个文件夹,以确保没有任何本地混乱混乱合并。我已经对此做了一些研究,我认为部分问题是用户错误。我认为我们的问题是:
Subversion书籍/团队明确不推荐所有这些内容。我们已经吸取了教训,现在已经了解了最佳实践。但是,我们首先需要合并并提交我们最新的分支。
纠正我们遇到的问题的最佳方法是什么?
删除主干和分支中的所有合并信息是否可行? 号。我已经完成了这个,但它没有解决我上面的错误。
答案 0 :(得分:26)
我刚遇到这个问题,原因似乎是目录已被标记为冲突。修复:
svn update
svn resolved <the directory in conflict>
svn commit
答案 1 :(得分:19)
我在1.6.2服务器,1.6.8乌龟上得到了这个。全部在Windows上,此分支中没有合并。
我重命名了一个目录,并以某种方式(可能是由于AnkhSVN)将目录中的两个文件标记为“已替换”而不是“正常”。对目录中的其他文件进行了一些额外的微小更改。
恢复标记为已替换的文件可解决问题。
答案 2 :(得分:5)
我也有同样的问题,我通过以下方法解决了同样的问题
svn resolve --accept=working <FILE/FOLDER NAME>
svn cleanup
svn update <FILE/FOLDER NAME>
svn commit <FILE/FOLDER NAME> -m "Comment"
希望这会对你有所帮助:)。
答案 3 :(得分:4)
我在尝试提交工作副本时遇到了同样的问题。我所做的是将Subversion报告为“路径未找到”的文件夹添加到忽略列表中。提交(应该成功)。然后将相同的文件夹添加回Subversion。再次提交。
答案 4 :(得分:4)
我刚遇到类似的问题,但没有任何分支或合并导致问题。我的解决方法是:
现在一切似乎都很好。
答案 5 :(得分:3)
我知道这是一个老帖子,但这个问题仍然经常发生。我发现解决它的最简单方法是重命名/删除受影响文件夹中的.svn / all-wcprops文件,然后运行更新并提交。
答案 6 :(得分:2)
我有同样的问题,不知道它背后的原因是什么,但我通过输入终端
来解决svn update
然后我承诺并开始工作!
答案 7 :(得分:2)
我今天遇到了同样的问题而且我没有做过任何中间合并,所以从你的开场白中只有#1可能适用 - 但是我已经从ubuntu的svn客户端和windows中的tortoisesvn做了提交。幸运的是在我的情况下没有对行李箱进行任何更改,所以我可以用树枝替换行李箱。可能不同的svn版本呢?这太令人担忧了。
如果使用svn move / copy / delete函数虽然在我的情况下没有丢失历史记录 - 我svn移动了trunk,然后svn将分支移动到trunk。
答案 8 :(得分:1)
我一直无法找到解决这个问题的满意方案;但是,我发现了一个令人不满意的解决方案。
我删除了trunk中的所有文件并提交了这些更改。然后我将我的分支代码导出到主干中,添加了所有文件,并进行了大量提交。这有影响我的树干模仿我的分支1:1(这是我想要的)。
不幸的是,由于所有文件的历史记录现已“丢失”,因此会产生很大的差异。但由于时间限制,似乎没有任何其他选择。
我仍然会对其他人可能拥有的任何答案感兴趣,因为我想知道根本原因是什么以及将来如何避免它。
答案 9 :(得分:1)
当我尝试提交一个已删除的包(包含各种java类但不再需要包中的任何内容)时,我遇到了同样的问题。
我的解决方案/解决方法是为了解决问题:
然而,有时不可能提交已删除的包(其中不包含任何内容)
我的解决方法:
我的最后一个提示......
但有时候,再一次同步软件包/项目会很简单,之后一切都会再次运行。
关于我的配置:
也许我可以用我的一些提示来帮助别人。
答案 10 :(得分:1)
在Mac 10.6.5上与SVN 1.6.5存在类似问题,升级到SVN 1.6.9并且提交成功。
答案 11 :(得分:1)
将一个分支与大量更改合并到我的主干后,我遇到了同样的问题。我能看到的唯一两个解决方案是执行Pacifika提供的svn move解决方案,或者使用diff工具手动合并文件。但我确实找到了解决方法......
无效的机器正在运行Subversion客户端1.6.5。我在 Subversion 1.5.4的机器上做了完全相同的事情并且它工作!在两台机器上,我做了1)干净检查中继线,2)svn merge ...,以及3)svn commit。我的服务器是1.5.x,这是值得的。
希望这有助于某人。
答案 12 :(得分:1)
哦,小男孩!这看起来很糟糕!我能想到的唯一选择是工作副本已损坏。
尝试删除工作副本,执行新的结帐并再次执行合并。
如果这不起作用,请记录错误。
答案 13 :(得分:0)
我遇到了同样的问题,抬起头来发现我已经将represotory中的目录从“/”更改为“/ trunk”而忘记在TortoiseSVN中执行“Switch”命令!
答案 14 :(得分:0)
我对此表示怀疑,但也许在您的工作目录上运行svn cleanup会有所帮助。
答案 15 :(得分:0)
答案 16 :(得分:0)
显然SVN不是一个非常可靠的程序。我遇到了同样的问题(使用SVN与Turtoise)并通过保存.cs文件的内容然后返回1修订版来解决它。这显示了这样的冲突: &#34;&LT;&LT;&LT;&LT;&LT;&LT;&LT; filename我的更改
======= 代码从存储库合并 修订&#34;
虽然我没有做任何特别的事情(只是一次撤回修订版)。
我用保存的内容替换了此文件的内容,保存,然后通过TortoiseSVN→Resolved选择。 然后我可以将修改提交到存储库。
答案 17 :(得分:0)
这似乎是svn:mergeinfo
属性在分支和主干之间摆脱wack的问题。
这导致了以下问题(原谅我的命令行说明,因为我使用了很多龟):
您是在路由根级别还是子文件夹级别合并?根据我的经验,总是最好在根级别进行,这样整个主干认为它已经合并而不仅仅是部分(这似乎在1.5.0中大大混淆了svn)
我的下一个问题是您使用的是--reintergrate
参数吗?我永远不会记得如何在乌龟中找到它,但是当你从树枝回到树干时你应该使用这个参数。
在重新集成之前,您是否已将主干合并到分支中?这有助于消除合并后可能出现的冲突吗?
您是否在分支上有任何不属于根级别的svn:mergeinfo
属性?我发现这总是会引起问题。你总是可以通过svn -R pg svn:mergeinfo
找到它。然后,您可以记录根目录下的位置和修订,如果您发现它们相关,则通过svn merge --record-only -r start:end <location>
将它们移动到根目录,然后使用svn pd svn:mergeinfo <location>
从子根位置删除它们您需要提交这些更改
完成所有操作后,请尝试重新合并。
答案 18 :(得分:0)
我认为在服务器上移动文件夹但是工作副本仍然绑定到较旧的SVN文件夹结构时,我看到了类似的东西。在您有机会合并分支之前,不确定是否有人在您的行李箱中移动了东西。
这是可能的吗?
答案 19 :(得分:0)
感谢Jamie Bullock为我工作
根据Jamie Bullock,
我刚遇到这个问题,原因似乎是目录已被标记为冲突。修复: