如何更正"提交失败.文件xxx已过期.找不到xxx路径."

Rya*_*lor 45 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/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.
Run Code Online (Sandbox Code Playgroud)

我的工作箱是最新的.我甚至检查了一个新的文件夹到另一个文件夹,以确保没有任何本地混乱混乱合并.我已经对此做了一些研究,我认为部分问题是用户错误.我认为我们的问题是:

  1. 我们让一些开发人员在1.5之前和之后的一些事务中使用subversion客户端.我相信这有可能破坏合并信息.
  2. 在其他分支中,我们已经执行了部分合并.也就是说,我们并不总是在分支的根处执行合并.这是为了便于在同一分支内更新Flex和.NET工作.
  3. 我们在我们的分支上执行了循环(反身)合并.之所以这样做是因为我们有多个并行分支,我们希望定期使用trunk中的最新代码更新我们的分支.

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

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

删除主干和分支中的所有合并信息是否可行? 不,我已经这样做但它没有解决我上面的错误.

j b*_*j b 26

我刚遇到这个问题,原因似乎是一个目录被标记为冲突.修理:

svn update
svn resolved <the directory in conflict>
svn commit
Run Code Online (Sandbox Code Playgroud)


Sim*_*n D 19

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

我重命名了一个目录,不知怎的(可能是由于AnkhSVN)目录中的两个文件被标记为"被替换"而不是"正常".对目录中的其他文件进行了一些额外的微小更改.

恢复标记为已替换的文件可解决问题.

  • 我也遇到了这个问题 - 你的解决方案为我解决了这个问题.:) (2认同)

Aug*_*P A 5

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

svn resolve --accept=working <FILE/FOLDER NAME>
svn cleanup
svn update <FILE/FOLDER NAME>
svn commit <FILE/FOLDER NAME> -m "Comment"
Run Code Online (Sandbox Code Playgroud)

希望对你有帮助 :)


sva*_*agt 3

我今天遇到了同样的问题,并且我没有进行任何中间合并,因此从您的开篇文章来看,只有#1可能适用 - 但是我已经从 ubuntu 中的 svn 客户端以及 Windows 中的 tortoisesvn 进行了提交。幸运的是,就我而言,没有对树干进行任何更改,因此我可以用树枝替换树干。那么可能是不同的 svn 版本?这真是令人担忧。

如果您使用 svn move / copy /delete 功能,尽管在我的情况下没有丢失历史记录 - 我 svn 移动了主干,然后 svn 将分支移动到主干。