Condividi tramite


Eseguire l'aggiornamento da Visual SourceSafe mediante lo strumento VSSUpgrade dal prompt dei comandi

Per aggiornare i dati di Visual SourceSafe, nella maggior parte dei casi viene utilizzata la procedura Aggiornamento guidato VSS anziché lo strumento del prompt dei comandi VssUpgrade. Tuttavia, esistono alcune situazioni in cui potrebbe essere preferibile utilizzare lo strumento del prompt dei comandi VssUpgrade per eseguire l'aggiornamento a un server Team Foundation (TFS) locale.

Per eseguire l'aggiornamento dei dati di Visual SourceSafe utilizzando VSSUpgrade

  1. Comprendere come lo strumento converte i dati TFS e Visual SourceSafe presentano notevoli differenze funzionali. Ad esempio, gli strumenti di aggiornamento di Visual SourceSafe modificano determinati tipi di dati durante l'aggiornamento.

  2. Preparare l'esecuzione dell'aggiornamento Prima di iniziare il processo di aggiornamento, è indispensabile eseguire una pianificazione e preparare i dati.

    Importante

    Prima di procedere, è necessario eseguire l'utilità ANALYZE di Visual SourceSafe nel repository Visual SourceSafe.Vedere Copiare e preparare il database di Visual SourceSafe.

  3. Informazioni sulle funzionalità specifiche di VssUpgrade. Se queste informazioni non sono necessarie, utilizzare la procedura Aggiornamento guidato VSS.

  4. Analizzare i dati Prima di eseguire l'aggiornamento dei dati da Visual SourceSafe a Controllo della versione di Team Foundation, è necessario utilizzare il comando Analizza per determinare se eventuali problemi presenti nei dati influiranno sull'esito dell'aggiornamento. Da questo processo viene inoltre generato un file di mapping utenti necessario per eseguire l'aggiornamento dei dati.

  5. Aggiornare i dati Per eseguire l'aggiornamento dei dati, è necessario specificare la modalità di aggiornamento dei nomi utente, creare un file di impostazioni della migrazione, quindi eseguire il comando Migra.

  6. Visualizzare e verificare i risultati e risolvere eventuali problemi

Funzionalità VssUpgrade

Utilizzare VssUpgrade se si desidera aggiornare e trasferire i dati a un progetto team locale e:

  • Eseguire l'aggiornamento come parte di un approccio automatizzato, ad esempio uno script.

  • Eseguire la migrazione di più progetti Visual SourceSafe in un singolo progetto team, utilizzando una struttura di cartelle specificata dall'utente.

  • Specificare la modalità di conversione dei dati utente, ad esempio, da Kim in Visual SourceSafe a EUROPE\KimT in TFS.

  • Ignorare le etichette nei dati di Visual SourceSafe.

  • Riprendere il processo dopo averlo interrotto mentre si esegue l'aggiornamento di un grande volume di dati, ad esempio a causa di un errore di rete.

Se nessuna di queste funzionalità è necessaria o se è necessario aggiornare e trasferire i dati in un progetto team in Visual Studio Online, si consiglia di utilizzare la procedura Aggiornamento guidato VSS al posto di VssUpgrade.

Analizzare i dati

Prima di eseguire l'aggiornamento dei dati da Visual SourceSafe al controllo della versione di TFS, è necessario innanzitutto utilizzare il comando Analizza per determinare se eventuali problemi presenti nei dati influiranno sull'esito dell'aggiornamento. Questo comando genera inoltre un file di mapping utenti che viene utilizzato dal comando Migra per eseguire l'aggiornamento dei dati.

Creare un file di impostazioni di analisi

Prima di eseguire il comando Analizza, è necessario creare un file di impostazioni di analisi, nel quale è possibile specificare il percorso del database di Visual SourceSafe di cui verrà eseguito l'aggiornamento e delle cartelle che si desidera aggiornare.

Il codice XML riportato di seguito costituisce un esempio di file di impostazioni di analisi.

<?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>
          <SQL Server="SQLInstanceName"></SQL>
     </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>

È possibile copiare l'esempio precedente, incollarlo nel proprio file di impostazioni di analisi, quindi modificarlo. Le informazioni seguenti possono consentire di adattare l'esempio in base alle proprie esigenze.

Attributo <?xml encoding>

L'attributo <?xml encoding> deve corrispondere alla codifica utilizzata nel file di impostazioni di analisi. Se, ad esempio, il file viene salvato come Unicode, il tag <?xml encoding> è il seguente:

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

Attributo <VSSDatabase name>

Nell'attributo <VSSDatabase name> specificare il percorso della cartella contenente il file srcsafe.ini per la copia del database di Visual SourceSafe di cui viene eseguito l'aggiornamento. Ad esempio:

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

Il percorso non deve contenere la stringa srcsafe.ini. Ad esempio, l'attributo <VSSDatabase name> seguente è errato e determinerà la mancata riuscita del comando VssUpgrade:

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

Attributo <UserMap name>

Con il comando Analizza i dati sugli utenti di Visual SourceSafe vengono raccolti e compilati, quindi vengono archiviati in un file XML. Facoltativamente, è possibile specificare il percorso e il nome del file in cui si desidera che questi dati vengano archiviati nell'attributo <UserMap name>. Se questo attributo non viene specificato, viene creato un file denominato UserMap.xml dal comando Analizza e questo file viene memorizzato nella directory corrente.

Sezione <ProjectMap>

Nella sezione <ProjectMap> specificare il percorso di ogni progetto Visual SourceSafe, di cui si desidera eseguire l'aggiornamento, nell'attributo Source di un elemento <Project>.

Per eseguire l'aggiornamento di tutti i dati nel database di Visual SourceSafe, impostare la sezione <ProjectMap> come nell'esempio riportato di seguito:

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

Anziché eseguire l'aggiornamento dell'intero database di Visual SourceSafe in una sola volta, è possibile eseguire l'aggiornamento di progetti selezionati in momenti diversi.

Suggerimento

Utilizzare questa opzione per evitare che il team rimanga inattivo durante l'aggiornamento se il processo riguarda grandi quantità di dati.

I percorsi negli attributi di origine non devono sovrapporsi. Ad esempio, la seguente sezione <ProjectMap> non è valida:

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

Attributo <Output file>

Nella sezione <Settings>, nell'attributo <Output file>, è possibile specificare il percorso e il nome del file in cui si desidera che venga scritto il rapporto di analisi. Se non si desidera specificare questa opzione, è possibile omettere il tag <Output>. In questo caso, il rapporto viene scritto dal convertitore in un file denominato VSSAnalysisReport.xml e viene memorizzato nella directory corrente.

Elemento <SQL>

È necessario specificare un database per l'archiviazione dei dati temporanei da parte di VssUpgrade aggiungendo un elemento <SQL> alla sezione <Source> del file di impostazioni di analisi. Questo elemento utilizza la seguente sintassi: <SQL Server="SQL_Server_name"></SQL>.

Ad esempio, se si esegue VssUpgrade in un computer denominato FABRIKAM-2, per utilizzare un'istanza locale di SQL Server Express nello stesso computer:

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

Per indicare al convertitore di utilizzare SQL Server, ad esempio un server denominato FabrikamSQLServer

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

Eseguire il comando Analizza

  1. Dal menu Start di Windows, eseguire il Prompt dei comandi come amministratore.

  2. Nella finestra del prompt dei comandi: amministratore immettere:

    VssUpgrade Analyze settings.xml

    Sostituire settings.xml con il percorso e il nome del file di impostazioni di analisi creato.

  3. Quando richiesto, digitare la password di amministratore per il database di Visual SourceSafe. Se il database non è protetto da password, premere INVIO.

In VssUpgrade viene visualizzato lo stato in corso durante l'esecuzione del comando Analizza. Al termine del processo vengono riepilogati i risultati dal sistema. Ad esempio:

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

Nel caso siano stati generati degli avvisi o degli errori, sono disponibili informazioni dettagliate in ConverterErrors.txt e in VSSUpgrade.log.

Tramite il comando Analizza vengono generati i seguenti elementi:

  • Un rapporto da cui è possibile ottenere i dettagli sui possibili problemi e le eventuali modifiche che il comando Migra può causare.

  • Un file di mapping utenti (Usermap.xml) che è possibile utilizzare per specificare in che modo i dati utente saranno convertiti durante il processo di aggiornamento.

Questi file vengono spiegati in modo più dettagliato più avanti.

Esaminare e risolvere i problemi riscontrati dal comando Analizza

Il rapporto di analisi fornisce informazioni su eventuali problemi nel database di Visual SourceSafe che possono causare problemi durante il processo di aggiornamento. Tentare di risolvere il maggior numero possibile di questi problemi per ridurre al minimo i problemi durante il processo di aggiornamento, come descritto nella sezione successiva.

Alcuni file vengono estratti

Nel rapporto vengono elencati i file attualmente estratti. Il processo di aggiornamento non conserva le informazioni sull'estrazione. Assicurarsi quindi di archiviare il maggior numero possibile di file prima di eseguire l'aggiornamento.

Alcuni elementi presentano problemi relativi all'integrità dei dati

Nel rapporto vengono elencati gli elementi la cui integrità dei dati è stata compromessa. L'utilità ANALYZE di Visual SourceSafe potrebbe essere in grado di correggere questi tipi di problemi. Gli elementi che non possono essere ripristinati non verranno aggiornati. Per ulteriori informazioni, vedere le seguenti pagine sul sito Web di Microsoft: Utilità ANALYZE e Come rilevare e correggere errori di danneggiamento del database in Visual SourceSafe per Windows 6.0 e in SourceSafe.

Alcune cartelle dei progetti mappati contengono la cronologia che risulta Non inclusa nella sezione <ProjectMap>

Se una cartella viene spostata da un progetto a un altro in un database di Visual SourceSafe, la cronologia di tale cartella sarà contenuta sia nei progetti originali che in quelli correnti. Per eseguire l'aggiornamento di tale cartella con tutta la relativa cronologia, è necessario eseguire l'aggiornamento sia dei progetti originali che di quelli correnti.

Si supponga ad esempio di aggiornare il progetto di Visual SourceSafe Project2. Questo progetto contiene la cartella $/Project2/FeatureA, che è stata spostata da Project1 in un determinato punto della cronologia.

Se la sezione <ProjectMap> contiene...

Ad esempio...

Then…

Entrambi i progetti.

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

Viene eseguito l'aggiornamento della cartella con l'intera cronologia.

Il progetto che conteneva in origine la cartella, ma non il progetto che la contiene attualmente.

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

Non viene eseguito l'aggiornamento della cartella.

Il progetto che attualmente contiene la cartella, ma non il progetto che la conteneva in origine.

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

Viene eseguito l'aggiornamento della cartella facendo iniziare la cronologia dal momento in cui è stata spostata nel progetto corrente. Non viene eseguito l'aggiornamento della cronologia precedente allo spostamento della cartella nel progetto corrente.

Per ulteriori informazioni sulla sezione <ProjectMap> del file di impostazioni, tornare alla Sezione <ProjectMap> in questo argomento.

Alcuni nomi di etichetta non sono supportati dal controllo della versione di Team Foundation

Nel rapporto vengono elencati i nomi di etichetta che verranno modificati durante l'aggiornamento perché contengono caratteri non supportati dal controllo della versione di TFS. Vedere Limitazioni di denominazione in Team Foundation.

Aggiornare i dati

Una volta eseguito il comando Analizza, si è quasi pronti a eseguire l'aggiornamento dei dati. Prima di eseguire il comando Migra, è necessario creare un file di impostazioni. Facoltativamente, è possibile specificare in che modo eseguire l'aggiornamento dei nomi utente.

Specificare la modalità di aggiornamento dei nomi utente

È possibile controllare in che modo le informazioni utente vengono aggiornate da Visual SourceSafe al controllo della versione di TFS. In particolare, è possibile specificare quale nome utente deve essere associato dal comando Migra a ciascun insieme di modifiche nella cronologia di ogni elemento nel controllo della versione di TFS. A tale scopo, modificare il file di mapping utenti creato durante l'esecuzione del comando Analizza, come spiegato precedentemente in questo argomento.

Il file di mapping utenti è facoltativo. Se si omette l'attributo <UserMap name> dal file di impostazioni di analisi, ogni insieme di modifiche verrà compilato nel modo seguente:

  • Il campo Utente viene impostato sul nome dell'account con cui VssUpgrade è in esecuzione.

  • Il nome dell'utente che ha eseguito l'azione nel database di Visual SourceSafe viene archiviato nel campo Commento.

Esempio di un file di mapping utenti

Quando si esegue il comando Analizza, i dati sugli utenti di Visual SourceSafe vengono compilati e archiviati in un file XML. Questo file include l'elenco di tutti gli utenti di Visual SourceSafe che hanno già eseguito un'operazione di controllo della versione nei progetti di Visual SourceSafe in fase di aggiornamento.

Nell'esempio seguente viene riportato un file di mapping utenti creato dal comando Analizza.

<?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>

È possibile specificare l'attributo To di nessuno, alcuni o tutti gli elementi UserMap nel file di mapping utenti. Ad esempio, è possibile modificare l'esempio precedente nel modo seguente:

<?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>

Notare che nell'esempio precedente Guest viene mappato a Test1 e non viene specificato alcun dominio. In questi casi, VssUpgrade presuppone che l'account appartenga al dominio predefinito.

Se non si specifica un attributo <UserMap To>, ogni insieme di modifiche viene incorporato nel modo seguente:

  • Il campo Utente viene impostato sul nome dell'account con cui è stato eseguito VssUpgrade.

  • Il nome dell'utente che ha eseguito l'azione nel database di Visual SourceSafe viene archiviato nel campo Commento.

  • Se viene specificato un attributo <UserMap To> e il valore è un utente valido in Team Foundation Server, il campo Utente viene impostato sul nome di tale account. Se il valore non è un utente valido in Team Foundation Server, in VssUpgrade verrà visualizzato un errore e il processo di aggiornamento verrà terminato.

Creare un file di impostazioni della migrazione

Il file di impostazioni della migrazione viene utilizzato per specificare quali dati di Visual SourceSafe si desidera aggiornare e per controllare diversi aspetti relativi al loro aggiornamento. Il modo più semplice per creare questo file consiste nel copiare il file creato in Creare un file di impostazioni di analisi più indietro in questo argomento. È possibile quindi aggiungere altri dati al file affinché sia utilizzabile dal comando Migra.

Nell'esempio seguente viene mostrato un file di impostazioni della migrazione.

<?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>
          <SQL Server="SQLInstanceName"></SQL>
     </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>

Le informazioni seguenti aiutano a modificare il file di impostazioni della migrazione per specificare in che modo il comando Migra eseguirà l'aggiornamento dei dati.

<ProjectMap>

Per ogni elemento <Project> nella sezione <ProjectMap> del file di impostazioni della migrazione, fornire un attributo Destination per specificare il percorso in Team Foundation Server in cui si desidera eseguire l'aggiornamento del contenuto del progetto nel database di Visual SourceSafe (specificato nell'attributo Source).

Ad esempio, si desidera eseguire l'aggiornamento del contenuto di ProjectA nel database di Visual SourceSafe in ProjectA in corrispondenza della radice di un progetto team denominato Client.

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

Affinché il valore nell'attributo Destination sia valido, è necessario che siano soddisfatte le condizioni riportate di seguito:

  • Il progetto team nell'attributo Destination (nell'esempio precedente, il progetto team è ClientTeamProject) deve essere già presente nella raccolta di progetti team prima che venga avviato il processo di aggiornamento.

  • Il percorso nell'attributo Destination di un elemento <Project> non deve sovrapporsi al percorso nell'attributoDestination di un qualsiasi altro elemento <Project>. Ad esempio, la seguente sezione <ProjectMap> non è valida:

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

Nota

Se la cartella nell'attributo di Destination contiene degli elementi e se il percorso di uno qualsiasi degli elementi di Visual Source Safe si sovrappone al percorso del controllo della versione di uno di questi elementi, il processo di aggiornamento non verrà completato correttamente.

Tag <TeamFoundationServer>

Nella sezione <Settings>, aggiungere un tag <TeamFoundationServer> e specificare il nome, la porta, il protocollo e il percorso della raccolta di progetti team in Team Foundation Server utilizzando il formato seguente:

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

Tag <Label migrate="false" />

Se il database di Visual SourceSafe contiene molte etichette da applicare a molti file, è possibile che il processo di aggiornamento richieda più tempo. Se il team non necessita di questi dati, è possibile configurare VssUpgrade in modo che ignori le etichette, aggiungendo il tag <Label migrate="false" /> alla sezione <Settings>.

Attributo <Output file>

Nella sezione <Settings>, nell'attributo <Output file>, è possibile specificare il percorso e il file in cui si desidera che venga scritto il rapporto di aggiornamento. Se l'attributo non viene incluso, il convertitore scrive il rapporto in un file denominato VSSMigrationReport.xml e lo inserisce nella directory corrente.

Eseguire il comando Migra

  1. Dal menu Start di Windows, eseguire il Prompt dei comandi come amministratore.

  2. Nella finestra del prompt dei comandi: amministratore immettere:

    VssUpgrade Migrate settings.xml

    Sostituire settings.xml con il percorso e il nome del file di impostazioni della migrazione creato.

    Attraverso il comando Migra vengono visualizzati tutti i progetti di cui viene eseguito l'aggiornamento dal database di Visual SourceSafe e tutte le cartelle in cui verrà eseguito l'aggiornamento dei dati nel server per Controllo della versione di Team Foundation.

  3. Quando richiesto, digitare la password di amministratore per il database di Visual SourceSafe. Se il database non è protetto da password, premere INVIO.

  4. Nel sistema viene riepilogato il modo in cui sarà eseguito il processo di aggiornamento e viene chiesto di confermare che si desidera continuare. Ad esempio:

    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)?
    

    Premere Y per continuare.

In VssUpgrade viene visualizzato lo stato in corso durante l'elaborazione del comando Migra. Al termine del processo vengono riepilogati i risultati dal sistema. Ad esempio:

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

Nel caso siano stati generati degli avvisi o degli errori, sono disponibili informazioni dettagliate in ConverterErrors.txt e in VSSUpgrade.log.

Tramite il comando Migra viene generato un rapporto da cui è possibile ottenere i dettagli sui possibili problemi e le eventuali modifiche che il comando Migra può aver causato. Vedere Eseguire i passaggi successivi dopo l'aggiornamento da Visual SourceSafe.

Riprendere il processo eseguendo un aggiornamento incrementale

Se per qualche motivo il processo di aggiornamento viene interrotto, è possibile riprenderlo come un aggiornamento incrementale dal punto in cui è stato interrotto. L'aggiornamento incrementale può essere utile se il processo di aggiornamento non è riuscito a causa di un errore o di problemi di rete. Durante l'aggiornamento incrementale il convertitore esegue l'aggiornamento solo dei dati di cui non è stato eseguito l'aggiornamento nelle sessioni precedenti.

Per avviare un aggiornamento incrementale, seguire i passaggi indicati in Eseguire il comando Migra. Alla richiesta da parte del comando Migra di eseguire una migrazione incrementale, premere Y.

Limitazioni dell'aggiornamento incrementale

Un aggiornamento incrementale non riuscirà a meno che non vengano rispettate le restrizioni seguenti:

  • Nel database di Visual SourceSafe non è consentito eseguire operazioni di eliminazione, rimozione, archiviazione o ripristino.

  • Non è consentito modificare la sezione <ProjectMap> del file di impostazioni della migrazione.

  • In Team Foundation Server non è consentito modificare le cartelle (o il relativo contenuto) specificate nella sezione <ProjectMap> del file di impostazioni della migrazione.

Passaggio successivo

Visualizzare e verificare i risultati e risolvere eventuali problemi