2013-04-23 13 views
6

ho clonato TFS repo mio locale Git e poi provato a cambiare TFS remoto a un altro repository per trasmettere tutti i changeset ad esso utilizzando i seguenti comandi:Git-TF spingere tutte le modifiche a un altro repository TFS

git tf --force configure http://tfs2012:8080/tfs/DefaultCollection $/ProjectName 

git tf checkin 

Afte che hai ottenuto il seguente errore:

git-tf: TF14019: The changeset 31129 does not exist 

Cosa c'è che non va?

PS: Vecchio repository ha una versione 2010, e nuova è 2012. nuovo repository è vuoto

risposta

3

sarei negligente se dovessi non parlare che git-TF non è stato concepito per essere un sostituto per un adeguato strumento di migrazione e integrazione.

Detto questo, se si vuole provare, non è sufficiente un repository git tf clone e quindi git tf checkin su un altro server. Le mappe git-tf si impegnano in changeset per garantire la coerenza negli archivi git e TFS. Quindi quando cambi il telecomando, va alla ricerca di quei changeset nel nuovo server.

Se si desidera realmente inviarlo al nuovo server, sarà necessario rimuovere il changeset su commit map.

Il modo più semplice e più efficace per eseguire questa operazione, senza interferire con i dati di configurazione, è semplicemente clonare il repository git e impostare il repository clonato con il nuovo server. Poi si può git tf checkin ad esso:

$ git clone ~/path/to/repo ~/path/to/cloned_repo 
Cloning into cloned_repo... 
done. 
$ cd ~/path/to/cloned_repo 
$ git-tf configure https://youraccount.visualstudio.com/DefaultCollection $/YourProject 
Configuring repository 
$ git-tf checkin 
Connecting to TFS... 
Checking in to $/YourProject: 100%, done.        

Dal git-tf Mappe solo un singolo repository TFS, questo permette anche di fare movimenti incrementali. Se, dopo la migrazione iniziale, ci sono nuovi changeset che si desidera migrare, è possibile trascinarli nel repository git clonato, quindi inviarli al nuovo server TFS senza riconfigurare.

$ cd ~/path/to/cloned_repo 
$ git pull ~/path/to/repo 
$ git-tf checkin 
Connecting to TFS... 
Checking in to $/YourProject: 100%, done. 
+2

Ho anche scoperto che la rimozione di cartella '.git/git-tf' può fare lo stesso effetto – skayred

+0

Oggi ho capito, quello che lei ha spiegato. Ora ha funzionato per me. Tuttavia questa risposta potrebbe essere migliore, se si aggiunge un'istruzione passo dopo passo dopo aver spiegato i passaggi in modo narrativo. Ho iniziato con questa risposta, dopo un paio di giorni alla fine ho fatto i passaggi nel modo in cui lo hai descritto. Ho dovuto impararlo nel modo più duro. –

+0

@SaschaGottfried Sono contento che sia stato utile e mi scuso per la confusione. Grazie per le modifiche, sono d'accordo che questo è molto più utile. –

Problemi correlati