[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