Hosting di più repository (svn, hg, git)


8

Di recente ho acquisito un server dedicato e ho bisogno di spostare diversi repository da un servizio di hosting di controllo del codice sorgente. Non avendo molta esperienza nell'amministrazione del server, tuttavia, non ho idea di come organizzarlo efficacemente. Quello che cerco -

  1. svn.host.com, hg.host.com, sottodomini git.host.com che saranno i root dei diversi repository, tramite i tasti SSH
  2. facile creazione di nuovi repository
  3. autenticazione utilizzando l'elenco utenti server unix, ma con autorizzazioni in base al progetto, anche accesso pubblico di sola lettura opzionale per alcuni repository

Sfortunatamente, qualsiasi termine di ricerca che provo su Google mi indirizza a soluzioni di hosting commerciale e non a guide su come eseguire il rollup delle mie. Ho bisogno di qualcosa come una soluzione ospitata ridotta ma senza la necessità di avere gli utenti in grado di creare i propri repository.

Qualche suggerimento, tutorial o soluzione di script su dove iniziare la ricerca? Una soluzione open source per un'interfaccia amministrativa per gestirla (o almeno per alcuni sarebbe perfetta ...

Risposte:


6

Uso solo Git, quindi cercherò almeno di aiutarti in questo:

Se non vedi problemi nell'amministrazione dei tuoi repository dalla riga di comando, la gitosi dovrebbe fare il trucco abbastanza bene.

Se hai davvero bisogno di un'interfaccia web, puoi dare un'occhiata a repo.or.cz ( http://repo.or.cz/w/girocco.git ) o gitorious ( http://gitorious.org/gitorious ) . Repo.or.cz è più brutto, ma è molto più facile da installare (gitorious è open-source, ma è anche il software che alimenta gitorious.org - non hanno molti incentivi per scrivere belle istruzioni)

Ecco un elenco più completo di opzioni: https://git.wiki.kernel.org/index.php/GitHosting

Ognuna di queste opzioni ti consentirà di creare facilmente nuovi repository.

Ora, un avvertimento: non dovresti mai MAI utilizzare l'elenco utenti del server unix per le autorizzazioni del repository. È abbastanza facile da scherzare e i risultati sono facilmente catastrofici (gitosis utilizza una semplice configurazione di file e tasti ssh. Dovrebbe fare il trucco per te).

Un'altra cosa, non vedo perché è necessario disporre di repository sovversione, HG e Git. La maggior parte dei progetti utilizza solo una di queste opzioni. Vuoi elaborare perché?


Ho diversi progetti, tenuti in diversi repository. Molti committenti non sono particolarmente esperti di tecnologia e quindi hg e git sarebbero un problema per loro, quindi continuo a svn per i progetti più aperti. Personalmente uso HG come SCM preferito. Ho anche ospitato un paio di progetti per i miei amici e alcuni di loro usano git come SCM preferito. Non c'è modo di accontentare tutti come sembra :)
Kornel Kisielewicz,

1
Inoltre, potresti approfondire i pericoli legati all'utilizzo dell'elenco utenti unix per le autorizzazioni repo?
Kornel Kisielewicz,

3
Perché usare unix user list per i repository è una cosa negativa: perdita di granularità, perdita di portabilità. Se è necessario modificare i repository su un altro server, sarà necessario spostare l'intero elenco utenti unix. Se si desidera delegare le autorizzazioni di amministratore, è necessario assegnare le autorizzazioni di root. Ora, su gitosi, se vuoi cambiare il server, devi solo clonare il repository. Se si desidera delegare le autorizzazioni di amministratore, è sufficiente aggiungere l'utente al gruppo gitosis-admin.
Tiago Fassoni,

just_testing, concordato, punti validi :)
Kornel Kisielewicz

2

SVN può essere eseguito con Apache WebDAV, in un vhost, utilizzando l'autenticazione unix e gli ACL a livello utente di Subversion. Non so nulla di mercurial o git, ma spero che possano essere agganciati anche a DAV.


1

Quando si desidera utilizzare SSH , in pratica è necessario limitare le chiavi modificando il authorized_keysfile sul server. Per Mercurial, i modi principali per farlo sono:

  • È possibile utilizzare lo contrib/hg-sshscript per limitare i comandi che le persone possono eseguire quando si accede con SSH. Il file contiene un'intestazione per spiegare come usarlo, ma sostanzialmente lo aggiungi

    $ command="hg-ssh path/to/repo"
    

    davanti alla chiave nel authorized_keysfile. Ciò limita la chiave in modo che possa essere utilizzata solo per push e pull nel repository indicato.

  • Puoi anche usare lo strumento mercurial-server di terze parti se vuoi qualcosa come gitois . Ciò consente di gestire gli utenti e i loro diritti di accesso modificando i file in un repository di amministrazione speciale.

Vedi il wiki Mercurial per altri strumenti simili per SSH.

Per HTTP , ci sono

  • Lo hgwebscript CGI o WSGI (Fast) integrato fornito con Mercurial. Questo gestisce push e pull, ma non consente la creazione di nuovi repository - accedi al server per quello.

  • Il progetto di terze parti RhodeCode . Questo ti offre un front-end Web simile a Bitbucket per Mercurial in cui puoi configurare gli utenti e i loro diritti di accesso. Supporta l'autenticazione LDAP, quindi puoi collegarlo al tuo database utente Unix esistente.

Vedere la pagina sulla pubblicazione di repository per ulteriori informazioni.


1

SCM-Manager potrebbe essere perfetto per le tue esigenze:

Il modo più semplice per condividere e gestire i tuoi repository Git, Mercurial e Subversion su http.

  • Installazione molto semplice
  • Non è necessario hackerare i file di configurazione, SCM-Manager è completamente configurabile dalla sua interfaccia Web
  • Non sono richiesti Apache e l'installazione del database
  • Gestione centralizzata di utenti, gruppi e autorizzazioni
  • Supporto immediato per Git, Mercurial e Subversion
  • API RESTFul Web Service completa (JSON e XML)
  • Interfaccia utente ricca
  • API Plugin semplice
  • Plugin utili disponibili (fe Ldap-, ActiveDirectory-, PAM-Authentication)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.