2009-05-15 20 views
10

Ho giocato con SVN per un po 'e ho imparato ad amare il suo potere e la sua esperienza utente e che possiamo legarlo nel nostro sistema di tracciamento dei bug per semplificare la vita di tutti. Quindi è arrivato il momento in cui abbiamo deciso di migrare la nostra configurazione VSS 2005 in SVN e ora mi sto sbloccando.Qualcuno ha migrato con successo VSS 2005 in SVN?

Sembra che ci sia un numero di strumenti là fuori che pretendono di essere in grado di completare la migrazione da VSS 2005 a SVN, ma non riesco a capire quale sia il migliore o che mi fornirà il più completo transizione. Ne ho bisogno uno che migri la cronologia completa piuttosto che limitarsi a fare il check-out da VSS e controllare in SVN.

Ho trovato Polarion SVN Importer che sembra sia potente che altamente configurabile, tuttavia, non riesco a far funzionare quella dannata cosa, si lamenta che non può estrarre la lista dei file da $/in VSS. Se eseguo lo stesso comando è manualmente, tutto sembra funzionare bene, quindi non riesco a capirlo.

Qualcuno ha migrato correttamente la propria fonte da VSS 2005 a SVN e, in caso affermativo, quali strumenti ha utilizzato e quali sono stati i risultati? Eventuali avvertimenti o trucchi sarebbero molto utili, quindi conoscete bene tutto ciò che è stato utile/sorprendente o è stato deluso o semplicemente travisato.

+1

Mi piacerebbe contare l'eliminazione dell'intero repository VSS e il controllo dell'ultima versione in SVN come un grande successo :) –

+0

Poiché non riesce così presto nei file di elenco in $ /, forse prova un account non di sola lettura o un altro account conosciuto L'eccezione sembra un errore di account o permessi. O forse l'account utente singolo sta causando problemi. – Ryan

+0

lol @Mehrdad - Sono propenso a concordare; tuttavia l'obbligo di portare la storia non era mio. Ho appena archiviato il deposito esistente in un posto per la nostalgia e andare avanti. Forse un giorno potremo aprirlo e dire "Aww, che carino eravamo allora" ... – BenAlabaster

risposta

6

Prova la versione più recente del tronco (app per console) per VssMigrate su Codeplex per riordinare la cronologia e rigenerare i changeset dal repository VSS. Sarà anche ordinare i tuoi revisioni correttamente in base al momento in cui sono stati registrati.

http vssmigrate.codeplex.com/SourceControl/changeset/view/16890

Spero che questo aiuta. Potrebbero essere necessari alcuni aggiustamenti su $/import.

P.S. la cronologia ti aiuta a sapere chi dare la colpa in una singola fase piuttosto che dover scoprire se l'annotazione è corretta in base all'importazione, quindi la trovo piuttosto utile. È molto meglio averlo che non averlo quando si trovano bug nel vecchio codice.

P.P.S. È anche possibile utilizzare la nuova versione di VssMigrate per reimportare le revisioni in un repository di subversion e quindi unire in tutte le revisioni dopo l' l'ultima revisione di importazione dalla revisione precedente. L'unico inconveniente è che tutti dovranno ottenere un nuovo check-out dal repository perché il numero di revisioni sarà drasticamente ridotto. Fondamentalmente, perfom una nuova migrazione; svnadmin esegue il dump del repository precedentemente migrato attivo da rev migrato + 1 come incrementale e quindi del carico di svnadmin nel repository appena migrato.

+0

ottimo lavoro sugli aggiornamenti di VssMigrate jim0301. Il giorno prima che li hai commessi ho aggiunto la stessa funzionalità. Quando sono andato a offrire gli aggiornamenti, ho visto che li avevi appena commessi. E hai fatto un lavoro molto migliore di quello che ho fatto io. Grazie per l'aggiornamento. Sto migrando tutti i miei repository VSS in SVN ora per la scorsa settimana e non ho avuto problemi. Consiglio vivamente a chiunque voglia migrare VSS in SVN dovrebbe controllare l'ultimo commit dall'origine su codeplex. (in realtà l'unico problema che ho avuto è stato che dovevo nuovamente scaricare log4net e ricollegare le librerie, non sono sicuro del perché) – devSolo

+0

Qualcuno sa se VSSMigrate è compatibile con VSS 6.0d (Not VSS 2005) ?? - Lee –

3

L'ultima volta che ho provato questo era anni fa. Poiché il formato del file VSS non è stato documentato, per ottenere una cronologia completa il programma di conversione di terze parti ha dovuto utilizzare l'API VSS per ottenere ciascuna versione di ciascun file. Ho lasciato che quella conversione finisse il week-end, ho visto quanto aveva realizzato (pochi punti percentuali) e calcolato che ci sarebbero volute settimane di tempo per completare il calendario (avevamo anni di storia).

Abbiamo quindi deciso di spostare solo un'istantanea del codice più recente nel nuovo sistema di controllo della versione e mantenuto un archivio del database VSS per la cronologia.

+0

Grazie per il vostro contributo, abbiamo probabilmente un paio di anni di storia ma non abbiamo migliaia di progetti Per fortuna solo una manciata quindi spero che le cose siano andate avanti da allora ... – BenAlabaster

2

ho migrato con successo VSS 2005 per SVN diversi mesi fa. Ho usato lo strumento "VssMigrate.Tim2" che è apparentemente su CodePlex ora come vssmigrate. Ha funzionato bene senza grossi problemi. Sembrava che le revisioni ei timestamp non fossero ordinati come mi aspettavo, ma non era un grosso problema.

MODIFICA: con vssmigrate, è possibile scegliere di migrare un percorso VSS specifico (ad esempio $/GroupA/ProjectB) che riduce il tempo per la migrazione individuale e rende meno complesso il processo complessivo. Non ho trovato il processo troppo a lungo sebbene avessimo solo circa sei mesi di dati in VSS. Sono riuscito a completare la migrazione e l'installazione di Apache + SVN per un fine settimana. A seconda delle dimensioni del tuo repository VSS, potresti voler creare più repository SVN invece di un enorme repository singolo.

Sono estremamente contento che ci siamo trasferiti lontano dal VSS, anche se la configurazione di Apache + SVN non era troppo divertente (tentativi ed errori). Stavo considerando Git o Mercurial, ma nessuno dei due aveva uno strumento affidabile TortoiseXxx o plug-VS SCC al momento. Anche se ora che Google code ha supportato Mercurial e TortoiseHg sembra buono, sono tentato di provare presto Mercurial.

+0

Puoi approfondire quello che non era come ti aspettavi? Sarebbe una buona intuizione avere ... – BenAlabaster

+0

Sembrava che i numeri di revisione creati in SVN da VSS non fossero ordinati dal più vecchio al più recente. Mi aspettavo che i nuovi numeri di revisione SVN seguissero linearmente e sequenzialmente nel tempo le versioni VSS, ma quando ho guardato indietro al registro svn non sembrava seguire uno schema. Era semplice da ordinare per data/ora in TortoiseSVN, quindi non era un grosso problema per me. Ho anche guardato vss2svn ma ho deciso invece di vssmigrate. – Ryan

4

Ho provato entrambi Polarion e vss2svn circa un anno fa.

Abbiamo avuto molti anni di codice in VSS, e ho scoperto che dopo tutta la configurazione e il test che non ero del tutto soddisfatto dei risultati, il processo è stato lungo e fragile, e alla fine, ha deciso di inizia semplicemente con una nuova importazione del codice più recente.

Ci sono state alcune volte nell'ultimo anno in cui sono andato alla ricerca di una vecchia storia, ma non così tanto. Un altro vantaggio di iniziare è che il tuo nuovo repository SVN sarà molto veloce!

+0

Concordato - Abbiamo trovato questo approccio il 'più sicuro', il che significa che abbiamo il controllo su ciò che accade, ecc.Inoltre, abbiamo modificato la struttura in cui stiamo memorizzando il codice all'interno di SVN per lavorare con le nostre cose di tipo CI - indovinando che non sarebbe stato così semplice utilizzare uno strumento automatico? –

Problemi correlati