Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn “我如何更正?”;提交失败。文件xxx已过期。未找到xxx路径。”;_Svn_Merge_Commit - Fatal编程技术网

Svn “我如何更正?”;提交失败。文件xxx已过期。未找到xxx路径。”;

Svn “我如何更正?”;提交失败。文件xxx已过期。未找到xxx路径。”;,svn,merge,commit,Svn,Merge,Commit,我最近遇到了一个特别棘手的问题,关于提交subversion中合并的结果。我们的Subversion服务器是@1.5.0,我的TortoiseSVN客户端现在是@1.6.1 我正在尝试将一个功能分支合并回我的主干中。合并似乎工作正常;但是,提交失败,并显示以下错误消息 Commit failed (details follow): File 'flex/src/com/penbay/invision/portal/services/http/soap/ReportServices/GetAll

我最近遇到了一个特别棘手的问题,关于提交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之前和之后使用subversion客户机。我相信这有可能破坏合并信息
  • 在其他分支中,我们执行了部分合并。也就是说,我们并不总是在分支的根上执行合并。这是为了便于在同一分支内更新Flex和.NET
  • 我们在分支上执行循环(自反)合并。之所以这样做,是因为我们有多个并行分支,我们希望定期用主干中的最新代码更新分支
  • 所有这些都不是Subversion书籍/团队明确推荐的。我们已经吸取了教训,现在知道了最佳做法。然而,我们首先需要合并并提交我们最新的分支

    纠正我们遇到的问题的最好方法是什么

    删除主干和分支中的所有合并信息是可行的解决方案吗?
    不。我已经这样做了,但它不能解决我上面的错误。

    哦,孩子!这看起来糟透了!我能想到的唯一选择是工作副本已损坏

    尝试删除工作副本,执行新签出,然后再次执行合并


    如果这不起作用,那么记录一个bug。

    我一直无法找到一个令人满意的解决方案来解决这个问题;然而,我找到了一个不令人满意的解决办法

    我已经删除了trunk中的所有文件并提交了这些更改。然后,我将分支代码导出到主干中,添加所有文件,并进行了大量提交。这就产生了我的树干模仿树枝1:1的效果(这正是我想要的)

    不幸的是,这造成了很大的分歧,因为所有文件的历史记录现在都“丢失”。但由于时间限制,似乎没有其他选择


    我仍然对其他人可能有的答案感兴趣,因为我想知道根本原因是什么,以及将来如何避免它。

    我想我看到过类似的情况,当文件夹在服务器上移动时,但工作副本仍然绑定到旧的SVN文件夹结构。在你有机会合并分支之前,不确定是否有人在你的树干上移动过东西


    这是可能的吗?

    我今天也遇到了同样的问题,而且我没有做任何中间合并,所以从你的开场白来看,1可能适用-但是我已经从ubuntu中的svn客户端以及windows中的tortoisesvn中进行了提交。幸运的是,在我的情况下,没有对主干进行任何更改,因此我可以用分支替换主干。那么可能是不同的svn版本?这很令人担忧


    如果您使用svn移动/复制/删除功能,但在我的案例中没有丢失历史记录-我svn移动了主干,然后svn将分支移动到主干。

    我在尝试提交工作副本时遇到了相同的问题。我所做的是将Subversion报告为“未找到路径”的文件夹添加到忽略列表中。承诺(应该成功)。然后将相同的文件夹添加回Subversion。再次提交。

    分支和主干之间的
    svn:mergeinfo
    属性出现问题

    这导致了以下问题(请原谅我的命令行说明,因为我经常使用乌龟):

  • 您是在主干根级别还是子文件夹级别合并?根据我的经验,最好是在根级别进行,这样整个主干就会认为它已经被合并到了一起,而不仅仅是部分(在1.5.0中,这似乎让svn非常困惑)

  • 我的下一个问题是您是否使用了
    --reintergrate
    参数?我永远记不起如何在“乌龟”中实现这一点,但当您从分支返回主干时,应该使用此参数

  • 在重新整合之前,您是否已将主干合并到分支中?这有助于删除您在合并回时可能看到的冲突

  • 分支上是否有任何不在根级别的
    svn:mergeinfo
    属性?我发现这总是会引起问题。您可以通过转到
    svn-R pg svn:mergeinfo
    找到这一点。然后,您可以记录根目录下的位置和修订,如果发现它们相关,则通过
    svn merge--record only-r start:end
    将它们移动到根目录,然后使用
    svn pd svn:mergeinfo
    将它们从子根目录位置删除,然后需要提交这些更改

  • 完成所有操作后,请再次尝试合并


  • 我对此表示怀疑,但在您的工作目录上运行svn cleanup可能会有所帮助。

    在将一个有大量更改的分支合并回主干后,我遇到了同样的问题。我能看到的唯一两个解决方案是执行svn移动解决方案,该解决方案由diff工具提供,或者使用diff工具手动合并文件。但我确实找到了解决办法

    无法工作的计算机正在运行Subversion客户端1.6.5。我在一台装有Subversion 1.5.4的机器上做了完全相同的事情,它工作了!在这两台机器上,我都进行了1)干净的主干签出,2)svn合并…,以及3)svn提交。我的服务器是1.5.x


    希望这对某人有所帮助。

    我也遇到过类似的问题
    svn update
    svn resolved <the directory in conflict>
    svn commit
    
    svn resolve --accept=working <FILE/FOLDER NAME>
    svn cleanup
    svn update <FILE/FOLDER NAME>
    svn commit <FILE/FOLDER NAME> -m "Comment"
    
    svn update