2010-06-29 16 views
13

Stiamo considerando di cambiare il VCS in git o in sovversione. Preferirei passare a git, ma la sovversione ha una bella funzionalità che non vedo in git: per controllo di accesso alla directory.Permessi per directory su git

Al momento abbiamo repository project1, project2 in cvs, con autorizzazioni diverse. Ci piacerebbe avere un unico repository, con due directories project1 & project2 con permessi diversi. È fattibile con git com'è con svn?

Sono a conoscenza di sottomoduli, che potrebbero probabilmente raggiungere questo obiettivo, ma l'obiettivo per noi è essere in grado di eseguire un singolo commit con le modifiche nel progetto1 & project2.

Principalmente abbiamo problemi di IP e vogliamo essere sicuri che alcune persone non possano leggere (non solo spingere) alcune directory. Quindi, è pronto per la sfida o dovrò usare git-svn?

Grazie

risposta

5

è fattibile con un repo centrale con accesso (push/pull) gestita da gitolite.
Vedere its features.

Se si combinano con sottomoduli (che siete a conoscenza), si sarebbe solo gestire per-repo o per l'accesso ramo e comunque impegnarsi sia project1 e project2 (con due commit in caso di subrepo: vedi this question)

Se ti ostini a lavorare con un pronti contro termine (anche se è necessario impostare dei dati che potrebbe evolvere con la propria ciclo di vita, che li dovrebbero rendere buoni candidati per i moduli), quindi le caratteristiche gitolite comprendono:

file/dir NOME restrizioni basate

Oltre al ramo di nome di restrizioni basate, gitolite permette anche di limitare quali file o directory possono essere coinvolti nei cambiamenti di essere spinto

dpk menzioni nei commenti che quest'ultima caratteristica (il file/dir name restrizione) è dettagliato nel file conf/example.conf di Gitolite.

+0

Sì, l'ho visto, ma mi sembra che le autorizzazioni qui riguardino il blocco dei push, non la lettura sulla clonazione. Riesco a malapena a vedere come la roba da clonazione si sposerebbe con questo tipo di diniego della lettura. – Wam

+0

@Wam: per la lettura, * devi * usare l'approccio del sottomodulo: gitolite impedirà qualsiasi clonazione e estrazione da un repository con gli ACL corretti (e un sottomodulo è un repository Git proprio). In altre parole, bloccherà il pull al livello repo o branch. – VonC

+0

sì, ma poi perdo la funzione "single commit/single push/single pull" – Wam