如何解决如何使用Mercurial和SSH导入?
是否可以通过ssh使用mercurial导入模块?
我发现很少有人在go上使用Mercurial,而我发现的很少是与http一起使用。
解决方法
简短的回答是。
由go help importpath
显示或可用的here显示的文本描述了如何设置导入路径以暗示特定的版本控制系统。某些网站是事先已知的:
一些常见的代码托管站点具有特殊的语法:
[列表被删除,但是GitHub暗示使用Git协议,Launchpad暗示Bazaar,依此类推]对于托管在其他服务器上的代码,导入路径可以使用版本控制类型进行限定,或者go工具可以通过https / http动态获取导入路径,并从代码中的标记中查找代码所在的位置。 HTML。
因此,如果您无权访问或控制此类<meta>
标签,则应使用明确指定的VCS导入:
...表单的导入路径
repository.vcs/path
使用命名的版本控制系统指定给定的存储库(带或不带.vcs后缀),然后指定存储库内的路径。
也就是说,要告诉go get
必须使用Mercurial协议来托管example.com
,您可以使用:
import "example.com/me.hg/repo"
或:
import "example.com/me/repo.hg"
其中.hg
表示使用Mercurial。
一旦选择了特定的VCS,事情就会变得有些棘手:
当版本控制系统支持多种协议时,在下载时依次尝试每种协议。例如,Git下载尝试https://,然后尝试git + ssh://。
Go VCS导入器的source code包含详细信息。导入Mercurial存储库首先尝试https
,然后尝试ssh
。
如果可以使用<meta>
标记,则 that 可以提供更多详细信息,从而可以避免导入路径中相对笨拙的.hg
:
如果导入路径不是已知的代码托管站点,并且也缺少版本控制限定符,则go工具将尝试通过https / http获取导入,并在文档的HTML
中寻找标记。
如果您要对请求页面实施<meta>
响应,请阅读其余内容的全部,因为这会继续说明:
使用模块时,可以识别go-import元标记的其他变体,它比那些列出的版本控制系统优先。该变体使用“ mod”作为内容值中的vc,如:
<meta name="go-import" content="example.org mod https://code.org/moduleproxy">
此标记表示要从URL https://code.org/moduleproxy上可用的模块代理中获取路径以example.org开头的模块。有关代理协议的详细信息,请参见“ go help goproxy”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。