我在一台 Windows 服务器上运行一个归档文件系统,该服务器执行自动异地复制,这使它成为托管 Mercurial 存储库并确保其安全性的理想场所。该文件系统仅适用于 Windows,因此我别无选择,只能使用 Windows 作为主机操作系统。
设置:
服务器('ungoliant',在我的网络内部):
- Windows 7 主存储库主机。
- Cygwin ssh 守护进程。
- 汞 1.9.3
- 使用“hg init”在 Windows 上创建了新的存储库“/cygdrive/j/mercurial/rcstudio”。
客户:
- Mac OSX 10.7.4 运行 hg 2.1.2
- FreeBSD 8.3 运行 hg 2.1.2
客户端问题(在 Mac 和 FreeBSD 上相同):
$ hg clone ssh://cjp@ungoliant//cygdrive/j/mercurial/rcstudio
running ssh cjp@ungoliant 'hg -R /cygdrive/j/mercurial/rcstudio serve --stdio'
remote: abort: There is no Mercurial repository here (.hg not found)!
abort: no suitable response from remote hg!
我已经确认路径和 URI 是正确的。那里绝对有一个“.hg”目录:
$ ls -la
total 0
drwxr-xr-x 3 cjp staff 102 Jun 5 17:41 .
drwxr-xr-x 41 cjp staff 1394 Jun 5 16:30 ..
$ scp -r cjp@ungoliant:/cygdrive/j/mercurial/rcstudio/.hg .
$ ls -la
total 0
drwxr-xr-x 3 cjp staff 102 Jun 5 17:41 .
drwxr-xr-x 41 cjp staff 1394 Jun 5 16:30 ..
drwxr-xr-x 5 cjp staff 170 Jun 5 17:41 .hg
$ ls -la .hg
total 16
drwxr-xr-x 5 cjp staff 170 Jun 5 17:41 .
drwxr-xr-x 3 cjp staff 102 Jun 5 17:41 ..
-rw-r--r-- 1 cjp staff 57 Jun 5 17:41 00changelog.i
-rw-r--r-- 1 cjp staff 33 Jun 5 17:41 requires
drwxr-xr-x 2 cjp staff 68 Jun 5 17:41 store
我发现了很多stackoverflow问题,其中问题是格式不正确的ssh URI ...我的格式正确并描述了绝对路径。
我已确认以下所有内容:
- hg 命令在服务器上和通过 ssh 都可以正常运行。
- 如果我粘贴绝对路径,我可以通过 ssh 确认 .hg 目录的存在。
- 其他通过 ssh 手动发出的 hg 命令成功(例如:ssh cjp@ungoliant 'cd /cygdrive/j/mercurial/rcstudio; hg diff;')。
- 在主机上,我可以从相同的绝对路径本地克隆。
我被难住了。Mercurial 文档听起来像是 2.1.2 应该能够从 1.9.3 父级克隆,所以它似乎不是版本冲突。
非常感谢您的帮助!谢谢!