Come posso visualizzare solo alcune cartelle per alcuni sviluppatori con SVN
-
22-07-2019 - |
Domanda
Ho un repository con un sacco di cartelle e voglio che alcuni sviluppatori ottengano solo due o tre di quelle cartelle quando effettuano un checkout sul repository. Come posso fare in modo che le cartelle non vengano visualizzate per impostazione predefinita e quindi aggiungerle solo quando desidero concedere l'accesso.
Sto usando VisualSVN per il server SVN e quello che ho fatto è stato dato l'accesso in lettura al livello superiore, quindi ho negato l'accesso a ogni sottocartella, quindi ho cambiato il rifiuto di leggere / scrivere su cartelle a cui voglio che ogni sviluppatore acceda . Questo è un problema perché ogni volta che aggiungo una nuova cartella, devo entrare e negare l'accesso su di essa.
Ho provato a concedere in lettura / scrittura solo le sottocartelle, ma quando provano a fare il checkout sul genitore dà loro un errore. Voglio solo che gli sviluppatori debbano fare un checkout nella cartella di livello superiore.
Ecco cosa voglio:
RepoFolder (dev1 checks out this)
- References (this shows to dev1)
- Project1 (this shows to dev1)
- Project2 (this does not show to dev1)
- Project3 (this does not show to dev1)
- Project4 (this does not show to dev1)
Soluzione
Non penso che sia possibile fare esattamente quello che vuoi, ovvero lasciare che tutti guardino http : //example.com/svn/repos/ e, a seconda di chi sei, vedi cose diverse.
Sei sulla strada giusta negando l'accesso alle cartelle. Quello che puoi fare è creare una "vista" cartella i determinati sviluppatori. Supponiamo che tutti i tuoi progetti assomiglino
http://example.com/svn/repos/projects/
+- References
+- Project1
+- Project2
Aggiungi un'altra struttura di cartelle chiamata viste.
http://example.com/svn/repos/
+ projects/
+- References
+- Project1
+- Project2
+ views/
+- View1
Entrambe le viste
e View1
non sono altro che cartelle semplici. Il trucco è impostare svn: externals
proprietà nella cartella View1
in http://example.com/svn/ repos / progetti / Riferimenti e http://example.com/svn/repos/ progetti / Project1 . Quando qualcuno verifica View1
, controlla anche References
e Project1
sotto di esso. Spero che questo aiuti.