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



我在网络windows共享驱动器上使用svn。映射到驱动器号。最近我从svn 1.7.7更新到了1.8.0。这对许多回购都很有效。今天我创建了一个新的回购,并且一直有问题。没有其他人访问它。

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

Adding  (bin)  SWhwsystem.bit
Transmitting file data .svn: E720005: Commit failed (details follow):
svn: E720005: Can't set position pointer in file 'G:ProjektP2SWCASTLE6_Softw
areSVNCTE_5_HW_Self_Bip46dbtxn-protorevs18-18.rev': Zugriff verweigert

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

欢迎提出任何建议。感谢

我正在一个网络windows共享驱动器上使用svn。

不!糟糕的开发人员!不要给你甜甜圈!

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

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

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

我在一个子文件夹上遇到了这个问题。只有大约8个文件,没有权限问题,没有二进制文件。

奇怪的是,mv在个别文件上对我有效。不适用于src/文件夹。

我的当务之急是保存历史,而使用文件副本会失去这一点。一种变通方案是复制文件和文件夹,然后在SVN中删除它们。

 d:> md devexperimentsmodelA
 d:> svn add devexperimentsmodelA
 d:> svn cp devexperiments*  devexperimentsmodelA
 A         devexperimentsmodelA
 d:> svn mv  devexperimentsbuild.gradle  devexperimentsmodelA
 A         devexperimentsmodelAbuild.gradle
 D         devexperimentsbuild.gradle
 d:> d:> svn mv  devexperimentsgradle.properties  devexperimentsmodelA
 A         devexperimentsmodelAgradle.properties
 D         devexperimentsgradle.properties
 d:> dir /s/b  devexperiments
   (shows all your files and folders...)
 d:> svn commit  -m "move project to modelA sub-project" devexperiments
 Deleting       devexperimentsbuild.gradle
 Deleting       devexperimentsgradle.properties
 Adding         devexperimentsmodelAbuild.gradle
 Adding         devexperimentsmodelAgradle.properties
 Adding         devexperimentsmodelAsrc
 Committing transaction...
 Committed revision 24262.

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

 d:> svn rm devexperimentssrc
 svn: E155009: Failed to run the WC DB work queue associated with '...devexperimentssrc', work item 202 (dir-remove experiments/src 1 1)
 svn: E720145: Can't remove directory '...devexperimentssrcmainjavaaucomsomething': The directory is not empty.
 d:> svn cleanup dev
      ( didn't help...)
 d:> 
 d:> rd /s/q devexperimentssrc
 d:> svn status devexperiments
 D       devexperimentssrc
 d:> svn commit  -m "move project to modelA sub-project" devexperiments
 Deleting       devexperimentssrc
 Committing transaction...
 Committed revision XXXXX.
 d:> svn update dev
 Updating 'dev':

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

关于的错误消息

srcmainjavaaucomsomething

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

在这一点上,我选择放下文件夹,保持"干净"。回顾日志和状态消息输出,我发现有一个不受控制的文件,名为:default-log4j.properties.bak

我的工作假设是SVN只删除受soruce控制的文件。所以.bak就是这个孤儿。如果是这种情况,"权限被拒绝"听起来像是要报告的错误消息。

希望这能帮助你或下一个人。

最新更新