0

我正在网络 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

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

任何建议都非常受欢迎。谢谢

4

2 回答 2

2

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

不!糟糕的开发商!没有甜甜圈给你!

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

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

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

于 2013-07-11T14:16:44.910 回答
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 管理的(add可以这么说)。

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

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

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

于 2018-08-10T00:25:17.397 回答