[英]“(.hg not found)” when cloning from cygwin-hosted repository via ssh to Mac and FreeBSD clients
我在Windows服务器上运行存档文件系统,该服务器执行自动异地复制,这使其成为托管Mercurial存储库并确保其安全性的理想位置。 这个文件系统只有Windows,所以我别无选择,只能使用Windows作为主机操作系统。
建立:
服务器('ungoliant',我的网络内部):
客户:
客户端问题(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 ...我的格式正确并描述了绝对路径。
我已经确认了以下所有内容:
我在这里难过。 Mercurial文档听起来像2.1.2应该能够从1.9.3父级克隆,因此它似乎不是版本冲突。
非常感谢你的帮助! 谢谢!
我最终得到的是一种解决方法而不是答案。
我对远程ssh命令处理的无知导致了误解。 如果我要ssh到机器,“哪个hg”导致cygwin感知二进制文件“/ usr / bin / hg”,但是如果我做了一个远程命令“ssh cjp @ ungoliant'hg'”,它返回了路径到Windows二进制文件我也安装在那台机器上。
我玩我的.bashrc文件,无法获得远程命令执行来优先处理cygwin二进制文件。 PATH甚至没有包含Windows PATH条目,所以我开始讨论这个问题并最终决定停止与它斗争。
我已经放弃了整个想法,因为我相信,即使我把它付诸实践,它也将是一个微妙的kludge,而且根本不值得我花在它上面。 我现在将我的存储库托管在BSD盒子上,并且我在Windows机器上有一个cron,它每24小时从该存储库拉到存档文件系统一次。 它很简单,就像一个零问题的魅力。
我有同样的问题,通过添加像这样的选项--remotecmd来解决它
hg clone --remotecmd /usr/bin/hg ssh://me@mywindowspc//cygdrive/m/hgrepo
当您尝试使用scp时,您将执行以下操作:
scp username@ipaddr:/cygdrive/d/test/foo.txt ./myDestFolder
不幸的是,hg不起作用。 而是尝试:
hg clone ssh://username@ipaddr/D:/testRepo
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.