[Linux-Biella] Differenze cvs e svn
Emanuele Aina
em a nerd.ocracy.org
Lun 1 Ott 2007 21:41:58 CEST
Daniele (Mastro) domandò:
>> SVN ha i commit atomici, ma ha un modello di storia lineare che rende i
>> merge dei branch una tortura vietata dalla convenzione di Ginevra.
>
> cosa intendi per "storia lineare"?
Scenario SVN: progetto con file foo.txt, vuoto.
Io ne ho una copia.
Tu ne hai un'altra.
Io: «echo A > foo.txt»
Tu: «echo B > foo.txt»
Io: «svn commit» -> ok
Tu: «svn commit» -> errore: devi fare update
«svn update» -> conflitto
«echo AB > foo.txt»
«svn commit» -> ok
La storia sarà:
0 -> A -> AB
Come si vede manca la parte dove tu hai scritto B.
Scenario Mercurial (ma anche GIT, ecc.): sempre foo.txt, sempre vuoto.
Io ne ho una copia.
Tu ne hai un'altra.
Io: «echo A > foo.txt»
Tu: «echo B > foo.txt»
Io: «hg commit» -> ok
«hg push» -> ok
Tu: «hg commit» -> ok
«hg push» -> errore: stai creando una nuova testa (head)
«hg pull -u» -> conflitto
«echo AB > foo.txt»
«hg commit» -> ok
«hg push» -> ok
La storia sarà:
.-> A -.
0 -+ +-> AB
'-> B -'
Si tratta di un grafo diretto aciclico che rappresenta lo sviluppo
parallelo mio e tuo nonché il merge delle due modifiche in conflitto.
Come si vede non di è perso nulla di ciò che è avvenuto realmente.
Qui fa ridere, ma se invece di un solo commit ce ne sono dieci o cento
la situazione cambia.
> quali sono i problemi pratici nel creare un branch con SVN?
SVN non tiene conto dei merge, in particolare quelli intermedi.
Il che vuol dire che ti ritrovi a ripetere il merge di conflitti già
risolti ogni volta.
Forse adesso cominceranno a segnare i merge per venire incotro a SVK.
Speriamo.
>> GIT è veloce e complicato.
>>
>> Mercurial è veloce e semplice.
>>
>> Bazaar è lento e semplice.
>>
>> Darcs è strano, potente e mal funzionante.
>>
>> Se avete domande specifiche fate pure.
>
> beh son cose un po' generiche... :)
Servono solo come indirizzo.
> posso "fidarmi" :) ma ora vorrei capire, se hai tempo e voglia, cosa
> differenza tecnologicamente questi diversi sistemi di versionamento
> o almeno i principali :)
Nei rispettivi siti trovi le descrizioni che cerchi, non farei altro che
ripeterle qui...
> e in cosa sono superiori rispetto a SVN
Mi sembrava di aver già fatto esempi qua e là.
Comunque ribadisco che il video di Linus è molto preciso
nell'evidenziare le pecche di SVN.
--
Buongiorno.
Complimenti per l'ottima scelta.
Maggiori informazioni sulla lista
Linux