svn提交失败:找不到文件:事务»52-1r«

Jen*_*ens 16 svn

最小可重现的故障如下:

> mkdir test && cd test
> svn co https://svn.server.com/repo .
> vim php/main.php
> svn commit
Sending        php/main.php
Transmitting file data ..svn: Commit failed (details follow):
svn: File not found: Transaction »52-1r«, Path »/php/main.php«
svn: Your commit message was left in a temporary file:
Run Code Online (Sandbox Code Playgroud)

令我困惑的是,这是一个干净的结账,没有人触及回购(svn update在提交之前没有区别)并且文件确实存在(我可以lsvim它).

这里唯一值得注意的是包含main.php的文件夹名称在r1和r52之间已经改变.

这个问题来自哪里,为什么当文件明显存在时,找不到该文件?我该如何解决这个问题?

Jar*_*uba 35

使用客户端创建标记时,通过复制到存储库中不存在多个所需文件夹结构级别的新路径,您也会收到此消息.(Jeez听起来很复杂.)

换句话说,我试图创建一个标签:

/项目/ MyAwesomeProject /标签/ myFirstTag

...但'tags'文件夹尚未存在.我希望客户能为我做这项工作; 手动创建'tags'文件夹是治愈方法.

  • `svn mkdir` 手动创建目录,或者使用 `--parents` 参数重新运行,如下所示:`svn copy --parents source destination -m "Message"`。 (3认同)
  • 这听起来像一个更好的错误消息本来是有益的:) (2认同)
  • 谢谢,刚刚遇到这个问题.有趣(或其他)它也会失败,如果目录已经存在,因为你刚刚创建了它的完整路径 - 我想我可能会看到这个的逻辑. (2认同)

Bha*_*akh 8

在选中 SVN 客户端底部的复选框后,这个问题就解决了。“创建中间文件夹”


Jen*_*ens 6

简答

我的客户端版本的subversion已经过时了.

答案很长

我在我的Mac上运行MacPorts,不知何故假设我安装了Subversion作为其中的一部分.唉,我没有,而且我的svn命令是Apple的默认值svn, version 1.6.17 (r1128011),它以subversion格式10运行.

存储库运行svn, version 1.7.13 (r1516569)以subversion格式12运行.

更新(即安装)我的本地svn, version 1.8.3 (r1516576)运行格式12以及svn upgrade我的本地存储库树到当前版本后,我可以毫无问题地提交所有更改.