我在Ubuntu 10.10中使用EclipsePHP并尝试使用Mercurial(HG)来处理位于我的网络连接的登台服务器(samba共享)上的存储库。
当尝试从Eclipse(hg status
中)刷新存储库时,我得到了以下错误:abort: Operation not permitted: /media/sharename/myrepository/.hg/.dirstate*
。
在尝试找出错误的同时,我从终端转到网络共享并写了hg status
- 发生了同样的错误,所以它不仅发生在Eclipse中。我测试了CHMOD来自我的计算机和服务器的文件 - chmod 777 /media/sharename/myrepository/ -R
- 没有任何变化。
但是,当我不小心从repo目录中运行sudo hg status
时,Mercurial启动了烟花并且像魅力一样工作。
我的电脑究竟出了什么问题?为什么我不能在没有root的情况下运行我的hg
命令?
答案 0 :(得分:4)
您可以像这样安装网络驱动器。打开/ etc / fstab /,然后输入以下行。
// IP_OR_HOSTNAME / DIRECTORY_NAME / MOUNT_DIRECTORY cifs user = sambauser,pass = sambapassword,auto,exec,umask = 002,gid = 1000,uid = 1000,file_mode = 0777,dir_mode = 0777 0 0
希望它有效。
答案 1 :(得分:3)
chmod在这里不会帮助你我猜。服务器端的所有权和权限不会复制到客户端(服务器上没有unix扩展),或者两台计算机之间的UID / GID不同。您可以通过以下方式覆盖文件所有权:
mount -t cifs //SERVER/SHARE /MOUNTPOINT -o uid=USERNAME
这是来自内存,请查看man mount.cifs以获取详细信息。此外,在这种情况下,像NFS这样的替代网络文件系统可能会更好地为您服务,或者尝试使用sshfs。