2009-12-23 10 views
5

¿Existe alguna herramienta que me permita obtener la misma funcionalidad que git-svn para Perforce? Vi git-p4 en github, pero parece que esto importa la fuente de un repositorio de git a un repositorio de Perforce. ¿Va a la inversa? ¿Está destinado a ser utilizado como una herramienta frecuente o solo como una herramienta de importación única?¿Algo parecido a git-svn para Perforce?

Escenario: Soy un contratista, mi cliente usa Perforce para su control de fuente, pero me gustaría usar git localmente.

+0

acaba de terminar mi respuesta en respuesta a su comentario – VonC

Respuesta

7

git-p4 puede ir en ambas direcciones. Use git-p4 sync o git-p4 rebase para actualizar su área de trabajo local, luego use git localmente. Cuando esté listo para enviar su git commits a p4, use git-p4 submit.

Tendrá que crear un cliente P4 (en un lugar aparte de su área de trabajo git) y usarlo exclusivamente para sincronizar usando git-p4.

utilizo este local y que ha funcionado bien durante meses, con algunas salvedades:

  • Puede utilizar ramas git localmente pero P4 no se sabe nada de ellos. Solo verá maestro.

  • Los nombres de los archivos se mostrarán en P4 como agregar + eliminar en lugar de los preferidos integrar + eliminar.

  • Las confirmaciones de Git se vuelven a crear al ejecutar git-p4 submit, por lo que la marca de tiempo estará desactivada, y es posible que tenga problemas de combinación con sus otras ramas de git. (Al igual que el "recuperarse de rebase aguas arriba" problema.)

+0

Gracias Scott, esta es una gran noticia. Voy a dar un tiro pronto. Cuando ejecutas git-p4 submit, ¿cómo sabe a cuál p4 branch/location enviar? Me gustaría ver cómo lidiar con diferentes ramas de p4 :) –

+1

Envía los archivos usando el cliente p4 que usted le indica. Entonces, donde sea que ese cliente esté mapeado. Supongo que podría cambiar el mapeo de ese cliente p4 en cualquier momento, pero tendría que tener cuidado porque git-p4 usa 'p4 cambia ...' para encontrar qué cambios se deben importar a git, así que cuando cambie el mapeo del cliente, git-p4 podría no obtener todos los cambios que necesita para sincronizar su área de trabajo git. – ScottJ

+0

Se agregó otra advertencia sobre cómo 'git-p4 submit' básicamente rebasa su área de trabajo git. – ScottJ

Cuestiones relacionadas