version control - trabajar - ¿Qué estrategia usas para sincronizar tu código cuando trabajas desde casa?
trabajar online para google (23)
¿Alguien ha recomendado rsync? Use un cliente rsync para enviar la diferencia entre los archivos. Puede aplicar estos diffs para actualizar su archivo. Para la transferencia de archivos más pequeña, probablemente sea la mejor idea.
En mi trabajo , actualmente tengo mi entorno de desarrollo dentro de una máquina virtual . Cuando necesito trabajar desde casa, copio mi VM y cualquier base de datos que necesito en una unidad USB externa de tamaño portátil. Después de aproximadamente 10 minutos de copiado, guardo el disco en mi bolsillo y regreso a casa, copio la máquina virtual y las bases de datos en mi computadora personal y estoy listo para trabajar. Sigo los mismos pasos para recuperar el trabajo conmigo.
Entonces, si cuento la cantidad total de tiempo que paso esperando que los archivos terminen de copiarse para poder llevar el trabajo a casa y volver a traerlo, ¡se trata de alrededor de 40 minutos! Tengo una conexión VPN con mi trabajo desde mi casa (siempre que internet esté en ambos sitios) y una velocidad de internet decente (8mbits hacia abajo / arriba) pero encuentro que el Escritorio remoto está demasiado lento para que yo quiera trabajar en mi VM directamente.
Entonces, al analizar qué otras opciones tengo o cómo podría mejorar mi opción existente, me interesa saber qué estrategia usa o recomienda para trabajar en casa y mantener el código / entorno sincronizado.
EDITAR: Preferiría una opción en la que no tenga que comprometer mis cambios en el control de versiones antes de dejar el trabajo, ya que me gustaría hacer comentarios descriptivos significativos en mis commits, comprometerme tomaría más tiempo que solo copiar mi VM en un portátil ¡manejar! lol También preferiría una solución donde mi entorno de desarrollo también se mantenga sincronizado. Habiendo dicho eso, todavía estoy muy interesado en tus propias soluciones, incluso si no resuelven mi problema exactamente como me gustaría. :)
Dependiendo del software de VM que esté utilizando, ¿por qué no configura 2 discos de VM diferentes? Mantenga su perfil de usuario / archivos dev en un disco y el sistema operativo y otros programas que cambian rara vez en el otro.
De esta manera, probablemente pueda salirse con la suya con solo copiar la imagen de disco más grande cuando haya instalado algo nuevo y termine copiando solo un disco virtual que contenga su trabajo.
Me conecto de forma remota a la oficina SVN, o VPN en el escritorio remoto o a mi máquina de desarrollo o de escritorio y sigo trabajando. Es muy raro que sincronice cualquier archivo, pero cuando lo hago es generalmente con DropBox (aunque realmente no se puede hacer eso con archivos grandes).
Me imagino que la mayor parte del tiempo dedicado a copiar involucra la base de datos. ¿Está bien? Si es así, ¿no puede simplemente conectarse a su base de datos de trabajo desde su casa utilizando su conexión VPN?
Todavía podría copiar sus archivos de origen (o utilizar un sistema de control de código fuente como otros han sugerido), pero esto solo tomaría una fracción del tiempo.
Programa de escritura, que sincronizará todos sus datos a través de Internet, y luego apague su computadora, por lo que al final del día la iniciará y se irá a casa, y cuando regrese a casa, todos los datos ya están allí.
Si todo lo que necesita es una máquina virtual de su computadora de trabajo, entonces puede montar un catálogo remoto (usando nfs o smb) donde se almacenan los archivos de su máquina virtual y ejecutar esa máquina virtual desde allí. Esto debería ser más rápido que usar el escritorio remoto.
Simplemente configure un servidor SVN en casa, reenvíe el puerto de su enrutador y continúe con su vida. rsync es también una solución buena y rápida. Solo recuerde usarlo a través de SSH.
Simplemente uso una unidad portátil portátil externa y hago todo mi trabajo en eso. Todas mis PC lo tienen configurado en la misma letra de unidad. Así que no copiar nada ... No he intentado ejecutar máquinas virtuales de esta manera, sin embargo, pero no veo ninguna razón por la que no funcione.
Trabajamos con un equipo distribuido, por lo que es vital que todos tengan acceso al repositorio de código fácil y seguro. Para esto, usamos SVN sobre ssl / https. Funciona de manera excelente, confiable y segura.
Tuve un problema similar. Pero, afortunadamente, teníamos configurado un servidor de control de fuente (TFS), por lo que solía trabajar únicamente desde las máquinas virtuales locales almacenadas en mi disco externo y luego de verificar los archivos requeridos en el TFS cuando era necesario.
Una solución del Sistema de Control de Versión Distribuida / Descentralizada se adaptará a sus necesidades, Git, Bazar, Mercurial, darcs ... tiene muchas alternativas.
Usamos Citrix y luego hago una conexión de escritorio remoto a mi PC en el trabajo. No es la solución más rápida del mundo, pero elimina el problema de mantener actualizadas dos o más estaciones de trabajo.
Utiliza un software de control de versiones como SVN, SourceOffSite, etc. Solo tienes que registrar todos tus cambios y obtener los últimos cambios cuando quieras sincronizarlos.
O puede usar Windows Live Sync -> https://sync.live.com/foldersharetolivesync.aspx
me estoy conectando a la red de trabajo de la oficina y descargo la versión de lates de forma svn uso el servidor Dev mysql así que soy como una antera computadora en la red de la oficina
no ha especificado el sistema operativo y el sistema de virtualización, pero si está trabajando con imágenes de máquinas virtuales que se pueden montar, por ejemplo, XEN en Linux, puede montar la imagen y sincronizarla mediante rsync.
yo uso dropbox
Aquí hay una solución que uso.
- Configure una VPN entre la red de la oficina y la computadora portátil.
- Instalar el Servidor VisualSVN
- Cargue todos los proyectos en el SCC.
Cuando en la oficina miro un proyecto, trabajo en él y luego lo reviso. Cuando en mi casa o en el mundo me conecto a la oficina a través de VPN, reviso mi proyecto, hago lo mío y luego lo reviso. A través de VPN conexión también puedo RDP a mi dev cajas y / o servidores.
Espero que esto ayude. ¡Buena suerte!
También fue un problema para mí. Entonces, la compañía me compró una computadora portátil y hago mi trabajo en ella, en casa o en cualquier otro lugar.
También uso DropBox, y esa es la clave porque es importante mantenerlo simple.
En general, es mejor si puede tener algún tipo de capacidad de escritorio remoto, porque esto le permitirá usar una configuración de estación de trabajo estándar, y permitirá una conexión constante a los recursos de red (servidor de base de datos, servidores comerciales como flujo de trabajo, etc.).
Trabajar sin conexión, en mi opinión, está bien para ciertas tareas, pero en general existen obstáculos para los sistemas que se conectan a otros recursos (a menos que planee mover esos recursos a su casa).
Tengo una configuración donde una carpeta en una máquina se sincroniza con una carpeta en otra máquina. cualquier cambio en el contenido de una máquina también se realiza en la otra máquina en un minuto. Para que pueda sincronizar la carpeta de nivel superior de sus archivos de trabajo, y luego sincronizar con su máquina doméstica. Lo que me gusta de esto es que la sincronización es completamente transparente. En cuanto a la experiencia del usuario, simplemente estoy usando el sistema de archivos. Sin aplicación externa para interactuar.
Utilizo Live Sync Live Sync de Microsoft para esto. Deberá crear una identificación de Windows Live para usar este sistema. Funciona para Windows y Mac.
Dropbox y Live Sync de Microsoft son buenas opciones que ya se han mencionado. Mi favorito personal es Live Mesh , también de Microsoft. La gran característica que lo pone por encima de los otros dos, en mi opinión, es la capacidad de especificar qué carpetas se sincronizan en qué computadoras y dónde se encuentran las carpetas. Así que, por ejemplo, sincronizo mi carpeta Visual Studio 2005 / Projects entre mi máquina de trabajo y mi cuadro dev en mi casa, y sincronizo Visual Studio 2008 / Projects entre mi máquina virtual de gig lateral y mi cuadro dev de inicio.
tengo un macbook con todo mi software de desarrollo en él; cuando voy a trabajar, lo inicio en el modo firewire de destino y lo enchufo en mi macpro de trabajo con el procesador rápido, la conexión lan, el monitor grande, etc. de esta manera nunca tengo que salir de mi carpeta de usuario, pero tengo acceso a todas las software y hardware disponibles en el trabajo.
¿Por qué no solo usas el control de versión? A DVCS? Encuentre aquí un tutorial sobre DVCS para usuarios de Windows (muy simple) http://codicesoftware.blogspot.com/2010/03/distributed-development-for-windows.html