Come si imposta un repository git in cui alcuni utenti possono vedere alcune parti del codice sorgente e altri utenti possono vederlo tutto? Ho visto molte guide solo per dare accesso a determinati utenti, ma questo presuppone che tutti dovrebbero avere accesso in lettura. Ho anche sentito parlare di gitosi, ma non sono sicuro che lo supporti e non ha avuto alcun impegno in oltre un anno, quindi penso che sia morto.Come configurare un repository git in cui diversi utenti possono vedere solo alcune parti?
risposta
Il protocollo git nativo non supporta questo; git assume in molti posti che tutti abbiano una copia completa di del della storia completa .
Detto questo, un'opzione potrebbe essere quella di utilizzare git-subtree per suddividere parte del repository nel proprio repository di sottoinsieme e unirsi periodicamente.
Git non supporta il controllo di accesso nel repository. È possibile possibile implementare il controllo degli accessi sul repository da soli, utilizzando hooks, in particolare il gancio update
.
In breve: non è possibile. Git è il sistema di controllo della versione basato su snapshot (almeno a livello concettuale), non basato su changeset. Tratta il progetto (repository) nel suo complesso. La cronologia è una cronologia di un progetto, non un'unione di storie di file singoli (è più che l'unione di storie per file).
Uso ganci come update-paranoid
gancio in contrib o VREFs meccanismo di gitolite
, è possibile consentire o negare l'accesso al repository, è possibile consentire o negare accesso ai singoli rami. Puoi persino vietare qualsiasi commit che cambi le cose nella sottodirectory specificata. Ma il progetto è sempre trattato nel suo complesso.
Beh, c'è una cosa che si può fare: creare una directory che si desidera limitare l'accesso a in modulo, e limitare l'accesso a questo repository modulo.
Jörg ha già indicato che è possibile utilizzare gli hook per farlo. Esattamente quale hook (s) hai bisogno dipende dal tuo setup. Se si desidera ottenere le autorizzazioni su un repository a cui viene inviato il push, è necessario l'hook update
come ha detto. Tuttavia, se si tratta di un repository su cui stai effettivamente lavorando (commit e fusione), avrai bisogno anche degli hook pre-commit
e post-merge
. Lo githooks manpage (collegato a Jörg anche a questo) nota che in effetti esiste uno script nella sezione contrib che dimostra un modo per farlo. Puoi ottenerlo afferrando un git tarball o estraendolo dal repository gitweb git: setgitperms.perl. Anche se stai usando il gancio di aggiornamento, questo potrebbe essere un modello utile.
- 1. Come configurare un repository Git privato su GitHub? È possibile?
- 2. Come posso ospitare personalmente un repository Mercurial per diversi utenti?
- 3. come configurare un repository git migrato in gitolite
- 4. Come configurare i repository Git pubblici?
- 5. Vedere i repository in cui sono un collaboratore
- 6. Come posso configurare un repository GitBlit che impedisce agli utenti di spingere?
- 7. configurare repository git a Jenkins
- 8. non possono aggiungere git modulo al repository
- 9. Tentativo di configurare un repository SVN in Git
- 10. Come iniettare solo alcune parti della pagina PHP utilizzando PHP
- 11. Come configurare e clonare un repository git remoto su Windows?
- 12. git mantenendo 2 versioni dello stesso progetto, con diversi utenti su ciascuna
- 13. Same Django project diversi repository GIT
- 14. branching git-svn: come configurare git config
- 15. Magento - gli utenti possono vedere gli altri dati
- 16. git push solo parte di un repository
- 17. Come configurare un ambiente bash personalizzato per utenti diversi con puppet?
- 18. Come creare un repository git 'pull only'
- 19. Come configurare Pylint per fare solo alcune ispezioni
- 20. Due diversi repository Git nella stessa directory
- 21. Come configurare un repository git esistente per essere condiviso da un gruppo UNIX
- 22. git fork in un repository indipendente?
- 23. Invio di sottostrutture in un repository git
- 24. git: posso sottomettere un solo sottocampo di un repository?
- 25. Spingere un albero di sorgenti Git, non solo un repository
- 26. come riavviare un repository git
- 27. Creare un repository git che contenga un altro repository git
- 28. Sottostruttura di Git: utilizzare solo subrepository anziché intero repository
- 29. Estrarre solo una directory da un repository git
- 30. Mapping tra git committer e utenti SVN
Git non è basato su changeset ?? – orbfish
No, non lo è. Impegna gli oggetti puntati all'oggetto tree che rappresenta lo snapshot dello stato del repository. Il changeset è la differenza tra due alberi, di commit corrente e genitore. –