[linux-l] Re: Versionskontrollen

Rocco Rutte pdmef at cs.tu-berlin.de
Mo Jan 29 09:17:22 CET 2007


Hi,

* Steffen Dettmer [07-01-28 22:13:51 +0100] wrote:
>* Rocco Rutte wrote on Sun, Jan 28, 2007 at 18:14 +0000:

[ atomare Commits bei SVN ]
>> Ich bin um CVS weitestgehend herum gekommen: Aber was passiert wenn bei 
>> einem großen Checkin nach 50% die Leitung wegbricht? Bei SVN und ihrer 
>> Datenbank löst das einen Rollback aus, d.h. pro Commit entweder ganz 
>> oder gar nicht. War es bei CVS nicht so, dass dann nur die Hälfte 
>> committed wurde?

>Ja, genau. Bei SVN wird das Rollback natürlich nur für *ein* Repository
>gemacht, nämlich dass, wo der check-in gerade "aktiv war". Dazu kommt
>noch, dass man das per script/command line machen muss [1]. Unterm
>Strich / in der Praxis hat man also das gleiche Problem: wenn jemand in
>der Zeit updated, gehts halt nicht.

Wenn das in der Praxis so ist, dann ist das ein SVN-Bug und zwar ein 
großer, also so groß, dass es unbenutzbar ist.

SVN behauptet transaktionsbasiert zu sein. D.h. alle User kriegen das 
Ergebnis der Transaktion nur dann zu sehen, wenn alles vollständig 
committet ist. D.h. solange ein großer Checkin nicht komplett durch ist, 
bekommt niemand auch nur Teile davon zu sehen. Einen Abbruch muss der 
Server handhaben und einen Rollback machen.

Ob sie das Repository jetzt global locken während einer Transaktion oder 
erst dann, wenn die Transaktion committet wird, ist für mich ein 
Implementierungsdetail. Zu irgendeinem Zeitpunkt muss das Repo ja mal 
global gesperrt werden, die Frage bleibt eben nur wann und wie lange das 
der Fall ist.

SVN sollte es aber so unterstützen; wenn nicht -> Tonne. :)

Und welche Art von Script/Befehl soll man hier benutzen müssen?

   bye, Rocco
-- 
:wq!



Mehr Informationen über die Mailingliste linux-l