Eseguire l'aggiornamento da Visual SourceSafe mediante lo strumento VSSUpgrade dal prompt dei comandi
Nella maggior parte dei casi, è consigliabile utilizzare l'Aggiornamento guidato di VSS anziché lo strumento del prompt dei comandi di VssUpgrade per aggiornare i dati di Visual SourceSafe.Tuttavia, esistono alcune situazioni in cui potrebbe essere necessario utilizzare lo strumento del prompt dei comandi di VssUpgrade in un Team Foundation Server (TFS) locale.
Per aggiornare i dati Visual SourceSafe utilizzando VSSUpgrade
Comprendere come lo strumento converte i dati TFS e Visual SourceSafe presentano notevoli differenze funzionali.Di conseguenza, gli strumenti di aggiornamento di Visual SourceSafe modificano determinati tipi di dati durante l'aggiornamento.
Preparazione all'aggiornamento prima di iniziare il processo di aggiornamento, è indispensabile pianificare in anticipo e preparare i dati.
Importante È necessario eseguire l'utilità ANALYZE di Visual SourceSafe nel repository Visual SourceSafe prima di procedere.Vedere Copiare e preparare il database di Visual SourceSafe.
Informazioni sulle funzionalità specifiche di VssUpgrade.Se non sono necessari, utilizzare invece l'Aggiornamento guidato VSS.
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 sul risultato dell'aggiornamento.Con questo processo viene inoltre generato un file di mapping utenti necessario per eseguire l'aggiornamento dei dati.
Aggiorna i dati Per eseguire l'aggiornamento dei dati, è necessario specificare come eseguire l'aggiornamento dei nomi utente, creare un file di impostazioni della migrazione, quindi eseguire il comando Migra.
Visualizzare e verificare i risultati e risolvere i problemi in base alle necessità
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 come vengono convertiti i 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 una grande quantità di dati, ad esempio a causa di un errore di rete.
Se non è necessaria nessuna di queste funzionalità, o se è necessario aggiornare e trasferire i dati in un progetto team in Team Foundation Service, allora è necessario utilizzare l'Aggiornamento guidato VSS anziché VssUpgrade.
Analizzare i dati
Prima di eseguire l'aggiornamento dei dati da Visual SourceSafe al controllo della versione TFS, è necessario prima utilizzare il comando Analizza per determinare se eventuali problemi presenti nei dati influiranno sul risultato dell'aggiornamento.Questo comando consente inoltre di generare un file di mapping utenti 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.In questo file è possibile specificare il percorso del database di Visual SourceSafe di cui verrà eseguito l'aggiornamento e delle cartelle di cui si desidera eseguire l'aggiornamento.
Il codice XML seguente 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>
</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>
Il comando Analizza consente di raccogliere e compilare i dati sugli utenti di Visual SourceSafe e di archiviarli 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, il comando Analizza crea un file denominato UserMap.xml e lo inserisce nella directory corrente.
Sezione <ProjectMap>
Nella sezione <ProjectMap>, specificare il percorso di ogni progetto Visual SourceSafe di cui si desidera eseguire la migrazione nell'attributo Source di un elemento <Project>.
Per eseguire l'aggiornamento di tutti i dati nel database di Visual SourceSafe, fare in modo che la sezione <ProjectMap> corrisponda all'esempio seguente:
<ProjectMap>
<Project Source="$/"></Project>
</ProjectMap>
Anziché eseguire contemporaneamente l'aggiornamento dell'intero database di Visual SourceSafe, è possibile eseguire l'aggiornamento dei progetti selezionati in momenti diversi.
Suggerimento |
---|
Utilizzare questa opzione per evitare il blocco del team durante l'aggiornamento se si dispone di grandi quantità di dati di cui eseguire l'aggiornamento. |
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 convertitore scrive il rapporto in un file denominato VSSAnalysisReport.xml e lo inserisce nella directory corrente.
Elemento <SQL>
È necessario specificare un database da far utilizzare a VssUpgrade per archiviare dati temporanei 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, utilizzare un'istanza locale di SQL Server Express nello stesso computer:
<Source name="VSS">
...
<SQL Server="fabrikam-2\sqlexpress"></SQL>
...
</Source>
Per indirizzare il convertitore a utilizzare SQL Server, ad esempio un server denominato FabrikamSQLServer
<Source name="VSS">
...
<SQL Server="fabrikamsqlserver"></SQL>
...
</Source>
Eseguire il comando Analizza
Dal menu Start di Windows, eseguire il Prompt dei comandi come amministratore.
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.
Quando richiesto, digitare la password di amministratore per il database di Visual SourceSafe.Se il database non ha password, premere INVIO.
VssUpgrade consente di visualizzare lo stato in corso mentre viene eseguito il comando Analizza.Una volta completato il processo, nel sistema vengono riepilogati i risultati.Ad esempio:
Analyze complete.
Analyzed 859 files and 941 folders.
Warnings 0 and Errors 0
Pre-migration report file: C:\VSS\migrate\VSSAnalysisReport.xml
Se fossero presenti avvisi o errori, è possibile trovare informazioni dettagliate in ConverterErrors.txt e in VSSUpgrade.log.
Il comando Analizza genera:
Un rapporto che è possibile utilizzare per ottenere dettagli sui possibili problemi e le modifiche che il comando Migra può causare.
Un file di mapping utenti (Usermap.xml) che è possibile utilizzare per specificare come i dati utente saranno convertiti durante il processo di aggiornamento.
Questi file vengono spiegati in modo più dettagliato in seguito.
Rivedere e risolvere i problemi rilevati dal comando Analizza
Il rapporto di analisi fornisce informazioni sui problemi nel database di Visual SourceSafe che possono causare problemi durante il processo di aggiornamento.Tentare di risolvere il maggior numero di problemi possibile per ridurre al minimo i problemi con 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 mantiene le informazioni sul completamento della transazione.Provare a garantire che tutti i file possibili siano verificati 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 del sito Web Microsoft: Utilità ANALYZE e Come rilevare e correggere gli errori di danneggiamento del database in Visual SourceSafe.
Alcune cartelle dei progetti mappati contengono la cronologia 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 sua cronologia, è necessario eseguire l'aggiornamento sia dei progetti originali che di quelli correnti.
Un esempio è costituito dall'aggiornamento del 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. |
|
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. |
|
Non viene eseguito l'aggiornamento della cartella. |
Il progetto che attualmente contiene la cartella, ma non il progetto che la conteneva in origine. |
|
Viene eseguito l'aggiornamento della cartella con la cronologia a partire da quando è 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, vedere la sezione <ProjectMap> descritta in precedenza 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 al momento dell'aggiornamento perché contengono caratteri non supportati dal controllo della versione TFS.Vedere Limitazioni di denominazione in Team Foundation Server.
Aggiornamento dei dati
Una volta eseguito il comando Analizza, è possibile eseguire l'aggiornamento dei dati.Prima di eseguire il comando Migra, è necessario creare un file di impostazioni.Facoltativamente, è possibile specificare come viene eseguito l'aggiornamento dei nomi utente.
Specificare la modalità di aggiornamento dei nomi utente
È possibile controllare quali informazioni utente vengono aggiornate da Visual Source Safe al controllo della versione TFS.In particolare, è possibile specificare quale nome utente il comando Migra deve associare a ogni 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 viene incorporato nel modo seguente:
Il campo Utente viene impostato sul nome dell'account in cui viene eseguito VssUpgrade.
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.In questo file viene elencato ogni utente di Visual SourceSafe che ha già eseguito un'operazione di controllo della versione nei progetti di Visual SourceSafe di cui viene eseguito l'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 su cui è in esecuzione , 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à aggiornato.
Creare un file di impostazioni della migrazione
Il file di impostazioni della migrazione viene utilizzato per specificare di quali dati di Visual SourceSafe si desidera eseguire l'aggiornamento 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.È quindi possibile aggiungere altri dati al file per renderlo utilizzabile da parte del 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>
</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 possono consentire di modificare il file di impostazioni di 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 della posizione 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 alla 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 trovarsi già 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'attributo Destination 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 riuscirà.
Tag <TeamFoundationServer>
Nella sezione <Settings>, aggiungere un tag <TeamFoundationServer> e specificare il nome, la porta, il protocollo e il percorso alla 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 numerose etichette che vengono applicate a una grande quantità di file, è possibile prolungare il processo di aggiornamento.Se il team non ha bisogno 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 nome del 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
Dal menu Start di Windows, eseguire il Prompt dei comandi come amministratore.
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 di migrazione creato.
Il comando Migra consente di visualizzare ogni progetto di cui viene eseguito l'aggiornamento dal database Visual SourceSafe e ogni cartella in cui verrà eseguito l'aggiornamento dei dati nel server per Controllo della versione di Team Foundation.
Quando richiesto, digitare la password di amministratore per il database di Visual SourceSafe.Se il database non ha password, premere INVIO.
Nel sistema viene riepilogato come eseguire 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.
VssUpgrade consente di visualizzare lo stato in corso mentre viene eseguito il comando Migra.Una volta completato il processo, nel sistema vengono riepilogati i risultati.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
Se fossero presenti avvisi o errori, è possibile trovare informazioni dettagliate in ConverterErrors.txt e in VSSUpgrade.log.
Il comando Migra genera un rapporto che è possibile utilizzare per ottenere dettagli sui possibili problemi e le modifiche che il comando Migra può aver causato.Vedere Eseguire i passaggi successivi all'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.Un 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.Quando il comando Migra chiede se si desidera 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 contenuto delle cartelle) specificato nella sezione <ProjectMap> relativa al file di impostazioni della migrazione.
Passaggio successivo
Visualizzare e verificare i risultati e risolvere i problemi in base alle necessità