我在工作站上使用Ubuntu,并且每当尝试提交/推送到LAN中CIFS共享上的Mercurial存储库时,都会抛出此错误:abort: Operation not permitted: /media/repos/myRepo/.hg/journal.dirstate

但是,在任何导致此问题的命令前加上sudo,将使汞继续运行而不会给我造成任何错误。

我该怎么做就不必每次提交都要sudo

最佳答案

您的用户没有/media/repos/myRepo的写入权限。您可以使用ls -la检查所有者和权限。根据结果​​,您应该:

尝试使用chmod更改权限,以允许您的用户或组进行访问。

sudo chmod -R ug+w /media/repos/myRepo


ug+w表示为该组和所有者用户添加写权限,如果您与所有者位于同一组中,则可以使用该权限。否则,您可以尝试使用+w将其添加到所有用户,但这会不太安全。)

尝试使用chown将所有者更改为您的用户或组。

sudo chown -R <myuser>:<mygroup> /media/repos/myRepo


myusermygroup都是可选的)

另外,请确保在整个存储库上递归使用chownchmod。如果每次都重新创建journal.dirstate(我认为会发生这种情况),它将从.hg目录继承其权限,因此您对文件本身更改的所有权限都可能丢失。

10-08 11:09