2014-05-22 9 views
5

Ive sta cercando di capire quale sia il layout/struttura di cartelle standard per codice go/workspace quando non si utilizza github.Struttura per lo spazio di lavoro go quando si utilizza un repository git privato

posso vedere come go get funziona quando va a prendere progetti GitHub, ma assumedly miei progetti git non avrebbero la struttura {github.com}/{username}/{projectname} a cui fa riferimento go get e come viene Costruii sul disco dopo che fai go get

Cosa layout e git get url dovresti avere quando usi i tuoi repository privati ​​git?

+1

Ho cercato di trovare queste informazioni su vari siti di go, ma nessuno di loro sembra andare nel dettaglio del mondo reale. (es. mix di github e repository personali) – Jacob

+3

Se non hai intenzione di aprirlo o renderlo "go get", puoi fare quello che vuoi, ad es. '$ GOPATH/src/dev/null/hubbabubba/1/3/8/mio/strano/www.google.com/pacchetto/name'. – Volker

+2

Fantastico, suppongo che ti sto chiedendo cosa fai se vuoi che vada a prenderlo? – Jacob

risposta

6

Il pacchetto non contiene alcun riferimento al luogo in cui è memorizzato. Hai solo:

package mypackage 

Quindi, si può avere la versione locale nella propria struttura, come Volker ha sottolineato nel suo commento. Questo è il percorso di importazione di utilizzare nei vostri progetti:

import "my/custom/path/mypackage" 

Poi si può aprire fonte e mettere mypackage su GitHub. Questo permetterà tutti gli altri a farlo con il comando go get, ma saranno utilizzando il github.com importazione:

import "github.com/myuser/mypackage" 

Questo funziona perfettamente bene a meno che non si vuole aprire-source pacchetti che le importazioni my/custom/path/mypackage. In tal caso, dovresti considerare di ristrutturare i tuoi percorsi in modo da utilizzare gli stessi percorsi di importazione di github degli utenti del tuo pacchetto.

3

Da go help importpath:

Per il codice ospitati su altri server, i percorsi di importazione possono essere qualificati con il tipo di controllo di versione, o lo strumento GO può dinamicamente prendere il percorso di importazione su https/http e scoprire dove il codice risiede su da un tag nel codice HTML.

di dichiarare la posizione del codice, un percorso di importazione della forma

repository.vcs/percorso

specifica il repository dato, con o senza il suffisso .vcs, utilizzando il sistema di controllo versione di nome, e quindi il percorso all'interno del repository . I sistemi di controllo versione supportati sono:

Bazaar .bzr Git .git Mercurial .hg Subversion svn

Poi ho belive è possibile impostare il proprio server git con GitLab o GoGits, allora il vostro percorso di importazione sarà il tuo dominio del server.

Ma se si dispone di un repository privato con github o bitbucket, il pacchetto sarà go-get-able. Basta eseguire un normale "go get" e ti verrà chiesto di inserire la tua password.

1

Per siti di hosting di repository sconosciuti, go get recupera prima l'URL HTTP/HTTPS e controlla se ha un meta tag che collega al repository git/hg/bzr.

Vedere "Remote import paths".

Problemi correlati