[cvs] hoe en wat

Pagina: 1
Acties:

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Topicstarter
Voor een project waar ik mee bezig ben (rara) zou ik graag een centraal systeem voor de source opzetten, om versies bij te houden te backuppen etc.

Nu heb ik gehoord dat dat het makkelijkst met een CVS kan. Heeft iemand hier ervaring mee? welke kunnen jullie bij aanraden?

gewoon een beetje algemenen info dus graag :)

Verwijderd

Wat dacht je van CVS? http://www.cvshome.org/

Verwijderd

Ik gebruik CVS, of - ik probeer CVS te gebruiken voor
de websites die ik ontwikkel. Werkt erg prettig IMO.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16:30

Janoz

Moderator Devschuur®

!litemod

CVS heeft eigenlijk 2 voordelen
1 - Je kunt met meerdere mensen aan een project werken.. Als iemand een file "uit gechecked" kan niemand met die file werken totdat degene de file weer heeft "in gechecked"
2 - Je kunt zonder veel schijfruimte te verspillen alle verschillende versies onthouden.

CVS slaat eigenlijk alleen het orginele bestand op gevolgd door een heleboel diff's tussen oude en nieuwe versies.. Hierdoor kun je simpel van versie 2 weer terug naar versie 1.8 oid...

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op maandag 17 december 2001 14:53 schreef Janoz het volgende:
[..]
CVS slaat eigenlijk alleen het orginele bestand op gevolgd door een heleboel diff's tussen oude en nieuwe versies.. Hierdoor kun je simpel van versie 2 weer terug naar versie 1.8 oid...
+ Wie de veranderingen heeft aangebracht. (ook soms erg belangrijk..)

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
Hum. Misschien moet ik hier ook maar eens naar gaan kijken :)

Maareh, dit werkt dus met een server/client begrijp ik. Maareh, hoe kom ik aan zo'n ding :?

  • [ti]
  • Registratie: Februari 2000
  • Niet online
En op freshmeat vind je er duizend en een ondersteunende programma's voor (frontends/email dingen/etc).

Verwijderd

Ik heb erg goede ervaringen met WinCVS als client (wel zorgen dat TCL geinstalleerd is, dat scheelt een hoop).
En omdat CVS de verschillende ontwikkelaars de mogelijkheid biedt om aan dezelfde module te werken, is een goede merge utility bijna onmisbaar. Araxis is wat dat betreft een absolute aanrader!

Werken via CVS vergt trouwens wel wat discipline: nooit meer sources met een collega samenvoegen buiten CVS om, omdat die anders nogal snel de draad kwijt raakt.

Verwijderd

Op maandag 17 december 2001 18:06 schreef Afterlife het volgende:

Ik heb erg goede ervaringen met WinCVS als client (wel zorgen dat TCL geinstalleerd is, dat scheelt een hoop).

En omdat CVS de verschillende ontwikkelaars de mogelijkheid biedt om aan dezelfde module te werken, is een goede merge utility bijna onmisbaar. Araxis is wat dat betreft een absolute aanrader!
Of 'diff' en 'patch' dus :7

Verwijderd

Op maandag 17 december 2001 18:16 schreef Kepz het volgende:
Of 'diff' en 'patch' dus :7
Dan heb je Araxis Merge (van de makers van PMDiff voor OS/2) nog nooit van dichtbij gezien. :)

Verwijderd

vertel

Verwijderd

Gewoon de 30-dagen trial ophalen van www.araxis.com, dat vertelt meer dan 100 woorden of zo. :)
Helaas is 't wel Win32 only, maar 't ding is zo krachtig dat je 'm na een tijdje absoluut niet meer kunt missen. Diff op directory/project basis, 3 bestanden kunnen samenvoegen, en direct in de files die vergeleken worden kunnen editten.
En 't ziet er ook nog 's intuitief uit, iets wat je van diff/patch niet kunt zeggen...

  • Johannes Verelst
  • Registratie: Februari 2001
  • Laatst online: 14-11-2022
Op maandag 17 december 2001 14:53 schreef Janoz het volgende:
CVS heeft eigenlijk 2 voordelen
1 - Je kunt met meerdere mensen aan een project werken.. Als iemand een file "uit gechecked" kan niemand met die file werken totdat degene de file weer heeft "in gechecked"
2 - Je kunt zonder veel schijfruimte te verspillen alle verschillende versies onthouden.

CVS slaat eigenlijk alleen het orginele bestand op gevolgd door een heleboel diff's tussen oude en nieuwe versies.. Hierdoor kun je simpel van versie 2 weer terug naar versie 1.8 oid...
Eerste punt is niet helemaal waar. Bij Visual Source Safe (Microsoft) is het wel zo dat een uitgecheckte file door niemand anders ingecheckt kan worden, maar bij CVS is dat dus niet. Uit de CVS manpage:
code:
1
2
3
4
5
6
7
8
          This  command  is meant to safely cancel the effect
          of `cvs checkout'.' Since cvs doesn't  lock  files,
          it  isn't  strictly  necessary to use this command.
          You can always simply delete  your  working  direc­
          tory,  if you like; but you risk losing changes you
          may have forgotten, and you leave no trace  in  the
          cvs  history file that you've abandoned your check­
          out.

There are no stupid questions, but there are a lot of inquisitive idiots.


  • JayTaph
  • Registratie: Oktober 1999
  • Laatst online: 28-11-2025

JayTaph

Portability is for canoes.

cvs doet in principe niet aan locking. Stel iemand is printf() aan het maken in stdio.c, en jij wilt scanf() aanpassen, dan ben je met locking dus de pineut. Het gevaar wat je dus wel krijgt is dat je files moet gaan mergen. Op zich niet erg, maar in geen enkel geval een goed idee. Je kunt met CVS trouwens wel expliciet files locken zodat je ze niet kunt inchecken tenzij de andere de file unlocked, maar in dat geval kun je beter een ander systeem gebruiken. MKS bijvoorbeeld is echt perfect (maar wel duur), en is niet echt cross-platform te noemen.


Hou er rekening mee dat wanneer je met CVS aan de slag gaat, dat het in eerste instantie alleen maar extra werk met zich meebrengt, en dat je geen tot weinig profijt gaat zien in het begin. Je moet namelijk eerst modules importeren, files uitchecken, updaten, inchecken etc, wat voor veel mensen, die het niet gewend zijn, nogal een administratieve rompslomp lijkt.

Mijn advies aan mensen die met CVS willen beginnen: ga eerst klooien met simpele hello-world modules. Ga ze editten, updaten, in- en uitchecken, branchen en mergen en kijk of je fatsoenlijk met tags en releases kunt werken.

Oja, stel als je met meerdere mensen gaat werken een policy op over wanneer je iets mag inchecken, welke modules er zijn en wie er in mogen werken (mag iemand die bezig is met de gui ook inchecken in de engine en andersom?). Wanneer mag je een file inchecken, als die helemaal compiled, of wanneer de hele module compiled? Hoe moet er opgegeven worden wat er gedaan is in de module (eg: "fixed some stuff" of "changed the MAX_COUNT define from 100 to 128 so we can count 28 more digits in count_digits()").
Der is dus zat waar je rekening mee moet gaan houden op het moment dat je dus met (ieder) versie-systeem gaat werken.

(owja, en vergeet alsjeblieft niet om elke source-file een $header$ of $id$ mee te geven :))

Yo dawg, I heard you like posts so I posted below your post so you can post again.


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16:30

Janoz

Moderator Devschuur®

!litemod

Op maandag 17 december 2001 14:55 schreef dusty het volgende:

[..]

+ Wie de veranderingen heeft aangebracht. (ook soms erg belangrijk..)
+ eventueel commentaar over de verschillen tussen de verschillende versies (ook soms belangrijk :))

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1