2010-03-04 26 views
6

Tengo repositorios, quiero tener dos "vistas": los desarrolladores pueden ver todo y los clientes solo deben ver ciertas ramas (etiquetadas o marcadas de otra manera).Control de versiones de Git - ¿Vistas en repositorios?

Pensé en hacer dos repsoitories A y B y en enumerar todos los archivos no necesarios como "archivos ignorados" en B, pero no estoy seguro de si esto funcionará. (No sé si A sincroniza los archivos ignorados de B o no, ¿quién sabe que puede responder?)

Por lo tanto, pensé que sería genial si pudiera hacer "vistas" (mostrar solo etiquetas X ..) en el repositorio, o algo similar que resuelve mi problema, pero afaik esto no es posible en git.

Saludos cordiales

Respuesta

2

Sin embargo, mi principal problema sigue siendo:
si clon repositorio de A a B y trabajo en repositorio B que veo todas las ramas del repositorio A (que se marcan como remots/origin/[branchName]) - por lo que si un cliente comienza GitWeb en Repositorio B él verá todas las ramas. Y eso es lo que no quiero

Puede administrar el acceso al repositorio con gitosis, e incluso el acceso por etiqueta o una rama con gitolite.

7

Ramificaciones en Git son locales.

Puede tener cualquier cantidad de sucursales localmente y enviar solo las relevantes a los repositorios correspondientes.

alt text http://nvie.com/wp-content/uploads/2009/12/Screen-shot-2009-12-24-at-11.32.03.png

La imagen superior de http://nvie.com/git-model es un buen flujo de trabajo, en el que los desarrolladores tienen muchas ramas, pero empujar sólo el desarrollo de la rama y del mismo modo el servidor de producción comprende solamente la rama principal.

+0

excelente enlace, gracias – tanascius

+0

¡Tus consejos de inserción me han ayudado mucho !, eso es exactamente lo que necesitaba. - Sin embargo, mi principal problema sigue siendo: si clono el repositorio A a B y trabajo en el repositorio B que veo todas las ramas del repositorio A (están marcadas como remots/origin/[branchName]) - así que si un cliente inicia GitWeb en el Reporte B verá todas las Ramas. Y eso es lo que no quiero – dayscott

1

Solo necesita un repositorio de clones. En este otro repositorio puede insertar solo la etiqueta que desee y las ramas que desee en la confirmación que desee.

+0

Flujo de trabajo para mi caso de uso "crear un clon parcial de un repositorio (por ejemplo, clientes)": 1. repositorio de desarrollo de clones 2. eliminar todas las ramas del clon que no desea mostrar a su cliente 3. push only branches which Debería ser visible para el cliente en su clon. Problema: 1. y 2. tomará MUCHO tiempo si tiene muchas ramas. Creo que encontré la solución a mi problema: http://git-wt-commit.rubyforge.org/#git-publish-branch – dayscott

Cuestiones relacionadas