2013-06-08 26 views
6

Esiste un sistema di controllo versione distribuito in grado di garantire l'accesso in lettura/scrittura agli utenti con livello di granularità della sottocartella?Controllo versione distribuito e controllo accessi

Ad esempio, se si desidera consentire l'accesso all'albero /foo per UtenteA e solo a /foo/bar per UtenteB?

UPD per quanto ho capito, questo è impossibile per Git (tratta il repository nel suo complesso solo). Che mi dici di Bazaar e Mercurial?

UPD ancora alla ricerca di una risposta migliore.

+0

Non sono abbastanza familiare con VCS distribuito, ma ho il sospetto che otterrete risposte migliori se si definisce se si intende "accesso in lettura" o "accesso in scrittura". – maxim1000

+0

@ maxim1000, intendevo sia il controllo di accesso in lettura che in scrittura. – fithu

+1

Non proprio una risposta, ma se non trovi alcuna soluzione con DVCS, puoi provare a fornire repository SVN con specifici diritti di accesso in lettura/scrittura e utilizzare vari bridge per DVCS. – maxim1000

risposta

-1

MODIFICA: Appena controllato i commenti, OP sta cercando sia l'accesso in lettura/scrittura, quindi ritirare questa risposta.

No, non è impossibile per Git. Il progetto Gitolite è molto maturo e ha fornito permessi di accesso dettagliati (permessi di repository/diramazioni/directory/file) per molti anni.

Un esempio specifico sulla limitazione modifiche a un singolo file si trova qui: http://gitolite.com/gitolite/vref.html#NAME

Alcuni esempi semplici sono here, e una documentazione più dettagliata sulle regole che definiscono è anche available here.

Edit: aggiunto un altro collegamento

+0

È piuttosto impossibile dare a qualcuno l'accesso in lettura solo a un sottostruttura di un repository Git. Quello era parte della domanda. – Novelocrat

+0

@Novelocrat, gitolite * può * farlo! [Controlla questo] (http://gitolite.com/gitolite/vref.html#NAME). Ha un esempio per disabilitare specificamente la spinta delle modifiche in un singolo file. – Subhas

+0

Questa è una limitazione per i push (scrittura), non per la lettura. Leggi il commento dell'OP. – Novelocrat

0

Una protezione da scrittura può essere aggiunto a Mercurial, Subversion o Git utilizzando SCM-Manager e il Path Writeprotect Plugin. È possibile definire un percorso e utenti o gruppi con accesso in scrittura ad esso.

+0

La domanda riguardava anche la protezione da lettura. – fithu

+0

La protezione di lettura non funzionerà per git e mercurial perché deve sempre clonare il repository completo.È possibile che lavori con un sotto-espositore invece che con una cartella? – DaSilva2010

+0

Altrimenti Subversion combinato con Apache può fare ciò che si desidera impostando le autorizzazioni di accesso nella configurazione di Apache. [http://svnbook.red-bean.com/nightly/en/svn.serverconfig.httpd.html#svn.serverconfig.httpd.authz.perdir.ex-3] – DaSilva2010

0

Come notato in un commento, @ maxim1000, il modo migliore per eseguire ciò potrebbe essere l'esecuzione di un server Subversion, che può eseguire un controllo di accesso dettagliato per letture e scritture, in base al percorso e per ramo . Se gli utenti desiderano la potenza di un client DVCS, possono quindi utilizzare git svn o hg svn per importare le parti del repository a cui hanno accesso in DVCS e interagire di conseguenza. Dovrebbe anche essere possibile per qualcuno con un accesso più elevato di unire le modifiche a una sottostruttura da una persona con un accesso inferiore senza perdere gli eccellenti strumenti di unione forniti dalle implementazioni DVCS.