Intro
Beste allen, aub niet meteen dit topic sluiten, ik weet best hoe google werkt, ook hoe cvshome werkt, en ook hoe nieuwsgroepen werken. Wat ik echter niet weet is hoe op verstandige manier met meerdere personen kunt werken met CVS.
Uiteraard hebben we meerdere dingen geprobeerd. Release tags, branches, met z'n allen op de root branch, maar niets werkt lekker.
Werkmethode
Wat we op dit moment doen is als volgt:
Oftwel: er is 1 hoofdbranch. Hierop werkt niemand. Iedereen heeft zijn eigen branch, waarop iemand op elk moment een commit kan doen, zonder iemand anders dwars te zitten (zeker als iedereen ergens anders aan werkt, en code nog niet stabiel is, is dit handig). Deze branches worden niet live gezet, enkel de main branch wordt live gezet. Om dit te doen, moeten eerst de updates van de main branch naar de branch gemerged worden van degene die iets live gaat zetten, waarna getest kan worden. Na testen, wordt alles richting de main branch gecommit, en zou het 'klaar' moeten zijn.
De commando's die we daarvoor uitvoeren zijn dit:
(Deze stappen zijn nog onjuist ook, omdat de tag op de eigen boom komt, ipv de main branch.)
Nadelen
Aan deze oplossing (als het er 1 is) zitten wat nadelen. 1 daarvan is dat het lastig is om te mergen van de main branch naar je eigen branch. Door een hoop mensen wordt dit ook niet aanbevolen. Verder zijn er wat issues met het verder werken na een commit richting de branch. Uiteraard willen we terug in de tijd kunnen, om een commit moment uit te checken, een bug te fixen, en de fix te mergen met de main branch. Maar dit lukt niet helemaal, waardoor we op dit moment steeds een nieuwe boom splitsen.
Vraag
Wat ik me nu afvraag is het volgende:
Hoe zorg ik er voor dat:
1) We met meerdere mensen tegelijkertijd aan hetzelfde project kunnen werken?
2) We terug in de tijd kunnen om 'dingen' te fixen?
3) Deze fixes weer samenvoegen met alle andere code?
Oftwel: hoe werken jullie met CVS, en welke commando's gebruiken jullie daarvoor?
Alvast bedankt voor de hulp!
Beste allen, aub niet meteen dit topic sluiten, ik weet best hoe google werkt, ook hoe cvshome werkt, en ook hoe nieuwsgroepen werken. Wat ik echter niet weet is hoe op verstandige manier met meerdere personen kunt werken met CVS.
Uiteraard hebben we meerdere dingen geprobeerd. Release tags, branches, met z'n allen op de root branch, maar niets werkt lekker.
Werkmethode
Wat we op dit moment doen is als volgt:
Oftwel: er is 1 hoofdbranch. Hierop werkt niemand. Iedereen heeft zijn eigen branch, waarop iemand op elk moment een commit kan doen, zonder iemand anders dwars te zitten (zeker als iedereen ergens anders aan werkt, en code nog niet stabiel is, is dit handig). Deze branches worden niet live gezet, enkel de main branch wordt live gezet. Om dit te doen, moeten eerst de updates van de main branch naar de branch gemerged worden van degene die iets live gaat zetten, waarna getest kan worden. Na testen, wordt alles richting de main branch gecommit, en zou het 'klaar' moeten zijn.
De commando's die we daarvoor uitvoeren zijn dit:
code:
1
2
3
4
5
6
7
| cvs update -A [wissel naar de trunk] cvs update -j erik [merge wijzigingen naar de trunk] [resolve conflicts, test alles, etc] cvs commit -m "Merged from branch to trunk" cvs update -r erik [wissel terug naar dee branch] cvs tag RC_1_0_0_last_merge [onthoud de laatste merge point] schrijft tag op branch [merge is klaar] |
(Deze stappen zijn nog onjuist ook, omdat de tag op de eigen boom komt, ipv de main branch.)
Nadelen
Aan deze oplossing (als het er 1 is) zitten wat nadelen. 1 daarvan is dat het lastig is om te mergen van de main branch naar je eigen branch. Door een hoop mensen wordt dit ook niet aanbevolen. Verder zijn er wat issues met het verder werken na een commit richting de branch. Uiteraard willen we terug in de tijd kunnen, om een commit moment uit te checken, een bug te fixen, en de fix te mergen met de main branch. Maar dit lukt niet helemaal, waardoor we op dit moment steeds een nieuwe boom splitsen.
code:
1
2
| creating a new branch: cvs rtag -r Tagname -b Branchname my_module eg: cvs rtag -r start -b erik platform |
Vraag
Wat ik me nu afvraag is het volgende:
Hoe zorg ik er voor dat:
1) We met meerdere mensen tegelijkertijd aan hetzelfde project kunnen werken?
2) We terug in de tijd kunnen om 'dingen' te fixen?
3) Deze fixes weer samenvoegen met alle andere code?
Oftwel: hoe werken jullie met CVS, en welke commando's gebruiken jullie daarvoor?
Alvast bedankt voor de hulp!