El siguiente sistema que verá importando es Perforce Como mencionamos anteriormente, hay dos formas de que Git y Perforce hablen entre sí: git-p4 y Perforce Git Fusion.
Git Fusion hace que este proceso sea bastante sencillo. Simplemente elija la configuración de su proyecto, las asignaciones de usuario y las ramas con un archivo de configuración (como se explica en << _ p4_git_fusion >>) y clone el repositorio. Git Fusion te deja con lo que parece ser un repositorio nativo de Git, que luego está listo para enviar a un host nativo de Git si lo deseas. Incluso puede usar Perforce como su host Git si gusta.
Git-p4 también puede actuar como una herramienta de importación. Como ejemplo, importaremos el proyecto Jam desde Perforce Public Depot. Para configurar su cliente, debe exportar la variable de entorno P4PORT para que se dirija al depósito de Perforce:
$ export P4PORT=public.perforce.com:1666
Note
|
Para poder seguir, necesitarás un depósito de Perforce para conectarte. Utilizaremos el depósito público en public.perforce.com para ver nuestros ejemplos, pero puede usar cualquier depósito al que tenga acceso. |
Ejecute el comando git p4 clone
para importar el proyecto Jam desde el servidor Perforce, proporcionando la ruta de depósito y proyecto y la ruta en la que desea importar el proyecto:
$ git-p4 clone //guest/perforce_software/jam@all p4import
Importación desde //guest/perforce_software/jam@all into p4import
Inicializó el repositorio vacío de Git en /private/tmp/p4import/.git/
Destino de importación: refs/remotes/p4/master
Importando revisión 9957 (100%)
Este proyecto en particular tiene solo una rama, pero esta configurado con vistas de ramificaciones (o simplemente un conjunto de directorios), y puede usar el indicador --detect-branches
en` git p4 clone` para importar todas las ramas del proyecto. Ver << _ git_p4_branches >> para un poco más de detalle sobre esto.
En este punto, casi has terminado.
Si va al directorio p4import
y ejecuta` git log`, puede ver su trabajo importado:
$ git log -2
commit e5da1c909e5db3036475419f6379f2c73710c4e6
Autor: giles <giles@[email protected]>
Información: Wed Feb 8 03:13:27 2012 -0800
Corrección a línea 355; change </UL> to </OL>.
[git-p4: depot-paths = "//public/jam/src/": change = 8068]
commit aa21359a0a135dda85c50a7f7cf249e4f7b8fd98
Autor: kwirth <[email protected]>
Información: Tue Jul 7 01:35:51 2009 -0800
Corrige el error de ortografía en la página Jam doc (cummulative -> cumulative).
[git-p4: depot-paths = "//public/jam/src/": change = 7304]
Puede ver que git-p4
ha dejado un identificador en cada mensaje de confirmación.
Está bien mantener ese identificador allí, en caso de que necesite hacer referencia al número de cambio Perforce más adelante.
Sin embargo, si desea eliminar el identificador, ahora es el momento de hacerlo, antes de comenzar a trabajar en el nuevo repositorio.
Puede usar git filter-branch
para eliminar las cadenas de identificador en masa:
$ git filter-branch --msg-filter 'sed -e "/^\[git-p4:/d"'
Rewrite e5da1c909e5db3036475419f6379f2c73710c4e6 (125/125)
Ref 'refs/heads/master' was rewritten
Si ejecuta git log
, puede ver que todas las sumas de comprobación SHA-1 para las confirmaciones han cambiado, pero las cadenas` git-p4` ya no se encuentran en los mensajes de confirmación:
$ git log -2
commit b17341801ed838d97f7800a54a6f9b95750839b7
Autor: giles <giles@[email protected]>
Información: Wed Feb 8 03:13:27 2012 -0800
Corrección a linea 355; change </UL> to </OL>.
commit 3e68c2e26cd89cb983eb52c024ecdfba1d6b3fff
Autor: kwirth <[email protected]>
Información: Tue Jul 7 01:35:51 2009 -0800
Corrige el error de ortografía en la página Jam doc (cummulative -> cumulative).
Su importación está lista para subir a su nuevo servidor Git.