2009-12-16 22 views
9

OK, quindi ho avviato un contratto in cui stanno utilizzando (gulp) Visual SourceSafe e stanno cercando di passare a qualcosa di meglio. Ho consigliato Git. Mi sono imbattuto in vss2git, che sembra utile per la migrazione da VSS. Qualcuno l'ha usato?Qualcuno ha provato con vss2git?

Grazie mille!

+0

Senza voler essere scomodo, GIT è inadatto per un'organizzazione basata su Windows (gli strumenti non sono ancora * abbastanza *) e un enorme salto per uno usato per VSS. Né, per tutti i suoi vantaggi, è DVCS senza problemi. Sono assolutamente lieto di spostarli in avanti (a TFS, SVN, Mercurial, GIT o qualsiasi altra cosa). – Murph

+3

Penso che gli strumenti siano meno un problema della mentalità prevalente di molti sviluppatori di Windows: se ti senti a tuo agio in una shell bash, allora hai tutti gli strumenti necessari con Git Bash! In definitiva, * qualsiasi cosa * è meglio di VSS. Subversion è ok, e l'ho usato per anni, ma non rende esattamente la ramificazione/fusione facile. – Radicalise

+1

La ramificazione è adeguatamente banale in SVN sotto Windows (permettendo che io usi TortoiseSVN) - Non sono sicuro che vorrei che fosse molto più facile, anche l'unione non è esattamente difficile (la sua mentalità è il problema) e molto meglio dal 1.5 . In realtà, tuttavia, è una questione di trovare gli strumenti appropriati per l'ambiente nel suo complesso piuttosto che spingere le tue scelte perché sei a tuo agio con loro (per non dire che hanno torto - o il mio sono meglio - solo per suggerire che ha bisogno di essere visto da un paio di passi indietro). – Murph

risposta

2

Beh, non ci sono molti commit, e la descrizione del progetto dice che è stata sviluppata inizialmente per la società del creatore, quindi probabilmente non ha avuto un uso molto diffuso.

Detto questo, varrebbe la pena dargli una prova su copia del database VSS. Se funziona bene allora, se no, allora forse puoi lavorare un po 'sul codice o contattare l'autore per aiuto/suggerimenti.

+1

OK, buoni punti, grazie. Sto * sperando * di convincerli che la loro cronologia delle versioni non vale la pena di preoccuparsi, ma poiché probabilmente non funzionerà, quindi trovare un modo per migrare la cronologia sarà importante - l'ultima cosa che voglio è avere VSS in giro. – Radicalise

26

Sono l'autore di vss2git. Se la cronologia delle versioni non comporta molte azioni specifiche di VSS, come condivisioni e archivi, il repository dovrebbe migrare senza problemi. Ho apportato una serie di correzioni in quelle aree sulla base del feedback di altri utenti, quindi c'è una ragionevole possibilità di successo anche se lo fa.

Vorrei sottolineare che il numero di commit del progetto su Google Code non è del tutto indicativo della quantità di raffinatezza che ha subito; gran parte dello sviluppo è stato versionato in un repository Git privato, con solo le versioni trasferite a SVN. Tuttavia, ripeterò ciò che altri hanno sottolineato: Esegui sempre vss2git su una copia del tuo repository. I file vengono aperti in sola lettura, ma non si desidera bloccare i problemi quando un altro utente tenta di aggiornare il repository in VSS lasciandolo in uno stato incoerente.

Per quanto riguarda Git su Windows, funziona benissimo in questi giorni (io uso msysgit), anche per gli sviluppatori senza uno sfondo Unix. (I miei colleghi Delphi solo per Windows lo hanno raccolto senza problemi e sembrano adorarlo.) Naturalmente, se gli sviluppatori sono allergici all'utilizzo da riga di comando e richiedono l'integrazione della GUI con vari IDE, si potrebbe stare meglio con SVN. Perderai la straordinaria velocità e flessibilità di un DVCS, ma SVN ha un'integrazione più matura. E presumibilmente la ramificazione SVN non è più dolorosa come una volta.

+2

solo per aggiornare, poiché sono sicuro che tutti sanno che l'integrazione tra git e vari IDE ha fatto molta strada, con MS persino incluso in VS2013 – BlackICE

+0

@BlackICE - https://www.humankode.com/security/how-a -bug-in-visual-studio-2015-exposed-my-source-code-on-github-and-cost-me-6500-in-a-poche-ore – JohnP

+0

Trevor - Il tuo VSS2Git funzionerà su 5.0? – JohnP

-1

Apparentemente vss2git non convertirà il contenuto archiviato. Il nostro database è stato danneggiato irreparabilmente un paio di anni fa, quindi abbiamo archiviato e ripristinato da un backup per andare avanti con un database più piccolo e più semplice. Vss2git funziona, ma il repository git non contiene la cronologia prima del ripristino.

+3

Altre persone hanno migrato contenuto archiviato e ripristinato. Se è possibile riprodurre il problema su un repo VSS che si è disposti a condividere, è necessario segnalare il problema sulla mailing list vss2git. –

4

Ho provato vss2git su quattro diversi database VSS e ha funzionato perfettamente ogni volta. Il numero di commit variava da 100 a 700.

3

Provo a dare una risposta più precisa possibile alla domanda "Qualcuno l'ha usato?" : "Sì, l'ho fatto!"

rischiando di nuovo la cancellazione della mia risposta ho aggiungere un po 'più contenuti:

non scaricare il ramo "master", ma usano il "Remigius" ramo. Ha alcune importanti correzioni

comando Git: clone git -b Remigius https://code.google.com/p/vss2git/

0

ho usato su una piccola parte (una sottodirectory con circa 350 file con 3400 commit) della nostra banca dati VSS. E 'andata abbastanza bene, i seguenti punti possono essere di interesse:

  • nel repository git crea la il percorso completo per la sottodirectory come è stato nel repository VSS - si può cambiare questo facilmente con 'git mv 'tardi
  • la cronologia risale al momento in cui un file è stato condiviso nella sottodirectory (non si ottiene alcuna cronologia precedente nella directory "source")
  • etichette di file (etichette che sono state create sui file , non sulle directory) sembrano perdersi (non credo che mi servirebbero comunque)

Pinning sembra essere un problema (probabilmente perché è una caratteristica abbastanza VSS unica):

  • in VSS abbiamo avuto alcuni file è bloccato a una versione precedente quando abbiamo fatto un'etichetta per contrassegnare questa versione del progetto (questi file sono stati sbloccati in seguito).
  • nel repository git l'etichetta è stata convertita in un tag. Ma questo tag contiene le versioni dei file della data in cui è stata creata l'etichetta, non le versioni a cui sono stati aggiunti questi file in questo momento. (Non so come si possa affrontare questa situazione in git ma almeno vale la pena sapere - AFAIK questo non è menzionato da nessuna parte)
Problemi correlati