git clone con diferentes permisos de archivo
-
29-09-2019 - |
Pregunta
En nuestro servidor son tres (en la realidad: miles de) archivos de texto almacenados en un repositorio git desnudo:. A.txt, B.txt, C.txt
- El usuario "admin" debe ver / editar todos ellos.
- Usuario "Foo" debe ver / editar "A.txt" y "B.txt", pero no se le permite ver el contenido de "C.txt".
- El usuario "invitado" sólo debe permitirse que ver / editar "A.txt".
Los tres usuarios deben ser capaces de clonar el repositorio Git con los archivos que está autorizado a editar.
¿Hay alguna posibilidad de hacer esto con git (... o mercurial)?
Idea: ¿Puedo hacer dos clones del repositorio git desnudo con la caja escasa función de git para el usuario "Foo" y "invitado" wich incluye sólo los archivos que se les permite ver?
Cualquier otro (más rápido) idea?
Solución
Usted debe:
- tiene tres ramas
- para invitados (con sólo los archivos
A.txt
) - los usuarios (con A y archivos B.txt)
- admin (con todos los archivos)
- para invitados (con sólo los archivos
Eso significa que frecuentan fusiones para actualizar las diferentes ramas y propagar los diferentes modificaciones.
Además, con gitolite , puede controlar quién puede tirar / empujar lo que (a un nivel de rama), que significa:
- un cliente sólo será capaz de tirar de la rama
guest
. - un usuario foo sólo será capaz de tirar de la rama
guest
y la ramausers
, mientras que ser capaz de empujar la ramausers
(o ambas ramas, si desea que un usuario para actualizar el contenido de la ramaguest
). - un administrador puede tirar / tirar de todas las ramas.