¿Cuál es la forma menos dolorosa para transferir los cambios locales de Subversion a otra máquina?

StackOverflow https://stackoverflow.com/questions/573849

  •  05-09-2019
  •  | 
  •  

Pregunta

Estoy trabajando en un cambio en mi portátil. No está listo para ser enviado al repositorio todavía, pero me gustaría seguir trabajando en mi escritorio también. Mi conjunto de cambios es bastante grande y no sólo contiene modificaciones, sino que también contiene nuevos archivos y archivos borrados también.

Podría copiar la copia de trabajo local completa a otra máquina y obtener los cambios en el lugar. Sin embargo suena como una solución sucia (porque estoy contaminando metadatos en otra máquina), y estoy transfiriendo construir artefactos innecesariamente demasiado.

He intentado transferir archivos utilizando TortoiseSVN .patch pero sigue quejándose de "parche pertenece a una revisión anterior" (no es cierto y por qué te importa?) O "líneas no coinciden" (sí no lo hacen porque he cambiado ellos). No me gusta "pop-ups" error continuas experiencia.

No quiero instalar Cygwin, por lo que el parche de línea de comandos está fuera de cuestión.

Creo que la última opción sería bifurcan una nueva rama para esta función y entra en un bucle de "registro / actualización". Sin embargo, estos se muestran en la historia de la creación de la contaminación trac allí.

Cualquier mejores ideas? Ni nada me falta?

¿Fue útil?

Solución

La ramificación es la solución limpia. Y tiene la ventaja adicional de que le da una copia de seguridad mientras se está trabajando en este gran cambio. Por no mencionar, fácil sincronización de los cambios futuros entre las máquinas.

Sin embargo, es probable que pueda conseguir lejos con sólo comprimir el directorio de trabajo conjunto y deshacerse de ellos en algún lugar de la otra máquina.

Otros consejos

¿Ha intentado crear una nueva rama y el uso de SVN cambiar . Se le trasladará a una parte diferente del repositorio y mantener los cambios si se ramifican desde la revisión inicial de trabajo.

En cuanto a enfoques alternativos, se podría añadir GIT a la mezcla. modelo de control de código fuente distribuido de GIT permitiría a empujar conjuntos de cambios de ida y vuelta entre el escritorio y un ordenador portátil. Y desde GIT gestiona su información de cambios en el sistema de archivos local se compromete a que los estás haciendo a cada lado no aparecerían en la corriente que su sistema TRAC está supervisando.

Así que, básicamente ir 'fuera de línea con la subversión' y completar su trabajo utilizando GIT se compromete. Una vez que haya terminado, compruebe en todo el kit y kaboodle a su tronco subversión.

ramas de características son ligeros en Subversion y son perfectos para el aislamiento de operación de trabajo específico como este. Si está utilizando la subversión 1,5 o mayor entonces todo el proceso de sincronización y fusión es mucho más fácil de lo que era con 1.4.

Me gustaría crear una rama temporal para este propósito. De esta manera, sólo se están utilizando herramientas de SVN a su disposición y que no están contaminando el meta-meta o la copia de los artefactos.

Además, parece que se está comprobando en su código a intervalos espaciados y tener una rama también evitará la pérdida de datos en caso de que su disco duro falla.

No es la última opción, el primero:. Debe haber creado una función de la rama ya hace mucho tiempo, si en realidad hay tantos cambios

Puede hacer esto sigue haciendo una copia SVN-copia de trabajo a ramificar-directorio en el servidor, por lo que no es necesario un "bucle de registro / actualización", simplemente un registro, simplemente un actualización / interruptor, la verdad.

Al igual     SVN SVN copia MyWorkingCopy: // theserver / proyecto / ramas / características / mi-función de la rama

Si sólo tiene una réplica en su escritorio, me parece que Live Sync funciona perfectamente para ese escenario. Lo tengo configurado para replicar mi carpeta de obtención en mi portátil y dos escritorios, lo que me da exactamente el mismo estado en las tres máquinas. Y todo sucede de forma continua en el fondo.

O usted podría ir para una rama y asegurarse de que no se olvide que enviar cualquier cambio en la computadora portátil antes de pasar al escritorio. : -)

EDIT: En respuesta a los el comentario - Sí, es posible meter en problemas si se inicia la edición de archivos, mientras que las dos máquinas están en el proceso de sincronización. Lo peor que puede pasar es perder algunas ediciones en una de las máquinas. En la práctica, las posibilidades de que esto suceda son bastante pequeñas.

Bueno, la mayoría de la gente diría que si su "conjunto de cambios es bastante grande" que definitivamente debe comprobar los cambios en (en una sucursal en necesario)!

Puede intentar SVK . A partir de la entrada en el blog y el sitio SVK, escenario típico de uso es SVK

  • Espejo de repositorios remotos existentes,
  • a continuación, crear ramas en su máquina,
  • trabajar de forma local en estas ramas, y
  • cuando haya terminado, fusionarlos de nuevo en el maletero de espejo,
  • el último paso se actualiza de forma transparente el repositorio remoto.

No tengo ninguna experiencia práctica de utilizar SVK. Pero creo que se adapte a su situación. Esta entrada de blog describe en más detalles http: //www.bieberlabs .com / archives / 2004/11/30 / usando-svk /

creo una versión para Windows de SVK está disponible ( SVKWin32 ) y TortoiseSVN puede entonces utilizar la réplica local del repositorio de actualización / compromete.

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