我在网络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
就是这个孤儿。如果是这种情况,"权限被拒绝"听起来像是要报告的错误消息。
希望这能帮助你或下一个人。