Domanda

Esiste un modo per migrare SourceSafe con HISTORY in un SVN?

Idealmente mi piacerebbe usare VisualSVN Server, ma non voglio davvero perdere la mia cronologia di SourceSafe. Se devo, lo farò.

È stato utile?

Soluzione

Molto tempo fa (sembra) ho provato a migrare un DB SourceSafe alla sovversione usando vss2svn , ma alla fine ha rinunciato. Ci sono stati diversi problemi, IIRC:

  • devi assicurarti che il database SS sia coerente (ad es. Analizzare non trova alcun problema o è in grado di risolverli).
  • ci è voluto molto tempo per migrare il DB, perché era abbastanza grande.
  • infine la migrazione non è riuscita a causa di alcuni problemi con le date di analisi. Non sono stato in grado di trovare il motivo del problema, ma suppongo che fosse dovuto al fatto che usiamo il formato data GG.MM.AAA anziché il formato data USA.

Quindi alla fine abbiamo deciso di mantenere intatto il database SourceSafe (sola lettura) e migrare la versione corrente in sovversione. Finora, c'erano pochissime occasioni in cui dovevamo tornare su SourceSafe per controllare qualcosa.

Spero che questo aiuti.

BTW: non importa se si utilizza VisualSVN Server o direttamente la sovversione (svnserver). Il formato del repository è lo stesso in entrambi i casi.

Altri suggerimenti

Prova lo script vss2svn .

O il progetto vss2svn .

Ho convertito con successo il nostro brutto database VSS, inclusa la cronologia. Scrivo un blog sull'esperienza < strong> qui. Il momento saliente della conversione è:

" Tutti gli strumenti di conversione richiedevano anche che il database VSS di origine fosse privo di corruzione prima della conversione. Ciò si è rivelato molto più difficile e dispendioso in termini di tempo di quanto si possa pensare. L'esecuzione dello strumento di analisi VSS su una copia del database mostrava centinaia di corruzioni e non sarebbe stata completata senza lo screening blu del computer su cui era in esecuzione.

Per ovviare a ciò abbiamo ridotto il database delle copie eliminando le directory che non volevamo convertire. Sfortunatamente VSS segnalerà ogni corruzione durante il processo di eliminazione causando centinaia di finestre di messaggio che l'utente deve fare clic senza pensarci affinché il processo continui.

Una volta raggiunto quel punto, abbiamo usato lo strumento VSS2SVN per creare file di dump che sono stati importati in Subversion. "

Abbiamo utilizzato Polarion SVN Importer per migrare VSS su SVN con cronologia completa .

Sì, utilizzare il progetto VSS2SVN su Codeplex . L'ho aggiornato in modo da mantenere la cronologia, i commenti, le proprietà dell'autore e della data durante la migrazione a SVN. Ci vuole un po 'più di tempo, ma non credo che sia importante perché non è qualcosa che fai tutti i giorni.

Ha anche un'opzione per aggiornare il repository con file da VSS oltre una certa data, in modo da poter aggiornare un dump iniziale in seguito.

Nella mia azienda ho provato ripetutamente a migrare un repository SourceSafe (grande) su Subversion con vss2svn. Ho anche causato un piccolo contributo per quanto riguarda il supporto della tabella codici (avevamo nomi di file in greco). Se ricordo bene (ciò è accaduto la scorsa primavera; cioè del 2009), il nostro problema principale (quello che ci ha fatto chiudere definitivamente la migrazione) era che i file eliminati permanentemente che erano stati reticolati / spostati tra parti desiderate e indesiderate del repository stavano bloccando la migrazione.

Il mio consiglio: se non puoi farlo in un repository Analizzato completamente, non perdere altro tempo. Basta tracciare una linea e iniziare con un nuovo repository di sovversione.

Nota: l'eliminazione permanente di un file in SourceSafe rende il file totalmente irrecuperabile, il che è qualcosa di completamente incompatibile con i sistemi di controllo del codice sorgente CVS / SVN (e, suppongo, anche con altri sistemi di controllo del codice sorgente).

La mia azienda ha sviluppato uno strumento di migrazione da Sorgente sicura a Subversion: http://www.abstrakti.com/Products/Krepost

Questo strumento è stato sviluppato dopo aver avuto problemi con ogni altro strumento, quando abbiamo dovuto migrare il repository di un cliente. Inoltre, questo è l'unico strumento che può importare etichette SourceSafe in SVN. Inoltre, è in grado di gestire la maggior parte delle corruzioni del repository SourceSafe e offre una migrazione indolore agli utenti che non vogliono passare qualche giorno a eseguire il debug nel codice C #.

Fammi sapere se hai qualche problema, sarò felice di aiutarti.

Eric.

Sono riuscito con successo a migrare i vari repository sicuri di origine in SVN usando lo script vss2svn . I miei suggerimenti sono, fatelo in piccoli pezzi: avevamo molti piccoli progetti e un paio di progetti di livello medio, che sono riusciti tutti a spostarsi con successo in SVN.

Ho avuto un paio di problemi:

  • I file di grandi dimensioni non sono stati scritti nel formato di file di dump SVN, ho inviato una patch per farlo funzionare, penso che qualcuno l'abbia scritto un po 'più sofisticato dopo che ho finito.
  • La struttura della directory principale non è stata copiata correttamente. Il repository VSS è stato organizzato come $ / client / progetto. Il repository svn ha finito per essere organizzato come svn: // server / randomdirectory / anotherrandomdirectory / client / project. Quindi ho risolto questi problemi modificando il dumpfile prima di importarlo (penso che sia stato trovato sostituisci " / randomdirectory 'con' '.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top