SVN错误E720005,二进制文件的权限被拒绝

时间:2013-07-11 14:00:12

标签: svn

我在网络Windows共享驱动器上使用svn。映射到驱动器号。 最近我从svn 1.7.7更新到1.8.0。这适用于许多回购。 今天我创建了一个新的回购并不断遇到问题。没有其他人可以访问它。

我无法提交二进制文件。完全相同的东西适用于其他项目,但不是 对于这个新的回购。 添加文本文件效果很好,当我提交二进制文件时,如.png失败。

Adding  (bin)  SW\hw\system.bit
Transmitting file data .svn: E720005: Commit failed (details follow):
svn: E720005: Can't set position pointer in file 'G:\Projekt\P2SW\CASTLE\6_Softw
are\SVN\CTE_5_HW_Self_Bip46\db\txn-protorevs\18-18.rev': Zugriff verweigert

所以它说“权限被拒绝”,但我有权限,这是肯定的。 它也不是大小,我可以提交更大的文件,当它们是文本时。

非常欢迎任何建议。 感谢

2 个答案:

答案 0 :(得分:2)

  

我在网络Windows共享驱动器上使用svn。

没有!坏开发者!没有甜甜圈给你!

Windows上的权限非常棘​​手,尤其是涉及共享驱动器时。在此实例中,您不应使用file://协议。您将遇到权限问题。我甚至不在Unix系统上使用file://作为我的私有存储库。我始终启动svnserve并使用svn://作为协议。

在Windows上将svnserve设置为Windows服务很简单。有很多Windows软件包将Apache httpd和Subversion打包在一起,然后为您自动设置几乎所有内容。没有理由在Windows上使用共享驱动器并使用file://协议。

检查存储库中所有文件和子目录的权限。即使您是唯一使用此存储库的人,也可能存在某个权限问题。然后继续将所有内容设置为服务。

答案 1 :(得分:0)

我在子文件夹上有此问题。只有大约8个文件,没有权限问题,不是二进制文件。

奇怪的是,mv为我处理了单个文件。不适用于src/文件夹。

我的当务之急是保留历史记录,使用文件副本会丢失该历史记录。一种解决方法/替代方法是复制文件和文件夹,然后在SVN中将其删除。

 d:> md dev\experiments\modelA
 d:> svn add dev\experiments\modelA
 d:> svn cp dev\experiments\*  dev\experiments\modelA\
 A         dev\experiments\modelA\

 d:> svn mv  dev\experiments\build.gradle  dev\experiments\modelA\
 A         dev\experiments\modelA\build.gradle
 D         dev\experiments\build.gradle

 d:> d:> svn mv  dev\experiments\gradle.properties  dev\experiments\modelA\
 A         dev\experiments\modelA\gradle.properties
 D         dev\experiments\gradle.properties

 d:> dir /s/b  dev\experiments
   (shows all your files and folders...)

 d:> svn commit  -m "move project to modelA sub-project" dev\experiments\
 Deleting       dev\experiments\build.gradle
 Deleting       dev\experiments\gradle.properties
 Adding         dev\experiments\modelA\build.gradle
 Adding         dev\experiments\modelA\gradle.properties
 Adding         dev\experiments\modelA\src
 Committing transaction...
 Committed revision 24262.

您可能会注意到,在删除src文件夹之前,我已经完成了对复制的文件夹和文件的提交。发生这种情况时,删除src仍然存在问题:

 d:> svn rm dev\experiments\src
 svn: E155009: Failed to run the WC DB work queue associated with '...\dev\experiments\src', work item 202 (dir-remove experiments/src 1 1)
 svn: E720145: Can't remove directory '...\dev\experiments\src\main\java\au\com\something': The directory is not empty.

 d:> svn cleanup dev
      ( didn't help...)
 d:> 
 d:> rd /s/q dev\experiments\src
 d:> svn status dev\experiments
 D       dev\experiments\src

 d:> svn commit  -m "move project to modelA sub-project" dev\experiments\
 Deleting       dev\experiments\src
 Committing transaction...
 Committed revision XXXXX.
 d:> svn update dev
 Updating 'dev':

这已将文件夹和文件移动到src/下,并且所有内容都在SVN中提交,并且具有连续的历史记录。

关于

的错误消息
\src\main\java\au\com\something

可能意味着something/目录下有一个文件不是由SVN管理的(可以说是un-add)。

那时候,我选择删除文件夹并保持“干净”。回顾日志和状态消息输出,我发现有一个名为default-log4j.properties. bak 的不受控制的文件。

我的工作假设是SVN仅在源控制下删除文件。因此.bak是这个 orphan 。在这种情况下,“权限被拒绝”听起来像是要报告错误的错误消息。

希望对您或下一个人有帮助。