Pregunta

Yo había estado utilizando una subversión de mi control de código fuente, combinado con git SOLAMENTE para desplegar (push) a heroku. Mi patrón era: actualizar la copia local de trabajo del último maestro en el repositorio de subversión remoto. Entonces cometen git y git push heroku (Git fue ajustado a ignorar cosas Svn). Esta copia de trabajo sólo se utiliza para empujar a heroku, yo tenía otra carpeta subversión para hacer el desarrollo en vivo, y comprometerse con el repositorio remoto de la subversión para el seguimiento.

Ahora he cambiado a GIT totalmente. Hice una importación completa de la subversión a un nuevo repositorio Git remoto. Yo he estado trabajando con éxito en mi copia de trabajo local del repositorio git (origen), y empujando cambios cuando me conviene (también colaborar con otro desarrollador, pero básicamente ejecutar la operación).

Mi pregunta:

Ahora me gustaría volver a mi otra copia de trabajo git que previamente había estado utilizando para empujar a heroku (que ha .svn / cosas en él también). Estoy pensando sólo añadir mi nuevo repositorio git como una entrada [origen] en el .git / config .. tirando de los últimos cambios de mi nuevo mando a distancia git, y empujando a heroku, pero me pregunto si va a flipar .

Se tratará de fusionar y confundirse no es así? Y, aunque el tirón trabajó, será el heroku obtener remota confundido acerca de un empujón que se originó a partir de un nuevo repositorio git?

Yo podría darle una paliza (eliminar) que copia de trabajo (utilizado para empujar a heroku de la subversión), y hacer un nuevo clon de mi nuevo repositorio git, a continuación, añadir a la heroku .git / config. Pero me preocupa que empuja a heroku todavía hará que se confunda, ya que utilizamos para empujar desde una copia de trabajo diferente.

Cualquier consejo sería genial!

Gracias de antemano!

¿Fue útil?

Solución

Si he entendido bien, desea cambiar de nuevo a la antigua repositorio SVN como su copia de trabajo, y desea conservar la historia antigua SVN?

Hay un par de opciones disponibles.

  1. Empuje los recientes cambios de la nueva repositorio Git a Heroku, a continuación, cambiar a la antigua repositorio y tire de Heroku. Esto le llevará repositorio antiguo hasta la fecha.

  2. Cambiar temporalmente la dirección URL en el archivo de configuración del viejo repositorio para que apunte a la ruta local del nuevo repositorio. Tire de los cambios recientes a partir de ahí, y luego volver a la URL Heroku cuando haya terminado. Esto también hará que su repositorio antiguo hasta la fecha.

La primera opción es la más conveniente, y la segunda es la larga revés. De cualquier manera, usted tendrá el mismo resultado neto de una al día repositorio local que contiene toda la historia. El nuevo repositorio excedente se puede eliminar en cualquier caso.

Editar Para hacer frente a sus preocupaciones acerca de si Heroku se preocupan por el origen de la confirmación, en pocas palabras, no es el repositorio en Heroku es otro repositorio git que acepta confirmaciones de usuarios autenticados.

Mientras que las credenciales son correctas, el repositorio de origen no importa. Esto es lo hermoso de DVCS - no hay un control o repositorio corruptibles - Es enteramente posible que ahora clona desde Heroku en otra máquina y continuar el trabajo desde allí. Siempre y cuando sus credenciales son los mismos, la historia mostrará cualquiera y todas las confirmaciones se presiona, pero no le importa dónde.

Si su deseo es usar simplemente un repositorio limpio para trabajar con el nuevo será el favorito. El viejo se puede eliminar sin efectos nocivos.

Para probar esto - comprobar los valores hash SHA-1 para una confirmación de los nuevos y viejos repositorios, y verá que son idénticos. El hash es único para todas las confirmaciones, y se puede utilizar para comprobar la integridad del código en todo momento. Nunca habrá más de un cambio de hash para cualquier determinado.

  • Como nota al margen, el repositorio es portátil, ya que es totalmente autónomo, y se puede mover libremente en el espacio de almacenamiento, o incluso ser utilizado en el almacenamiento externo, como una unidad flash USB.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top