Actualizar desde Visual SourceSafe mediante la herramienta del símbolo del sistema VSSUpgrade

En la mayoría de los casos, debe usar el Asistente para actualización de VSS en lugar de la herramienta del símbolo del sistema VssUpgrade para actualizar los datos de Visual SourceSafe.Sin embargo, hay algunas situaciones donde puede utilizar la herramienta del símbolo del sistema de VssUpgrade para actualizar a Team Foundation en un servidor local (TFS).

Para actualizar los datos de Visual SourceSafe mediante VSSUpgrade

  1. Conozca cómo la herramienta convierte los datos TFS y Visual SourceSafe tienen diferencias funcionales significativas.Como resultado, las herramientas de actualización de Visual SourceSafe modifican ciertos tipos de datos durante la actualización.

  2. Preparación para actualizar Antes de iniciar el proceso de actualización, es fundamental que lo planifique por adelantado y que prepare los datos.

    Nota importanteImportante

    Debe ejecutar la utilidad ANALYZE de Visual SourceSafe en el repositorio de Visual SourceSafe antes de continuar.Vea Copiar y preparar la base de datos de Visual SourceSafe.

  3. Obtenga información sobre características únicas de VssUpgrade.Si no necesita ninguna de ellas, debe utilizar el Asistente para actualización de VSS en su lugar.

  4. Analice los datos Antes de actualizar los datos de Visual SourceSafe a control de versiones de Team Foundation, debe utilizar el comando Analyze para determinar si algún problema en los datos afectará al resultado de la actualización.Este proceso también genera un archivo de asignación de usuarios que es necesario para actualizar los datos.

  5. Actualizar los datos Para actualizar los datos, debe especificar cómo se actualizan los nombres de usuario, crear un archivo de configuración de migración y, a continuación, ejecutar el comando Migrate.

  6. Vea y compruebe los resultados y resuelva los problemas según sea necesario

Características de VssUpgrade

Use VssUpgrade si desea actualizar y mover los datos a un proyecto de equipo local y:

  • Realice la actualización como parte de un enfoque automatizado, como un script.

  • Migrar proyectos de Visual SourceSafe en un solo proyecto de equipo, usando una estructura de carpetas especificada por usted.

  • Especifique cómo se convierten los datos de usuario, por ejemplo, de Kim en Visual SourceSafe a EUROPE\KimT en TFS.

  • Omitir las etiquetas en los datos de Visual SourceSafe.

  • Reanude el proceso después de que se haya interrumpido mientras actualiza una gran cantidad de datos, por ejemplo, debido a un error de red.

Si no necesita ninguna de estas características, o si necesita actualizar y trasladar los datos en un proyecto de equipo en Team Foundation Service, debe utilizar el Asistente para actualización de VSS en lugar de VssUpgrade.

Analizar los datos

Antes de actualizar los datos de Visual SourceSafe al control de versiones de TFS, debe utilizar primero el comando Analyze para determinar si algún problema en los datos afectará al resultado de la actualización.Este comando también genera un archivo de asignación de usuarios que el comando Migrate utiliza para actualizar los datos.

ms253090.collapse_all(es-es,VS.110).gifCrear un archivo de configuración Analyze

Antes de ejecutar el comando Analyze, debe crear un archivo de configuración Analyze.En este archivo, especifique la ruta de acceso de la base de datos de Visual SourceSafe que actualizará y las carpetas que desea actualizar.

El siguiente código XML es un ejemplo de un archivo de configuración Analyze.

<?xml version="1.0" encoding="utf-8"?>
<SourceControlConverter>
<ConverterSpecificSetting>
     <Source name="VSS">
          <VSSDatabase name="c:\ourvss"></VSSDatabase>
          <UserMap name="c:\ourvss\migrate\Usermap.xml"></UserMap>
     </Source>
     <ProjectMap>
          <Project Source="$/Core"></Project>
          <Project Source="$/ProjectA"></Project>
          <Project Source="$/ProjectB"></Project>
     </ProjectMap>
</ConverterSpecificSetting>
<Settings>
     <Output file="c:\ourvss\migrate\logs\ContosoVSSAnalyze.xml"></Output>
</Settings>
</SourceControlConverter>

Puede copiar el ejemplo anterior, pegarlo en su propio archivo de configuración Analyze y, a continuación, modificarlo.La siguiente información puede ayudarle a adaptar el ejemplo de acuerdo con sus necesidades.

ms253090.collapse_all(es-es,VS.110).gifAtributo <?xml encoding>

El atributo <?xml encoding> debe coincidir con la codificación que se utiliza en el archivo de configuración Analyze.Por ejemplo, si el archivo se guarda como Unicode, la etiqueta <?xml encoding> es la siguiente:

<?xml version="1.0" encoding="unicode">

ms253090.collapse_all(es-es,VS.110).gifAtributo <VSSDatabase name>

En el atributo <VSSDatabase name>, especifique la ruta de acceso de la carpeta que contiene el archivo srcsafe.ini para la copia de la base de datos de Visual SourceSafe que está actualizando. Por ejemplo:

<Source name="VSS">
   ...
   <VSSDatabase name="c:\ourvss"></VSSDatabase>
   ...
</Source>

La ruta de acceso no debe contener la cadena srcsafe.ini.Por ejemplo, el siguiente atributo <VSSDatabase name> es incorrecto y hará que se produzca un error en el comando VssUpgrade:

<Source name="VSS">
   ...
   <VSSDatabase name="c:\ourvss\srcsafe.ini"></VSSDatabase>
   ...
</Source>

ms253090.collapse_all(es-es,VS.110).gifAtributo <UserMap name>

El comando Analyze recopila y compila datos sobre los usuarios de Visual SourceSafe y los almacena en un archivo XML.Opcionalmente, en el atributo <UserMap name> puede especificar la ruta de acceso y el nombre del archivo donde desea almacenar estos datos.Si no especifica este atributo, el comando Analyze creará un archivo denominado UserMap.xml y lo pondrá en el directorio actual.

ms253090.collapse_all(es-es,VS.110).gifSección <ProjectMap>

En la sección <ProjectMap>, especifique la ruta de acceso de cada proyecto de Visual SourceSafe que desea actualizar en el atributo Source de un elemento <Project>.

Para actualizar todos los datos de la base de datos de Visual SourceSafe, haga que la sección <ProjectMap> coincida con el ejemplo siguiente:

<ProjectMap>
   <Project Source="$/"></Project>
</ProjectMap>

En lugar de actualizar toda la base de datos de Visual SourceSafe al mismo tiempo, puede actualizar los proyectos seleccionados en momentos diferentes.

SugerenciaSugerencia

Use esta opción para evitar el bloqueo del equipo durante la actualización si tiene muchos datos para actualizar.

Las rutas de acceso de los atributos Source no se deben superponer.Por ejemplo, la siguiente sección <ProjectMap> no es válida:

<ProjectMap>
   <Project Source="$/ProjectA"></Project>
   <Project Source="$/ProjectA/Controller"></Project>
</ProjectMap>

ms253090.collapse_all(es-es,VS.110).gifAtributo <Output file>

En la sección <Settings>, en el atributo <Output file>, puede especificar la ruta de acceso y el nombre del archivo donde desea que se escriba el informe del análisis.Si no desea especificar esta opción, puede omitir la etiqueta de <Output> .En este caso, el convertidor escribirá el informe en un archivo denominado VSSAnalysisReport.xml y lo pondrá en el directorio actual.

ms253090.collapse_all(es-es,VS.110).gifElemento <SQL>

Debe especificar una base de datos para que VssUpgrade utilice para almacenar datos temporales agregando un elemento <SQL> a la sección <Source> del archivo de configuración Analyze.Este elemento utiliza la sintaxis siguiente: <SQL Server="SQL_Server_name"></SQL>.

Por ejemplo, si ejecuta VssUpgrade en un equipo denominado FABRIKAM-2, para utilizar una instancia local de SQL Server Express en el mismo equipo:

<Source name="VSS">
   ...
   <SQL Server="fabrikam-2\sqlexpress"></SQL>
   ...
</Source>

Para indicar al convertidor que use SQL Server, por ejemplo, un servidor denominado FabrikamSQLServer

<Source name="VSS">
   ...
   <SQL Server="fabrikamsqlserver"></SQL>
   ...
</Source>

ms253090.collapse_all(es-es,VS.110).gifEjecutar el comando Analyze

  1. En Inicio de Windows, ejecute Símbolo del sistema como administrador.

  2. En la ventana Administrador: Símbolo del sistema escriba:

    VssUpgrade Analyze configuración.xml

    Reemplace configuración.xml con la ruta de acceso y el nombre del archivo de configuración de análisis que creó.

  3. Cuando se le pida, escriba la contraseña de administrador para la base de datos de Visual SourceSafe.Si la base de datos no tiene ninguna contraseña, presione Entrar.

VssUpgrade muestra el estado en curso a medida que avanza el comando Analyze.Cuando se completa el proceso, el sistema resume los resultados.Por ejemplo:

Analyze complete.
Analyzed 859 files and 941 folders.
Warnings 0 and Errors 0
Pre-migration report file: C:\VSS\migrate\VSSAnalysisReport.xml

Si hay algunas advertencias o errores, puede ver los detalles sobre ellos en ConverterErrors.txt y VSSUpgrade.log.

El comando Analyze genera:

  • Un informe que se puede utilizar para obtener los detalles sobre los problemas y los cambios posibles que el comando Migrate puede provocar.

  • Un archivo de asignación de usuarios (Usermap.xml), que puede utilizar para especificar cómo los datos del usuario se convierten durante el proceso de actualización.

Estos archivos se explican con más detalle a continuación.

ms253090.collapse_all(es-es,VS.110).gifExaminar y resolver problemas encontrados por el comando Analyze

El informe de análisis proporciona los aspectos de la base de datos de Visual SourceSafe que pueden producir problemas durante el proceso de actualización.Intente resolver tantos problemas como sea posible para minimizarlos con el proceso de actualización tal y como se describe en la próxima sección.

ms253090.collapse_all(es-es,VS.110).gifAlgunos archivos están desprotegidos

El informe enumera los archivos que están desprotegidos actualmente.El proceso de actualización no conserva información de desprotección.Antes de actualizar, intente asegurarse de que están protegidos tantos archivos como sea posible.

ms253090.collapse_all(es-es,VS.110).gifAlgunos elementos tienen problemas de integridad de datos

El informe enumera los elementos cuya integridad de datos se ha puesto en peligro.La utilidad ANALYZE de Visual SourceSafe quizás pueda corregir estos tipos de problemas.Los elementos que no puedan repararse, no se actualizarán.Para obtener más información, vea las siguientes páginas del sitio web de Microsoft: ANALYZE Utility y How to Detect and Fix Database Corruption Errors in Visual SourceSafe.

ms253090.collapse_all(es-es,VS.110).gifAlgunas carpetas de proyectos asignados contienen un historial que no está incluido en la sección <ProjectMap>

Si se mueve una carpeta de un proyecto a otro en una base de datos de Visual SourceSafe, el historial de esa carpeta estará contenido en los proyectos original y actual.Para actualizar este tipo de carpeta con todo su historial, debe actualizar tanto el proyecto original como el actual.

Por ejemplo, está actualizando el proyecto Project2 de Visual SourceSafe.Este proyecto contiene la carpeta $/Project2/FeatureA, que se movió de Project1 en algún momento de su historial.

Si la sección <ProjectMap> contiene...

Por ejemplo...

Entonces...

Ambos proyectos.

<ProjectMap>
   <Project Source="$/Project1"></Project>
   <Project Source="$/Project2"></Project>
</ProjectMap>

La carpeta se actualiza con todo su historial.

El proyecto que contenía originalmente la carpeta pero no el proyecto que la contiene actualmente.

<ProjectMap>
   <Project Source="$/Project1"></Project>
</ProjectMap>

No se actualiza la carpeta.

El proyecto que contiene actualmente la carpeta pero no el proyecto que la contenía originalmente.

<ProjectMap>
   <Project Source="$/Project2"></Project>
</ProjectMap>

La carpeta se actualiza con su historial a partir de cuando se movió al proyecto actual.No se actualiza el historial que se produjo antes de que la carpeta se moviera al proyecto actual.

Para obtener más información sobre la sección <ProjectMap> del archivo de configuración, vea Sección <ProjectMap> anteriormente en este tema.

ms253090.collapse_all(es-es,VS.110).gifControl de versiones de Team Foundation no admite algunos nombres de etiqueta

El informe enumera los nombres de etiqueta que cambiarán cuando se actualicen porque contienen caracteres que el control de versiones de TFS no admite.Vea Restricciones de nomenclatura en Team Foundation.

Actualice los datos

Después de haber ejecutado el comando Analyze, está casi preparado para actualizar los datos.Antes de ejecutar el comando Migrate, debe crear un archivo de configuración.Opcionalmente, puede especificar cómo se actualizan los nombres de usuario.

ms253090.collapse_all(es-es,VS.110).gifEspecificar cómo se actualizan los nombres de usuario

Puede controlar cómo se actualiza la información de usuario de Visual SourceSafe al control de versiones de TFS.En concreto, puede especificar qué nombre de usuario debe asociar el comando Migrate a cada conjunto de cambios en el historial de cada elemento en el control de versiones de TFS.Para ello, edite el archivo de asignación de usuarios que se creó cuando ejecutó el comando Analyze, tal y como se ha explicado anteriormente en este tema.

El archivo de asignación de usuarios es opcional.Si omite el atributo <UserMap name> del archivo de configuración Analyze, cada conjunto de cambios se compila de la siguiente manera:

  • El campo User se establece en el nombre de la cuenta bajo la que se está ejecutando VssUpgrade.

  • El nombre del usuario que realizó la acción en la base de datos de Visual SourceSafe se almacena en el campo Comment.

ms253090.collapse_all(es-es,VS.110).gifEjemplo de un archivo de asignación de usuarios

Al ejecutar el comando Analyze, este compila datos sobre los usuarios de Visual SourceSafe y los almacena en un archivo XML.Este archivo muestra cada usuario de Visual SourceSafe que ha realizado alguna vez una operación de control de versiones en los proyectos de Visual SourceSafe que está actualizando.

En el ejemplo siguiente se muestra un archivo de asignación de usuarios creado por el comando Analyze.

<?xml version="1.0" encoding="utf-8"?>
<UserMappings>
   <UserMap From="Admin" To=""></UserMap>
   <UserMap From="Guest" To=""></UserMap> 
   <UserMap From="Kim" To=""></UserMap>
   <UserMap From="Satomi" To=""></UserMap>
   <UserMap From="Mark" To=""></UserMap>
</UserMappings>

Puede especificar el atributo To de ninguno, algunos o todos los elementos UserMap en el archivo de asignación de usuarios.Por ejemplo, podría modificar el ejemplo anterior de la manera siguiente:

<?xml version="1.0" encoding="utf-8"?>
<UserMappings>
   <UserMap From="Admin" To="NORTHAMERICA\KenM"></UserMap>
   <UserMap From="Guest" To="Test1"></UserMap> 
   <UserMap From="Kim" To="EUROPE\KimT"></UserMap>
   <UserMap From="Satomi" To="ASIA\SatomiH"></UserMap>
   <UserMap From="Mark" To=""></UserMap>
</UserMappings>

Observe que en el ejemplo anterior Guest está asignado a Test1 y no se especifica ningún dominio.En estos casos, VssUpgrade supone que la cuenta pertenece al dominio predeterminado.

Si no especifica ningún atributo <UserMap To>, cada conjunto de cambios se compila de la manera siguiente:

  • El campo User se establece en el nombre de la cuenta bajo la que se ejecutó VssUpgrade.

  • El nombre del usuario que realizó la acción en la base de datos de Visual SourceSafe se almacena en el campo Comment.

  • Si especifica un atributo <UserMap To> y el valor es un usuario válido en Team Foundation Server, el campo User se establece en el nombre de esa cuenta.Si el valor no es un usuario válido en Team Foundation Server, VssUpgrade mostrará un error y finalizará el proceso de actualización.

ms253090.collapse_all(es-es,VS.110).gifCrear un archivo de configuración de migración

El archivo de configuración Migrate se utiliza para especificar qué datos de Visual SourceSafe se desean actualizar y para controlar diversos aspectos de cómo se desea realizar la actualización.La manera más sencilla de crear este archivo es copiar el archivo que creó en Crear un archivo de configuración de análisis anteriormente en este tema.A continuación, agregue más datos al archivo para que pueda utilizarlo el comando Migrate.

En el ejemplo siguiente se muestra un archivo de configuración de migración.

<?xml version="1.0" encoding="utf-8"?>
<SourceControlConverter>
<ConverterSpecificSetting>
     <Source name="VSS">
          <VSSDatabase name="c:\ourvss"></VSSDatabase>
          <UserMap name="c:\ourvss\migrate\Usermap.xml"></UserMap>
     </Source>
     <ProjectMap>
          <Project Source="$/Core" Destination="$/CoreTeamProject"></Project>
          <Project Source="$/ProjectA" Destination="$/ClientTeamProject/ProjectA"></Project>
          <Project Source="$/ProjectB" Destination="$/ClientTeamProject/ProjectB"></Project>
     </ProjectMap>
</ConverterSpecificSetting>
<Settings>
     <TeamFoundationServer name="My_Server" port="8080" protocol="http" collection="tfs/DefaultCollection"></TeamFoundationServer>
     <Output file="c:\ourvss\migrate\logs\ContosoVSSMigrate.xml"></Output>
</Settings>
</SourceControlConverter>

La siguiente información puede ayudarle a modificar el archivo de configuración de migración para especificar cómo el comando Migrate actualizará los datos.

ms253090.collapse_all(es-es,VS.110).gif<ProjectMap>

Para cada elemento <Project> de la sección <ProjectMap> del archivo de configuración de migración, proporcione un atributo Destination para especificar la ruta de acceso de la ubicación de Team Foundation Server donde desea actualizar el contenido del proyecto en la base de datos de Visual SourceSafe (se especifica en el atributo Source).

Por ejemplo, desea actualizar el contenido de ProjectA de la base de datos de Visual SourceSafe ProjectA a Clienten la raíz de un proyecto de equipo denominado .

<ProjectMap>
   <Project Source="$/ProjectA" Destination="$/ClientTeamProject/ProjectA"></Project>
</ProjectMap>

Para que el valor del atributo Destination sea válido, las siguientes condiciones deben ser verdaderas:

  • El proyecto de equipo del atributo Destination (en el ejemplo anterior, el proyecto de equipo es ClientTeamProject) ya debe estar en la colección de proyectos de equipo antes de que se inicie el proceso de actualización.

  • La ruta de acceso del atributo Destination de un elemento <Project> no debe superponerse a la ruta de acceso del atributo Destination de cualquier otro elemento <Project>.Por ejemplo, la siguiente sección <ProjectMap> no es válida:

    <ProjectMap>
       <Project Source="$/ProjectA" Destination="$/ClientTeamProjectA/"></Project>
       <Project Source="$/ProjectB" Destination="$/ClientTeamProjectA/ProjectB"></Project>
    </ProjectMap>
    

[!NOTA]

Si la carpeta del atributo Destination contiene cualquier elemento, y si la ruta de acceso a cualquiera de los elementos de Visual SourceSafe se superpone con la ruta de acceso de control de versiones en cualquiera de estos elementos, se producirá un error en el proceso de actualización.

ms253090.collapse_all(es-es,VS.110).gifEtiqueta <TeamFoundationServer>

En la sección <Settings>, agregue una etiqueta <TeamFoundationServer> y especifique el nombre, el puerto, el protocolo y la ruta de acceso a la colección de proyectos de equipo de Team Foundation Server utilizando el formato siguiente:

<TeamFoundationServer name="ServerName" port="PortNumber" protocol="http" collection="path/collection name></TeamFoundationServer>

ms253090.collapse_all(es-es,VS.110).gifEtiqueta <Label migrate="false" />

Si la base de datos de Visual SourceSafe contiene muchas etiquetas que se aplican a muchos archivos, es posible que se prolongue el proceso de actualización.Si el equipo no necesita estos datos, puede configurar VssUpgrade para que omita las etiquetas agregando la etiqueta <Label migrate="false" /> a la sección <Settings>.

ms253090.collapse_all(es-es,VS.110).gifAtributo <Output file>

En la sección <Settings>, en el atributo <Output file>, puede especificar la ruta de acceso y el archivo donde desea que se escriba el informe de actualización.Si no incluye el atributo, el convertidor escribirá el informe en un archivo denominado VSSMigrationReport.xml y lo pondrá en el directorio actual.

ms253090.collapse_all(es-es,VS.110).gifEjecutar el comando Migrate

  1. En Inicio de Windows, ejecute Símbolo del sistema como administrador.

  2. En la ventana Administrador: Símbolo del sistema escriba:

    VssUpgrade Migrate configuración.xml

    Reemplace configuración.xml con la ruta de acceso y el nombre del archivo de configuración de migración que creó.

    El comando Migrate muestra cada proyecto que está actualizando de la base de datos de Visual SourceSafe y cada carpeta en la que se migrarán los datos del servidor de control de versiones de Team Foundation.

  3. Cuando se le pida, escriba la contraseña de administrador para la base de datos de Visual SourceSafe.Si la base de datos no tiene ninguna contraseña, presione Entrar.

  4. El sistema resume cómo funcionará con el proceso de actualización y le pide que confirme que desea continuar.Por ejemplo:

    This will start migration with following inputs:
    
    SourceSafe Folders -> Team Foundation Server Folders
    
    $/ -> $/Sequence2
    
    Full history migration of VSS Database: c:\vss
    
    Team Foundation Server: http://fabrikam-4:8080/tfs/DefaultCollection
    Migration Settings File: migrate_settings.xml
    Migration Report: C:\VSS\migrate\VSSMigrationReport.xml
    
    Depending on the VSS database size, migration may take few hours to complete.
    Please verify all inputs are correct and confirm.
    Start migration (Y/N)?
    

    Presione Y para continuar.

VssUpgrade muestra el estado en curso a medida que avanza el comando Migrate.Cuando se completa el proceso, el sistema resume los resultados.Por ejemplo:

Verification of pinned versions: 0 file(s) added, 0 file(s) edited and 86 file(s) label updated
Verification of latest tip versions: No change was required (No fixes required. All latest tip versions were migrated successfully)

Started: Creating label "Pinned_Latest".
Finished: Creating label "Pinned_Latest".

Migration complete.
Migrated 6397 Actions
Warnings 7 and Errors 0
Post migration report file: C:\VSS\migrate\VSSMigrationReport.xml

Si hay algunas advertencias o errores, puede ver los detalles sobre ellos en ConverterErrors.txt y VSSUpgrade.log.

El comando Migrate genera un informe que se puede usar para obtener detalles sobre los problemas y los cambios posibles que el comando Migrate podría haber producido.Vea Pasos siguientes después de actualizar desde Visual SourceSafe.

ms253090.collapse_all(es-es,VS.110).gifReanudar el proceso utilizando una actualización incremental

Si el proceso de actualización se interrumpe por alguna razón, puede reanudar el proceso como una actualización incremental a partir del punto en el que finalizó el proceso.Una actualización incremental puede ser útil si se produjo un error en el proceso de actualización debido a un error o a problemas de red.Durante la actualización incremental, el convertidor actualizará únicamente los datos que no se actualizaron en sesiones anteriores.

Para iniciar una actualización incremental, siga los pasos mostrados en Ejecutar el comando Migrate.Cuando el comando Migrate le pregunte si desea realizar una migración incremental, presione Y.

Limitaciones de una actualización incremental

Una actualización incremental no se realizará correctamente a menos que cumpla las restricciones siguientes:

  • En la base de datos de Visual SourceSafe, no debe haber realizado actividades de destrucción, purgado, archivo o restauración.

  • No debe modificar la sección <ProjectMap> del archivo de configuración Migrate.

  • En el servidor Team Foundation Server, no debe modificar ninguna carpeta (o ningún contenido de las carpetas) que se especifique en la sección <ProjectMap> del archivo de configuración de migración.

Paso siguiente

Vea y compruebe los resultados y resuelva los problemas según sea necesario