Skip to content

Latest commit

 

History

History
60 lines (45 loc) · 2.88 KB

import-tfs.asc

File metadata and controls

60 lines (45 loc) · 2.88 KB

TFS

Si su equipo está convirtiendo su control de código fuente de TFVC a Git, querrá la conversión de mayor fidelidad que pueda obtener. Esto significa que mientras cubrimos git-tfs y git-tf para la sección de interoperabilidad, sólo cubriremos git-tfs para esta parte, porque git-tfs soporta ramificaciones, y esto es prohibitivamente difícil usando git-tf.

Note

Se trata de una conversión unidireccional. El repositorio Git resultante no podrá conectarse con el proyecto TFVC original.

The first thing to do is map usernames. TFVC is fairly liberal with what goes into the author field for changesets, but Git wants a human-readable name and email address. You can get this information from the tf command-line client, like so:

PS> tf history $/myproject -recursive > AUTHORS_TMP

Esto agarra todos los conjuntos de cambios de la historia del proyecto y lo coloca en el archivo AUTHORS_TMP que procesaremos para extraer los datos de la columna 'Usuario' (el segundo). Abre el archivo y busca en qué caracteres comienzan y terminan la columna y reemplazan, en la línea de comandos siguiente, los parámetros 11-20 del comando` cut` con los que se encuentran:

PS> cat AUTHORS_TMP | cut -b 11-20 | tail -n+3 | uniq | sort > AUTHORS

El comando cut mantiene sólo los caracteres entre 11 y 20 de cada línea. El comando tail omite las dos primeras líneas, que son cabeceras de campo y subrayados ASCII-art. El resultado de todo esto se canaliza a uniq para eliminar duplicados y se guarda en un archivo llamado` AUTHORS`. El siguiente paso es manual; Para que git-tfs haga un uso efectivo de este archivo, cada línea debe estar en este formato:

DOMAIN\username = User Name <[email protected]>

La parte de la izquierda es el campo ``Usuario'' de TFVC, y la porción en el lado derecho del signo de iguales es el nombre de usuario que se utilizará para los compromisos de Git.

Una vez que tengas este archivo, lo siguiente que debes hacer es hacer un clon completo del proyecto TFVC en el que estás interesado:

PS> git tfs clone --with-branches --authors=AUTHORS https://username.visualstudio.com/DefaultCollection $/project/Trunk project_git

A continuación, deseará limpiar las secciones git-tfs-id desde la parte inferior de los mensajes de confirmación. El siguiente comando hará lo siguiente:

PS> git filter-branch -f --msg-filter 'sed "s/^git-tfs-id:.*$//g"' -- --all

Que utiliza el comando sed desde el entorno Git-bash para reemplazar cualquier línea que empiece por ``git-tfs-id:'' con vacío, que Git luego ignorará.

Una vez que todo está hecho, estás listo para añadir un nuevo mando a distancia, empujar todas sus ramas hacia arriba, y hacer que su equipo comience a trabajar desde Git.