Dove posso trovare le risorse "SVN per utenti Git"? [chiuso]

16

Quindi ho preso un lavoro in cui l'azienda utilizza SVN (ma in futuro si trasferirà a Git). Il problema è che non conosco SVN. Ho provato numerose query su Google e tutto quello che riesco a trovare sono le esercitazioni SVN- > Git, "Perché Git è meglio di SVN" e un particolare "cheat sheet" che fornisce (alcuni) comandi comparabili ...

A corto di leggere il libro di O'Reilly su SVN, quali sono le istruzioni brevi (ma non troppo brevi) a SVN per gli utenti Git?

    
posta agent154 01.05.2014 - 14:48
fonte

2 risposte

6

Il riferimento canonico è Subversion RedBook . Indipendentemente dalle tue abilità passate, leggi questo da fresco e otterrai tutte le informazioni di utilizzo di cui hai bisogno. Non è difficile o completamente alieno, molte persone dicono che SVN è molto più facile da capire di git, quindi dovresti stare bene con solo un po 'di lettura dei comandi principali. Il capitolo sull'uso di base dovrebbe essere pronto per l'uso senza problemi.

Ci sono 2 differenze principali:

  • commit = invia al repository centrale. Non c'è rebase o commit locale, né pull.
  • la ramificazione è per directory. È meglio pensare all'intero repository come a una struttura di directory, la ramificazione è come creare un collegamento simbolico con la semantica copy-on-write. Considerando che in git si dirama l'intero repo e si passa da uno all'altro in modo che il nuovo ramo "copra" la propria copia di lavoro, con SVN è possibile scambiare parti del proprio repo. Generalmente le persone si diramano in una cartella di primo livello (di solito chiamate diramazioni), quindi il passaggio diventa molto più simile allo stile di lavoro "overlay" di git.

La ramificazione è banale, la fusione non è affatto lontana come gli apologeti di DVCS, specialmente se ci si attiene al trio "standard" di cartelle di livello superiore (chiamate trunk, branches e tag).

Ci sono alcuni bit in cui SVN batte git in, mi vengono in mente le directory sparse - dove si controlla solo una parte del repository. Quando hai bisogno di più parti, aggiorni solo ciò di cui hai bisogno. Se si dispone di un repository enorme (ad esempio un prodotto principale e un sacco di plugin) questo è geniale.

Ci sono alcuni bit che non sono buoni come git, viene in mente il terribile conflitto con gli alberi - dove hai un conflitto a livello di directory (cioè qualcuno ha cancellato un file che hai modificato)

Se sei su Windows, usa TortoiseSVN. Scuote principalmente.

    
risposta data 01.05.2014 - 16:04
fonte
3

Usa git svn se possibile. Sono stato nella tua situazione e dopo mezzo anno di frustrazione sono passato a git svn e da allora sono stato felice.

Git svn ti permette di usare il repository localmente e il commit sul server SVN viene poi gestito da un git svn rebase che rebase le tue modifiche locali sul tronco di subversion e poi git svn dcommit che commette i commit rebased.

Forse non è ottimale per l'uso avanzato di Subversion, ma dal momento che stai usando git localmente tutto va bene.

Quando usi git clone non devi clonare la cartella root di subversion ma la directory di destinazione direttamente (clone trunk ). Ciò renderà git molto più veloce, altrimenti la tua copia di lavoro può diventare enorme.

Disclaimer : non so come sia la situazione quando si vogliono creare rami Subversion, ecc. I team con cui ho lavorato non usavano i branch (solo io rami git locali).

    
risposta data 01.05.2014 - 15:57
fonte

Leggi altre domande sui tag