Ik heb jaren CVS gebruikt en dat bevalt redelijk. Het is een redelijk minimale en nogal 'ruwe' manier van versiebeheer als je het vergelijkt met de nieuwe systemen. Het probleem is nu het kiezen van een opvolger en dat is nogal lastig, er zijn flink wat alternatieven met allemaal hun eigen voordelen.
Subversion (svn) is een heel erg populair alternatief voor CVS. Het lijkt sterk op CVS maar heeft daardoor ook een aantal beperkingen van CVS (het is gecentraliseerd b.v.). Grootste voordeel van svn is dus dat het vertrouwd terein is (het werkt bijna 100% hetzelfde voor de gebruiker) en er zijn veel tools (GUIs e.d.) voor.
SVK is een gedecentraliseerde versie van SVN, het is als het ware een Perl schil om de basis van SVN heen. Veel makkelijker mergen, mirroren en dus vooral gedecentraliseerd.
Bazaar (bzr) is een soort van 'ultieme' SCM tool maar is nogal lastig in gebruik.
Darcs werkt via de 'Theory of Patches', erg leuk idee, erg simpel in gebruik en ook in opzet, heel flexibel daardoor. Geschreven in Haskell wat het iets minder toegankelijk maakt en waardoor het wat aan de trage kant is bij het gebruik met erg grote repositories.
Dan hebben we ook nog Perforce, Monotone, Mercurial, Aegis, etc, etc.
Het probleem is nu: wat kan ik het beste gebruiken
Wat voor een ervaringen hebben jullie? Daarnaast zit ik met een redelijk specifiek probleem:
Ik heb een codebase die van een externe partij komt (noem het even Project A). Deze code is aangepast voor, zeg, 3 klanten. Klant 1, 2 en 3. Nu zijn er aan Project A een aantal features toegevoegd namelijk Feature I, Feature II en Feature II. Klant A gebruikt alleen I en II, Klant B gebruikt II en III en Klant C gebruikt features I en III. Stel nu even dat het ivm licenties e.d. niet mogelijk is om alle klanten dezelfde codebase te geven maar dan met bepaalde features uitgeschakeld.
Hoe ga je dit in hemelsnaam bijhouden? Aan de ene kant heb je de externe code welke je ook nog eens wilt onderhouden. Als je daar een bug in vindt dan wil je die bug fixen, in de code van alle klanten integreren en naar de externe partij sturen die Project A beheert. Verder wil je dat als je een bug fixed in Feature I dat deze fix dan bij zowel klant A en C doorgevoerd wordt. Als bonus zou het helemaal prettig zijn als je Feature I zou kunnen isoleren als patch tov de externe code zodat je deze feature richting externe partij kan sturen of zodat je deze ook bij de nieuwe klant D kan implementeren.
Iemand _enig_ idee hoe je dit op zou kunnen lossen? Ik heb me helemaal suf zitten lezen en iedere keer lijkt er wel weer iets te missen of niet te werken zoals ik het wil in een SCM systeem
Subversion (svn) is een heel erg populair alternatief voor CVS. Het lijkt sterk op CVS maar heeft daardoor ook een aantal beperkingen van CVS (het is gecentraliseerd b.v.). Grootste voordeel van svn is dus dat het vertrouwd terein is (het werkt bijna 100% hetzelfde voor de gebruiker) en er zijn veel tools (GUIs e.d.) voor.
SVK is een gedecentraliseerde versie van SVN, het is als het ware een Perl schil om de basis van SVN heen. Veel makkelijker mergen, mirroren en dus vooral gedecentraliseerd.
Bazaar (bzr) is een soort van 'ultieme' SCM tool maar is nogal lastig in gebruik.
Darcs werkt via de 'Theory of Patches', erg leuk idee, erg simpel in gebruik en ook in opzet, heel flexibel daardoor. Geschreven in Haskell wat het iets minder toegankelijk maakt en waardoor het wat aan de trage kant is bij het gebruik met erg grote repositories.
Dan hebben we ook nog Perforce, Monotone, Mercurial, Aegis, etc, etc.
Het probleem is nu: wat kan ik het beste gebruiken
Ik heb een codebase die van een externe partij komt (noem het even Project A). Deze code is aangepast voor, zeg, 3 klanten. Klant 1, 2 en 3. Nu zijn er aan Project A een aantal features toegevoegd namelijk Feature I, Feature II en Feature II. Klant A gebruikt alleen I en II, Klant B gebruikt II en III en Klant C gebruikt features I en III. Stel nu even dat het ivm licenties e.d. niet mogelijk is om alle klanten dezelfde codebase te geven maar dan met bepaalde features uitgeschakeld.
Hoe ga je dit in hemelsnaam bijhouden? Aan de ene kant heb je de externe code welke je ook nog eens wilt onderhouden. Als je daar een bug in vindt dan wil je die bug fixen, in de code van alle klanten integreren en naar de externe partij sturen die Project A beheert. Verder wil je dat als je een bug fixed in Feature I dat deze fix dan bij zowel klant A en C doorgevoerd wordt. Als bonus zou het helemaal prettig zijn als je Feature I zou kunnen isoleren als patch tov de externe code zodat je deze feature richting externe partij kan sturen of zodat je deze ook bij de nieuwe klant D kan implementeren.
Iemand _enig_ idee hoe je dit op zou kunnen lossen? Ik heb me helemaal suf zitten lezen en iedere keer lijkt er wel weer iets te missen of niet te werken zoals ik het wil in een SCM systeem