我花了整整一天的时间解决这个问题,现在真的很绝望。
Windows 10是我的主要机器,在其中,我运行了一个Debian VM,作为一个完整的Linux Web栈使用。 Linux虚拟机运行一个SVN服务器,它本身工作得很好。 在我的Windows 10机器上(本地驱动器),我可以签出并提交。 我用我在SVN中configuration的唯一用户来完成。
这不是我的用例。 我想要的是使用我的Windows IDE直接操作Linux服务器上的文件。 我通过networking映射访问所述文件。
我已经在Linux VM上安装了SAMBA来实现这一点。 而这本身也有效。 我可以访问networking映射并完全控制它上面的所有文件。 授权设置很简单:我有一个group @fileadmins,我添加了我的个人用户,root和www-data(对于Apache)。 然而,为了保持这种情况的简单性,现在我正在根据帐户进行所有工作。
现在最后一部分:我喜欢把工作副本放在networking驱动器上。 这样我就可以直接操作这些文件,以及使用TortoiseSVN无缝地从Windows进行提交。 我知道这种情况不build议,但请注意,我是唯一的用户,这是一个非常有效的设置。 在过去的服务器上,我一直在为个人项目做这个工作。
出于某种原因,这次我无法工作。 以下是我收到的错误,例如,在进行首次结算回购时:
无法将'W:\ jd5.svn \ tmp \ svn-5FDD2730'移动到'W:\ jd5.svn \ pristine \ 18 \ 185e98e0088e20d84a5dfaaee60a22f73658439a.svn-base':访问被拒绝。
从有类似问题的人那里,我了解到TortoiseSVN正在创build这些特定于SVN的文件,具有一系列非常有限的权限,这意味着只读和Linux文件权限有限。
因此,几乎所有的答案都将重点放在configurationSamba以强制对新创build的文件(比如由TortoiseSVN创build的文件)提供更高的权限。 这是我目前的桑巴configuration文件:
[projects] comment = web apps for users in group *fileadmins* path = /var/www/apps valid users = @fileadmins create mask = 0777 directory mask = 0777 writable = yes force create mode = 0777 force directory mode = 0777 write list = +@fileadmins delete readonly = yes read only = No
正如你所看到的,我将有意地将权限放开,只是为了让某些东西起作用。 如果我现在从Windows上在networking驱动器上手动创build一个新的文本文档,它将有上面的权限应用于他们,这样的作品。
TortoiseSVN客户端创build的文件,特别是它所抱怨的文件如下:
根据它的外观,root可以完全访问所有文件,而且我以root用户身份使用networking驱动器。 我认为TortoiseSVN运行在相同的帐户下。
上面唯一奇怪的是有些文件的根目录是他们的组。 我试图通过Samba设置强制组,但是这导致了一个问题,使整个驱动器不可用。 无论哪种方式,因为根是所有者(作为用户),我不指望重要。
从我的angular度来看,我已经尽可能地扩展了权限,但是我仍然遇到权限错误。 我渴望学习我所忽略的东西。 我已经在多台机器上工作了十多年,但是完全停留在这一台。
我也有这个问题,但发现如果我重复更新过程几次,最终所有的文件都被更新。 我偶尔也需要做一个清理。
当我从1.7.11.xx升级Tortoise到1.9.0.xx时,这个问题就开始了