【发布时间】:2016-09-23 09:13:14
【问题描述】:
我使用 Ubuntu 16.04 和 Mercurial 3.7.3。我们的存储库只能作为 SMB 共享访问。我将共享克隆到我的主文件夹中的一个文件夹(我稍微简化了名称):
> hg clone "/run/user/1000/gvfs/smb-share:server=xyz.com,share=abc$/Repo" Repo
我的问题是我可以做任何事情(拉、提交等),但推送:
> hg push -v
pushing to /run/user/1000/gvfs/smb-share:server=xyz.com,share=abc$/Repo
searching for changes
2 changesets found
uncompressed size of bundle content:
876 (changelog)
724 (manifests)
586 a.txt
2869 b.txt
34900 c.rpm
37325 d.rpm
abort: Operation not supported: '/run/user/1000/gvfs/smb-share:server=xyz.com,share=abc$/Repo/.hg/store/journal'
如果我使用 sudo:
> sudo hg push -v
[sudo] password for kol:
pushing to /run/user/1000/gvfs/smb-share:server=xyz.com,share=abc$/Repo
abort: repository /run/user/1000/gvfs/smb-share:server=xyz.com,share=abc$/Repo not found!
提前感谢您的帮助!
更新
我在 Windows 7 中尝试了同样的方法,hg push 工作正常。
更新 2
SMB 共享位于 Windows 计算机上。
hg push 在 Ubuntu 上使用 --debug 选项的输出(我尝试推送的提交与上述不同):
> hg push -v --debug
pushing to /run/user/1000/gvfs/smb-share:server=xyz.com,share=abc$/Repo
query 1; heads
searching for changes
all remote heads known locally
listing keys for "phases"
checking for updated bookmarks
listing keys for "bookmarks"
listing keys for "bookmarks"
1 changesets found
list of changesets:
9ce3f6fbf7217a7eea79cf21ccbb2d7fc851cbd3
bundle2-output-bundle: "HG20", 4 parts total
bundle2-output-part: "replycaps" 155 bytes payload
bundle2-output-part: "check:heads" streamed payload
bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload
bundle2-output-part: "pushkey" (params: 4 mandatory) empty payload
abort: Operation not supported: '/run/user/1000/gvfs/smb-share:server=xyz.com,share=abc$/Repo/.hg/store/journal'
【问题讨论】:
-
SMB 服务器在哪个系统(Linux / Windows 等)上运行?
-
另外,如果添加
--debug作为参数提供有用的信息,你能试试吗?当您尝试推送时,dmesg是否显示任何有趣的东西?运行dmesg | tail -f可能有助于了解正在发生的事情。 -
@ManuelJacob 请看我的第二次更新。
-
@kol 挂载点很奇怪......如果你通过其他工具挂载你的 smb 文件共享,如
cifs-utils? -
我遇到了同样的问题并遵循了@Vincent 的建议。我可以用 cifs 推动我不能用 gvsd 的地方。我必须在 /etc/fstab 中添加一行,以便使用
user选项将 cifs 挂载为非 root,并为 samba 共享指定我的username。 (存在安全问题,我很乐意每次挂载时都输入密码,替代方案包括凭据文件,有关详细信息,请参阅 mount.cifs 文档)