2012-09-13 13 views
3

我奮力設置爲去包本地Mercurial庫。對圍棋建立一個Mercurial庫套餐

所有善變的包目錄可以在以下網址下:

hg clone https://server.example.com/go-packages/packagename 

這工作正常:

https://server.example.com/go-packages/ 

我可以通過克隆包。

當我要與go命令行安裝軟件包:

go get server.example.com/go-packages/packagename 

我收到以下錯誤:

package server.example.com/go-packages/packagename: unrecognized import path "server.example.com/go-packages/packagename" 

但是,當我這樣做是爲http://golang.org/cmd/go/解釋說:

go get server.example.com/go-packages/packagename.hg 

它完美。

在上述文檔中,他們討論了一個<meta>標誌。所以,我創建了一個index.html的有以下條目:

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
     <meta name="go-import" content="import-prefix hg repo-root"> 
     <title>packagename</title> 
    </head> 
    <body> 
     <h1>packagename</h1> 
    </body> 
</html> 

更新:

當我做了wget -O- https://server.example.com/go-packages/packagename/?go-get=1 --no-check-certificate我得到:

!DOCTYPE HTML> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
     <meta name="go-import" content="import-prefix hg repo-root"> 
     <title>packagename</title> 
    </head> 
    <body> 
     <h1>packagename</h1> 
    </body> 
</html> 

更新2

我看見了,那我的內容錯了(複製粘貼錯誤)現在我將其更改爲:

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
     <meta name="go-import" content="server.example.com/go-packages/packagename hg https://server.example.com/go-packages/packagename" /> 
     <title>packagename</title> 
    </head> 
    <body> 
     <h1>packagename</h1> 
    </body> 
</html> 

哪裏go-packages是包含Mercurial庫packagename的目錄。

但還是go get server.example.com/go-packages/packagename是行不通的。

+0

我會嘗試'content'屬性'server.example.com hg https:// server.example.com/go-packages/packagename'' – VonC

回答

3

看着this issue後(並附code review),並this thread

  • 請確保您的「進口前綴汞回購根」遵循正確的格式
    • 進口別名前綴必須是 包被獲取與「go get」的前綴或精確匹配。
    • full-repo-root必須是包含 方案的存儲庫的完整URL根目錄,而包含「.vcs」限定符的存儲庫的而不是
    • vcs是「git」,「hg」,「svn」等中的一個。
  • 確保頁面從https://<import>?go-get=1取的確是你index.html頁面(不index.htm或任何其他DirectoryIndex指令,如果這是在一個httpd.conf文件實例安裝)

If the import-alias-prefix is not an exact match for the import, another HTTP fetch is performed, at the declared root (which does not need to be the domain's root).

For example, assuming that " camlistore.org/pkg/blobref " declares in its HTML head:

<meta name="go-import" content="camlistore.org git https://camlistore.org/r/p/camlistore" /> 

... then:

$ go get camlistore.org/pkg/blobref 

... looks at the following URLs:

https://camlistore.org/pkg/blobref?go-get=1 
http://camlistore.org/pkg/blobref?go-get=1 
https://camlistore.org/?go-get=1 
http://camlistore.org/?go-get=1 

Ultimately it finds, at the root (camlistore.org/), the same go-import :

<meta name="go-import" content="camlistore.org git https://camlistore.org/r/p/camlistore" /> 

... and proceeds to trust it, checking out git //camlistore.org/r/p/camlistore at the import path of " camlistore.org " on disk.

+0

查看我的更新。您的輸入做了一些更改,但仍然無法正常工作。 – reen