我已将我的C:\Users\Mike\Projects
目录注册为 VirtualBox 中的共享“项目”(完全访问、永久)。
在我的 Ubuntu 10.04 服务器 VM 中,我使用以下挂载命令:
sudo mount -t vboxsf -o uid=1000,gid=1000,rw,exec projects /home/mike/projects
共享目录已挂载。
mike@zsce:~$ ll
drwxrwxrwx 1 mike mike 4.0K 2011-02-01 10:32 projects
如果我在 Windows 上创建了一个文件,我可以在 Ubuntu 上查看并删除它,反之亦然。到目前为止一切顺利。
问题是我无法从这里的访客进行 svn checkouts。
mike@zsce:~/projects$ svn co svn://server/myproject/ ./myproject
svn: Can't move 'myproject/.svn/tmp/entries' to 'myproject/.svn/entries': Operation not permitted
我的目的是将 VM 用作本地开发服务器。使用 Windows 7 满足所有 IDE/电子邮件/Web/等需求,并仅使用服务器来测试和提交我的代码。Windows IDE 和 VM 的 Web 服务器将在同一源代码上运行。
但是,我最终无法写入该条目文件。
mike@zsce:~/projects/myproject/.svn$ ll entries
-r-xr-xr-x 1 mike mike 166 2011-02-01 10:34 entries
甚至root
如果不先执行就无法删除文件chmod -R 777
。
是什么赋予了?
答案1
升级到 svn 1.7 就可以了。参见关联。
虽然这是 vbox 的一个 bug,但看起来 subversion 团队正在积极修复它...
答案2
一个可能的解决方案是由 lipi 发布. 但这只是一场骗局。
svn_io_remove_file
对于那些迫切需要解决方法的人,下面是我刚刚添加到subversion-1.6.12 中的hacksvn_io_file_rename
。它对我来说有效,但仍需要dmode=755
在挂载选项中。
答案3
我找不到解决方案。经过广泛的 Google 搜索,发现其他人也遇到了同样的问题,但也无法找到解决方案。
我最终没有使用带有 vboxsf 的 VirtualBox 的共享文件夹功能,而是创建了一个 Windows 共享并将其安装在 Ubuntu VM 下。