亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何通過 SSH 使用 mercurial 導入?

如何通過 SSH 使用 mercurial 導入?

Go
智慧大石 2022-07-04 16:28:13
是否可以使用 mercurial 和 ssh 導入模塊?我發現很少使用 mercurial 和 go,而我發現很少使用 http。
查看完整描述

1 回答

?
青春有我

TA貢獻1784條經驗 獲得超8個贊

簡短的回答是肯定的。

由 顯示go help importpath在此處可用的文本描述了如何設置導入路徑以暗示特定的版本控制系統。一些網站是預先知道的:

一些常見的代碼托管網站有特殊的語法:
[列表被截斷,但 GitHub 暗示使用 Git 協議,Launchpad 暗示 Bazaar,等等]

對于托管在其他服務器上的代碼,導入路徑可以使用版本控制類型進行限定,或者 go 工具可以通過 https/http 動態獲取導入路徑,并從 HTML 中的 <meta> 標記中發現代碼所在的位置。

因此,如果您無權訪問或控制此類<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 導入器的源代碼有詳細信息。Mercurial 存儲庫導入https首先嘗試,然后ssh.

如果你可以使用<meta>標簽,可以提供更多的細節,這樣你就可以避免.hg在導入路徑中相對笨拙:

如果導入路徑不是已知的代碼托管站點并且也缺少版本控制限定符,則 go 工具會嘗試通過 https/http 獲取導入并在文檔的 HTML <head> 中查找 <meta> 標記。

如果您正在實現對<meta>請求頁面的響應,請閱讀所有其余部分,因為這繼續說:

使用模塊時,go-import 元標記的附加變體被識別,并且優于那些列出版本控制系統的變體。該變體使用“mod”作為內容值中的 vcs,如下所示:

<meta name="go-import" content="example.org mod https://code.org/moduleproxy">

此標記意味著從 URL https://code.org/moduleproxy上可用的模塊代理獲取路徑以 example.org 開頭的模塊。有關代理協議的詳細信息,請參閱“go help goproxy”。


查看完整回答
反對 回復 2022-07-04
  • 1 回答
  • 0 關注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號