Distributed Version Control

Pagina: 1
Acties:
  • 143 views sinds 30-01-2008
  • Reageer

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18
Ik ben de laatste tijd wat gaan kijken naar Distributed Version Control Systems (zoals Mercurial, git, monotone en darcs) en vroeg me af of hier onder Nederlandse tweakers al ervaring mee bestaat.

Ik ben zelf de afgelopen tijd begonnen met Mercurial, naar aanleiding van het bericht dat Mozilla op Mercurial gaat overstappen. Daarnaast heb ik ook de relevante Tech Talk van Linus Torvalds over het door hem geschreven VCS git en DVCS in het algemeen.

Zijn jullie al klaar om Subversion (of, God forbid, CVS) te laten vallen en gedistribueerd te gaan werken?

Rustacean


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Zolang Apache nog op SVN draait, zie ik nog geen reden om over te stappen eerlijk gezegd. Wat is volgens jou de grote toegevoegde waarde? Praktisch gezien dan...

Fat Pizza's pizza, they are big and they are cheezy


  • Badger
  • Registratie: November 2000
  • Laatst online: 01-09 10:18
Een normaal VCS valt of staat bij de deelname van je collegas. In mijn situatie wil nog niet iedereen aan het VCS alhoewel er wel Subversion draait (te moeilijk/begrijpt het niet/te veel moeite).
Mijn prio is eerder iedereen gewend te krijgen aan het idee van Subversion voordat ik op zoek ga naar een ander systeem.

Mercurial ziet er iig intressant uit en kan ook geintegreerd worden met Eclipse.

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18
JKVA schreef op zaterdag 09 juni 2007 @ 09:28:
Zolang Apache nog op SVN draait, zie ik nog geen reden om over te stappen eerlijk gezegd. Wat is volgens jou de grote toegevoegde waarde? Praktisch gezien dan...
Voor open source-projecten is het heel nuttig als er een minder groot verschil is tussen committers en non-committers. Met een DVCS kunnen non-committers gewoon hun eigen clone publiceren met daarin hun eigen patches. Deze kunnen dan gemakkelijk door andere users (eventueel committers) worden gepulld naar een "officiële" clone, zodat de samenwerking met users vereenvoudigd wordt. Doordat elke changeset expliciet een of meer parents met zich meedraagt is ook direct duidelijk wat de "dependencies" van een bepaalde changeset zijn.

Daarnaast is een DVCS in zekere zin een veel natuurlijker manier van werken, namelijk via een web of trust. 1 iemand beheert bijvoorbeeld de officiële tree, hij/zij heeft een aantal mensen die hij/zij vertrouwt, deze kunnen ook weer mensen hebben van wie zij de code vertrouwen. Dat biedt een wat natuurlijker manier van werken dan de gecentraliseerde manier, waar er slechts een klein groepje toegang heeft en de rest eigenlijk helemaal niet. Tegelijkertijd bieden de DVCS'en wel weer de mogelijkheid om gecentraliseerd te werken, ze eisen het alleen niet.

En jij hebt het over Apache, maar Mozilla is zoals gezegd bezig met overstappen naar Mercurial, GCC heeft inmiddels een Mercurial mirror, FreeBSD is al een tijd bezig met het evalueren van Mercurial, ik geloof dat KDE git evalueert, Xen en OpenSolaris draaien op Mercurial, X.org draait op git, enzovoorts. Ik geloof dat distributed version control, zoals de overgang van CVS naar SVN, een kwestie van tijd is.

Rustacean


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Manuzhai schreef op zaterdag 09 juni 2007 @ 12:59:
[...]
Voor open source-projecten is het heel nuttig als er een minder groot verschil is tussen committers en non-committers. Met een DVCS kunnen non-committers gewoon hun eigen clone publiceren met daarin hun eigen patches. Deze kunnen dan gemakkelijk door andere users (eventueel committers) worden gepulld naar een "officiële" clone, zodat de samenwerking met users vereenvoudigd wordt. Doordat elke changeset expliciet een of meer parents met zich meedraagt is ook direct duidelijk wat de "dependencies" van een bepaalde changeset zijn.

Daarnaast is een DVCS in zekere zin een veel natuurlijker manier van werken, namelijk via een web of trust. 1 iemand beheert bijvoorbeeld de officiële tree, hij/zij heeft een aantal mensen die hij/zij vertrouwt, deze kunnen ook weer mensen hebben van wie zij de code vertrouwen. Dat biedt een wat natuurlijker manier van werken dan de gecentraliseerde manier, waar er slechts een klein groepje toegang heeft en de rest eigenlijk helemaal niet. Tegelijkertijd bieden de DVCS'en wel weer de mogelijkheid om gecentraliseerd te werken, ze eisen het alleen niet.

En jij hebt het over Apache, maar Mozilla is zoals gezegd bezig met overstappen naar Mercurial, GCC heeft inmiddels een Mercurial mirror, FreeBSD is al een tijd bezig met het evalueren van Mercurial, ik geloof dat KDE git evalueert, Xen en OpenSolaris draaien op Mercurial, X.org draait op git, enzovoorts. Ik geloof dat distributed version control, zoals de overgang van CVS naar SVN, een kwestie van tijd is.
Oh, het is niet dat ik Mozilla minder vind dan Apache, maar ik zit bij Apache iets dichter bij het vuur. Als het echt voordelen heeft, dan geloof ik graag dat het eraan komt.

Maar is het enige voordeel dat je op basis van trust kunt werken? Dat kan bij SVN namelijk ook. Als mensen je vertrouwen (of al je patches beu zijn) wordt je vanzelf wel committer en wordt je vertrouwd. Dan heb je je trust verdiend.

Want als ik het goed begrijp krijg je bij DVCS een enorme (vrijwel niet gecontroleerde) userbase? Hoe werkt dat dan als iemand kwade bedoelingen heeft en met code knoeit?

offtopic:
Ik ben vrij paranoia op internet.

Fat Pizza's pizza, they are big and they are cheezy


  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 27-11 16:36
Dat is dus juist het mooie van DVCS.

Als ik jou niet vertrouw, dan haal ik gewoon geen patches uit jou repository. Daarom is die trust zo belangrijk. Overigens heb je met DVCS nog steeds de noodzaak tot een centrale referentie repository waaruit de officiele releases komen.

Een nadeel van een systeem als SVN is dat je niet kunt comitten terwijl je op je eigen werk bezig bent.

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

The - DDD schreef op zaterdag 09 juni 2007 @ 19:21:
Dat is dus juist het mooie van DVCS.

Als ik jou niet vertrouw, dan haal ik gewoon geen patches uit jou repository. Daarom is die trust zo belangrijk. Overigens heb je met DVCS nog steeds de noodzaak tot een centrale referentie repository waaruit de officiele releases komen.

Een nadeel van een systeem als SVN is dat je niet kunt comitten terwijl je op je eigen werk bezig bent.
Aha, nu heb ik hem. Je krijgt dus een soort tree ofzo met repo's. En de eigenaar van de main repo bepaalt dus of hij/zij jou vertrouwt. (het duurt ff, maar dan... :P)

Fat Pizza's pizza, they are big and they are cheezy


  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 27-11 16:36
je bent er bijna...

Er is geen tree van repo's. Iedereen heeft een repository van zichzelf. Uitwisseling tussen de verschillende repositories is iets wat naar keuze en willekeur van de eindgebruiker plaats zal vinden. Technisch is geen enkele repository meer of betekenisvoller dan die van een ander.

Het doel van een DVCS is om al het mergen tussen repositories in goede banen te leiden.

Persoonlijk heb ik al is met Darcs en Mercurial zitten proberen. Mooie is dat van die twee er inmiddels een beetje redelijke tool support begint te ontstaan.

[ Voor 16% gewijzigd door The - DDD op 09-06-2007 21:27 ]


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18
Ja, ik was nog vergeten dat je dus ook off-line de beschikking hebt over de gehele geschiedenis (dus diff gaat nooit over het netwerk en je kunt ook committen vanuit de trein, de auto, of het vliegtuig). Dat kan ook enorme voordelen hebben, afhankelijk van hoe veel off-line tijd je hebt.

Rustacean


  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 27-11 16:36
Overigens als je met SubVersion distributed wilt werken, dan kan dat met behulp van SVK.
Pagina: 1