代码之家  ›  专栏  ›  技术社区  ›  Ryan Taylor

如何更正“提交失败”。文件XXX已过期。找不到xxx路径。“

  •  42
  • Ryan Taylor  · 技术社区  · 15 年前

    我最近遇到了一个特别棘手的问题,关于合并颠覆的结果。我们的Subversion服务器是@1.5.0,我的Tortoissesvn客户端现在是@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. 我们让一些开发人员在1.5之前和之后提交与Subversion客户机的工作。我相信这有可能破坏合并信息。
    2. 在其他分支中,我们执行了部分合并。也就是说,我们并不总是在分支的根目录下执行合并。这是为了方便在同一分支中更新flex和.net。
    3. 我们在分支上执行循环(自反)合并。这是因为我们有多个并行分支,并且我们希望定期用主干中的最新代码更新我们的分支。

    所有这些都不是颠覆书籍/团队明确推荐的。我们已经吸取了教训,现在知道了最佳实践。但是,我们首先需要合并并提交最新的分支。

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

    删除主干和分支中的所有合并信息是一个可行的解决方案吗? 不,我已经做过了,但这并不能解决我正在克服的错误。

    20 回复  |  直到 6 年前
        1
  •  2
  •   svandragt    15 年前

    我今天也遇到了同样的问题,我还没有进行任何中间合并,所以从您的开放帖子中,只有1可能适用-但是我已经提交了来自Ubuntu的SVN客户端和Windows中的Tortoissesvn。幸运的是,在我的情况下,没有对主干进行任何更改,所以我可以用分支替换主干。可能是不同的SVN版本?这很令人担忧。

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

        2
  •  26
  •   j b    14 年前

    我刚遇到这个问题,原因似乎是某个目录被标记为有冲突。修复:

    svn update
    svn resolved <the directory in conflict>
    svn commit
    
        3
  •  19
  •   Simon D    14 年前

    我在1.6.2服务器1.6.8乌龟上得到这个。在Windows上,此分支中没有合并。

    我重新命名了一个目录,并且不知何故(可能是由于ankhsvn)目录中的两个文件被标记为“已替换”而不是“正常”。目录中的其他文件还有一些附加的小改动。

    恢复标记为已替换的文件修复了问题。

        4
  •  5
  •   Augustine P A    10 年前

    我也有同样的问题,我通过以下方法解决了同样的问题

    svn resolve --accept=working <FILE/FOLDER NAME>
    svn cleanup
    svn update <FILE/FOLDER NAME>
    svn commit <FILE/FOLDER NAME> -m "Comment"
    

    希望这对你有帮助:)

        5
  •  4
  •   David    15 年前

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

        6
  •  4
  •   Tim Murphy    15 年前

    我刚刚遇到了类似的问题,但是没有任何分支或合并来引起这个问题。我的解决办法是:

    • SVN将我的工作文件夹(包括未版本化的文件)导出到临时文件夹。
    • 将工作文件夹重命名为备份。
    • SVN检查后备箱。
    • 将临时导出文件夹中的所有文件夹复制到新工作文件夹上。
    • Svn提交。

    现在一切似乎都很好。

        7
  •  3
  •   R M    12 年前

    我知道这是一篇老文章,但这个问题仍然经常发生。我发现解决它的最简单方法是重命名/删除受影响文件夹中的.svn/all wcprops文件,然后运行更新并提交。

        8
  •  1
  •   Sir Rippov the Maple    15 年前

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

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

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

        9
  •  1
  •   Ryan Taylor    15 年前

    我一直找不到一个令人满意的解决办法;但是,我找到了一个不令人满意的解决办法。

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

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

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

        10
  •  1
  •   Community kfsone    7 年前

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

    不工作的机器正在运行Subversion客户机1.6.5。我在机器上做了同样的事情 第1.5.4版,它起作用了 你说什么?在这两台机器上,我都做了1)清理主干,2)SVN合并…,3)SVN提交。我的服务器值1.5.x。

    希望这能帮助别人。

        11
  •  1
  •   maxwoj    14 年前

    Mac 10.6.5上的SVN 1.6.5也有类似的问题,升级到SVN 1.6.9,提交成功。

        12
  •  1
  •   George Vardikos    8 年前

    我也有同样的问题,不知道是什么原因造成的,但我通过在终端上键入来解决。

    svn update
    

    然后我承诺,并繁荣它的工作!

        13
  •  0
  •   Steve J    15 年前

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

    有可能吗?

        14
  •  0
  •   Andrew Cox    15 年前

    这看起来像是 svn:mergeinfo 摆脱了树枝和树干之间的混乱。

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

    1. 您是在主干根级别还是在子文件夹级别进行合并?根据我的经验,最好是在根级别进行,这样整个主干就认为它已经被合并到而不仅仅是部分(在1.5.0中,这似乎使SVN非常混乱)。

    2. 我的下一个问题是你是否使用 --reintergrate 参数?在乌龟中,我永远都记不起如何做到这一点,但是当您从一个分支返回主干时,应该使用这个参数。

    3. 在你重新整合之前,你已经将主干合并到分支中了吗?这有助于消除合并时可能看到的冲突?

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

    5. 完成所有操作后,请尝试再次合并。

        15
  •  0
  •   Gren    15 年前

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

        16
  •  0
  •   Sworup Shakya    14 年前

    我遇到了同样的问题,打了我的头,发现我已经把represetory中的目录从“/”改为“/trunk”,忘了在tortoissesvn中执行“switch”命令!

        17
  •  0
  •   David    11 年前

    哇,这个问题花了我一段时间来解决,因为我在Eclipse中使用SVN。最后,唯一对我有用的就是提交所有不受影响的文件,然后(在Eclipse关闭的情况下)重命名项目目录,并从SVN中重新签出项目。很高兴它现在能正常工作!

        18
  •  0
  •   Dick    10 年前

    显然,SVN不是一个非常可靠的程序。我也遇到了同样的问题(使用带有turtoise的SVN),通过保存.cs文件的内容,然后返回1个修订版解决了这个问题。这显示了这样的冲突: “<<<<<<<文件名我的更改

    不受欢迎的= 从存储库合并的代码 修订版

    虽然我没有做过什么特别的事情(只做过一次修订)。

    我将此文件的内容替换为已保存的内容,保存,然后通过Tortoissesvn_解决选择。 然后我可以将修改提交到存储库。

        19
  •  0
  •   Chisey88    8 年前

    当我尝试提交一个已删除的包(包含各种Java类,但不再需要任何包)时,我遇到了同样的问题。

    我的解决方案/解决方案以解决问题:

    • 我归还了整个包裹
    • 先删除内容
    • 提交已删除的内容
    • 最后,我再次提交了已删除的包(在大多数情况下都是有效的):-)

    但是,有时无法提交已删除的包(不包含任何内容)。

    我的工作方法:

    • 我在包中创建了一个虚拟类
    • 之后我重复了上面提到的步骤

    我最后的暗示…

    但有时,再次同步包/项目会很简单,之后一切都会再次正常工作。



    关于我的配置:

    • 食霓虹
    • SVN接口:Javahl(JNI)1.8.13(R1667537)
    • VisualSVN服务器管理器,版本:3.3.1



    也许我可以帮别人一个提示。

        20
  •  0
  •   Taruna    6 年前

    谢谢杰米·布洛克,这是我的工作

    按照杰米·布洛克的说法,

    我刚遇到这个问题,原因似乎是某个目录被标记为有冲突。要修复:

    1. 支持向量机更新
    2. 奇异值分解
    3. 支持向量机提交