Ho deciso di passare a
Git per il repository della mia
code base privata. Di seguito un breve log dei principali
step della migrazione.
- Conoscevo Git in linea teorica ma non l'avevo mai usato (sono un utilizzatore di SVN da molti anni ...) quindi ho scelto queste risorse per acquisire un minimo known-out iniziale:
- Scelto un servizio di host: Volevo provare GitHub, sul quale mi sono registrato, ma purtroppo con l'account gratuito è possibile creare solo repository pubblici, così ho optato per il servizio di hosting offerto Assembla. (GitHub l'ho utilizzerò in seguito per pubblicare un eventuale progetto open source...)
- Ho scelto come client windows GitHub for Windows, senza per il momento utilizzare/configurare la connessione verso il portale GitHub.
- Ho
creato cercato di creare il mio primo repository facendo un clone dal repository privato inizializzato su Assembla, ma prima era necessario risolvere un problema di sicurezza, in quanto il comando git clone falliva con un errore di sicurezza ...
- Ho seguito la soluzione trovata in questo post permission denied git push FATAL: COULD NOT READ FROM REPO: In altre parole ho dovuto creare, nel profilo locale, un certificato per la crittografia SSH con l'utility ssh-keygen e installare la chiave pubblica nel profilo di Assembla (NOTA: tutte le operazione a riga di comando le ho eseguite dalla powershell di GitHub for Windows)
- Ho quindi potuto eseguire con successo il clone del mio repository in locale (vuoto) con il comando git clone git@git.assembla.com:xxx.yyy.git
- Ho fatto la mia prima commit Git e quindi sincronizzato il mio repository (effettuando la mia prima push :))
- Volevo copiare il mio repository SVN mantenendo tutta la storia delle commit. Dopo aver fatto parecchie ricerche su Internet ...
- Ho clonato il repository SVN trasformando in un repository Git con il comando git svn clone [SVN repo URL]
- Ho seguito, in parte, i suggerimenti di questo post How to import existing GIT repository into another?: ho creato un branch sul mio nuovo repository Git, ho importato tutto il repository Git clonato da SVN, ho mergiato il branch sul trunk e quindi ho aggiornato il server.
Sono solo all'inizio e ho ancora molto da imparare ... però l'esperienza di usare un
DVCS quale Git mi entusiasma molto, ora sto iniziando a capire meglio le sue potenzialità quali il
Branching, che in Git è "quasi magico" unito alla potenzialità di un repository distribuito.