Transición de Subversion a Git, ¿cómo presiono a heroku con gracia?

Había estado usando un Subversion para mi control de fuente, combinado con git SOLAMENTE para implementar (push) en heroku. Mi patrón era: Actualizar la copy de trabajo local del último maestro en el repository de subversión remoto. Luego, haz que git commit y git push heroku (Git fue configurado para ignorar las cosas .svn). Esta copy de trabajo solo solía enviar a heroku, tenía otra carpeta de subversión para hacer un desarrollo en vivo y me comprometía con el repository remoto de subversión para el seguimiento.

Ahora he cambiado a git completamente. Realicé una import completa desde la subversión a un nuevo repository remoto de git. He estado trabajando con éxito en mi copy de trabajo local del git repo (origen) y estoy impulsando cambios cuando me conviene (también queueborando con otro desarrollador, pero básicamente ejecuto la operación).

Mi pregunta:

Ahora me gustaría volver a mi OTRA copy de trabajo de git que había estado utilizando previamente para enviar a heroku (que tiene .svn / cosas en él también). Estoy pensando en simplemente agregar mi nuevo repository de git como input de [origen] en .git / config … sacando los últimos cambios de mi nuevo control remoto de git, y presionando a Heroku, pero me pregunto si se volverá loco. .

Intentará fusionarse y confundirse ¿no? Y, incluso si el tirón funcionó, ¿se volverá confuso el control remoto heroku sobre un impulso que se originó a partir de un nuevo repository git?

Pude pegar (borrar) esa copy de trabajo (utilizada para presionar a heroku desde la subversión), y hacer un nuevo clon de mi nuevo repository de git, luego agregar heroku a .git / config. Pero me preocupa empujar a heroku todavía lo hará confundir, ya que solía presionar desde una copy de trabajo diferente.

¡Cualquier consejo sería genial!

¡Gracias por adelantado!

Solutions Collecting From Web of "Transición de Subversion a Git, ¿cómo presiono a heroku con gracia?"

Si lo entiendo correctamente, ¿quiere volver al repository anterior de SVN como copy de trabajo y desea conservar el antiguo historial de SVN?

Hay un par de opciones disponibles.

  1. Empuja los cambios recientes del nuevo repository de Git a Heroku, luego cambia al antiguo repository y extrae de Heroku. Esto te traerá el viejo repository actualizado.

  2. Cambie temporalmente la URL en el file de configuration del antiguo repository para que apunte a la ruta local del nuevo repository. Extraiga los cambios recientes desde allí y luego vuelva a la URL de Heroku cuando haya terminado. Esto también actualizará su antiguo repository.

La primera opción es la más conveniente, y la segunda es el path más largo. De cualquier manera, tendrá el mismo resultado neto de un repository local actualizado que contiene todo el historial. El nuevo repository excedente puede eliminarse en cualquier caso.

Editar: para abordar sus inquietudes sobre si Heroku se preocupará por el origen de la confirmación, en resumen, no el repository en Heroku es otro repository git que acepta confirmaciones de usuarios autenticados.

Siempre que las cnetworkingenciales sean correctas, el repository de origen no importa. Esto es lo bonito de DVCS: no hay un repository de control o corruptible. Es completamente posible que ahora clones desde Heroku en otra máquina y continúes trabajando desde allí. Siempre que sus cnetworkingenciales sean las mismas, el historial mostrará todas las confirmaciones que realice, pero no importa de dónde proceda.

Si lo que desea es simplemente usar un repository limpio para trabajar, el nuevo será el favorito. El anterior se puede eliminar sin efectos negativos.

Para comprobarlo, comtesting los valores hash SHA-1 de una confirmación en los repositorys nuevos y antiguos, y verás que son idénticos. El hash es único para todas las confirmaciones y se puede usar para verificar la integridad del código en todo momento. Nunca habrá más de un cambio para un hash dado.

  • Como nota al margen, el repository es portátil, ya que es completamente autónomo, y se puede mover libremente en su espacio de almacenamiento, o incluso se puede utilizar en el almacenamiento externo, como una unidad USB.