Pregunta

Tenemos dos desarrolladores en la misma red cerrada (uf, estúpido gobierno), otro desarrollador a un par de minutos conduciendo y un cuarto desarrollador al otro lado del país.El correo electrónico, ftp y los medios de eliminación son métodos posibles de transferencia para personas que no están en la misma red.

Soy uno de los dos desarrolladores de redes cerradas, considéranos la ubicación "maestra".

¿Cuál es la mejor configuración/patrón de Mercurial para grupo?¿Cuál es la mejor manera de transmitir cambios hacia/desde los desarrolladores remotos?Como estoy a cargo, pensé que tendría que mantener al menos un repositorio maestro con otro repositorio local en el que pueda desarrollar.Cada otra persona sólo debería necesitar un clon del maestro.¿Es esto correcto?¿Supongo que esto también me hace responsable de la fusión?

Como puede ver, todavía estoy tratando de entender el control de versiones distribuidas.No creo que haya otra forma de hacer esto con la situación de conectividad.

¿Fue útil?

Solución

Los usuarios fuera de la red pueden realizar parches, y/o utilizar correo electrónico para enviar las actualizaciones al repositorio principal o a alguien, como usted, para fusionarlas.Las otras personas internas pueden tener copias locales, como usted, y realizar fusiones, pero si tiene estos parches fuera de la red, podría ser mejor que una persona se encargue de ellos para que nadie se confunda, pero eso es algo que tendría que hacer. Considérese.

Al sincronizar de otra manera, crearía un parche y enviaría un correo electrónico o enviaría una unidad flash a los desarrolladores remotos para parchear su sistema.Vas a necesitar una buena comunicación con el hombre del equipo, agradezco no estar en tu lugar.

Esas son mis únicas sugerencias... bueno, lo obvio: ¡consígales una conexión VPN!Me encantaría saber cómo va, qué planes se estabilizan en un ritmo semanal, etc.

Otros consejos

Los parches son una solución sencilla y versátil.

Para moverse por grupos más grandes de cambios (especialmente cambios binarios y fusiones), Mercurial ofrece paquetes binarios.Un paquete es básicamente el material binario que se envía a la red cuando lo haces. hg push, pero aquí está capturado en un archivo.

Imaginemos que de alguna manera he conseguido un clon (mediante una unidad flash, un DVD, etc.).Llámalo upstream.Luego hago un segundo clon, lo llamo devel.Todo mi desarrollo lo hago en devel y realizar muchas confirmaciones, fusiones, etc.Dado que Mercurial se distribuye, puedo hacer todo esto sin conexión.

Para ver qué conjuntos de cambios faltan en upstream

% hg outgoing ../upstream

Cuando tengo algo que enviar, puedo usar

% hg bundle changes.hg ../upstream

para obtener un archivo binario comprimido que contiene los conjuntos de cambios, incluidos todos sus metadatos.Luego puedo grabar este archivo en un CD y enviarlo por correo...

El destinatario del paquete puede hacer

% hg incoming changes.hg

para ver la lista de cambios y

% hg pull changes.hg

para descomprimir y agregar los conjuntos de cambios a su repositorio.Entonces lo más probable es que tenga que fusionarse; esto es exactamente como si lo hubiera extraído directamente de su repositorio a través de HTTP o SSH.

Nota la upstream El repositorio solo se usa como una forma conveniente de recordar qué conjuntos de cambios ya se encuentran en el repositorio ascendente.También puede simplemente anotar el ID del conjunto de cambios y utilizar hg bundle --base al agrupar para especificar el conjunto de cambios base (común).Ver hg help bundle o mira en la wiki.

Correcto.La única forma en que algo ingresa a la red cerrada es a través de una unidad flash.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top