¿Cómo / dónde realizar una copy de security del pago y envío local de un DVCS entre los envíos al server?

¿Usted (y su equipo) realizan una copy de security de sus cajas locales de su depósito DVCS (Git, Mercurial) entre los empujes? ¿Cómo lo haces? Si tu disco duro fallara después de escribir un montón de código que aún no era estable (por lo tanto, aún no se ha modificado), ¿cómo lo recuperarías?

Soy paranóico.

Además de nuestro repository central (configurado con git init --shanetworking --bare ), tengo otro repository espejo configurado en una unidad de networking:

 cd /network/drive git init --bare cd /local/repo git remote add backup --mirror /network/drive git push backup 

De vez en cuando presiono para hacer una backup de backup , y dado que es un repository duplicado, básicamente es solo un clon completo de mi repository local.

Sí, debes utilizar un sistema de copy de security normal entre tus compromisos.

De hecho, el control de versiones no tiene nada que ver con las copys de security . Con esto quiero decir que debe implementar un sistema de respaldo para todos los empleados, ya sean desarrolladores, secretarias, gerentes u otra persona. Se debe realizar una copy de security de los escritorios, independientemente de si están usando un sistema de control de versiones.

Veo un sistema de control de versiones como una herramienta crucial utilizada para estructurar el desarrollo de software y permitir que muchas personas trabajen juntas. Es una herramienta esencial cuando necesita mantener varias versiones paralelas, o cuando necesita investigar un error. Es posible que pueda utilizar un sistema de respaldo para descubrir cuándo se introdujo por primera vez un error, pero no puede usar un sistema de respaldo para mantener varias twigs paralelas. Por lo tanto, un sistema de control de versiones le brinda más que un sistema de respaldo, y un sistema de respaldo complementa un sistema de control de versiones al ocuparse de todos esos files no comprometidos.

Ahora, por supuesto, querrás hacer copys de security de los repositorys. Con el control de versión distribuida, esto es muy fácil: simplemente envía desde su repository local a otro repository en un server de respaldo remoto. De esta forma, el VCS se encargará de bloquear y garantizará que tenga un estado constante en el server de respaldo.

Es curioso que hagas esta pregunta porque acabo de tener una reunión la semana pasada cuando escuché que algunas personas estaban usando commit / push de código no ejecutable incluso no comstackble en el repository autorizado solo para savelo. (Nota: es diferente de lo que dice Mark). Parecía tan malo para mí y, por lo tanto, en el path de la Integración Continua, decidimos instalar un server de respaldo basado en rsync para que los desarrolladores se dieran count de cómo son las herramientas complementarias de control de versiones y respaldo.

Todavía no he instalado el server, pero si tiene una máquina Unix de repuesto con un server ssh ejecutándose en ella, un simple crontab podría hacer el trabajo, por ejemplo, usando ssh y rsync (si tiene una partición montada en NFS, lo haría incluso ser más simple):

 $ crontab -l # mh dom mon dow command 0,15,30,45 * * * * if `ping -c 1 machine.domaine.com > /dev/null 2> /dev/null` ; then export SSH_AGENT_PID= "`pgrep -l ssh-agent | cut -d' ' -f1`" ; export SSH_AUTH_SOCK= "`/usr/bin/find /tmp -path '*ssh-*' -type s -user name -group gname -name '*agent*' 2> /dev/null`" ; /usr/bin/rsync -avz -e ssh --quiet /home/name/src name@machine.domain.com:/home/name/backup/src ; fi 

(Supongo que puede iniciar session en la máquina utilizando ssh, que tiene un ssh-agent ejecutándose y ha utilizado ssh-add).

De esta forma, cada 15 minutos, se guarda el trabajo en curso, y como rsync es bastante rápido para descubrir qué ha cambiado, no debe hacer que su estación de trabajo sea demasiado lenta. En caso de que su disco falle, simplemente inicie session en machine.domain. com, use sus cnetworkingenciales de respaldo-ed 🙂 y continúe trabajando …

Espero que ayude

Aclamaciones,
Christophe.

= La security es principalmente una superstición. No existe en la naturaleza. – Helen Keller =