De RCS MINI-HOWTO <author> Robert Kiesling,<newline> Vertaald door: Ellen Bokhorst <date>v1.4, 14 augustus 1997 <abstract> In dit document wordt de basisinstallatie en het gebruik van RCS, het GNU Revisie Control System, onder Linux behandeld. Het gaat ook over de installatie van de <tt>diff(1)</tt> en <tt>diff3(1)</tt> utility's, welke nodig zijn voor het gebruik van RCS. Dit document mag geheel of gedeeltelijk, vrij worden gereproduceerd, op voorwaarde dat elk gebruik van dit document conformeert aan de algemene copyrightmelding van de HOWTO-serie van het Linux Documentatie Project. Zie het bestand COPYRIGHT voor details. Stuur alle klachten, suggesties en eventuele diversen naar <htmlurl url="mailto:kiesling@terracom.net" name = "kiesling@terracom.net">, zodat ik dit document zo volledig en bijgewerkt mogelijk kan houden. </abstract> <toc> <sect>Overzicht van RCS <P> RCS, het revision control system, is een suit programma's dat wijzigingen in tekstbestanden opspoort en gedeelde toegang tot bestanden in werkgroepsituaties beheert. Het wordt in het algemeen gebruikt voor het beheren van broncode modules. Het leent zich ook voor het opsporen van revisies van documentbestanden. RCS werd geschreven door Walter F. Tichy en Paul Eggert. De laatste versie welke naar Linux werd geport is RCS Versie 5.7. Er is ook een semi-officieel threaded versie beschikbaar. Veel van de informatie in deze HOWTO is afkomstig vanuit de RCS manpages. RCS bestaat uit het <tt>rcs(1)</tt> programma, dat de bestandskenmerken van het RCS archief beheert, <tt>ci(1)</tt> en <tt>co(1)</tt>, die bestanden in en uit RCS archieven checken, <tt>ident(1)</tt>, dat in RCS archieven zoekt naar keyword identifiers, <tt>rcsclean(1)</tt>, een programma om bestanden op te schonen waaraan niet meer wordt gewerkt of die niet zijn gewijzigd. <tt>rcsdiff(1)</tt>, waarmee <tt>diff(1)</tt> wordt uitgevoerd om revisies te vergelijken, <tt>rcsmerge(1),</tt> waarmee RCS branches worden samengevoegd tot een enkel werkbestand, en <tt>rlog(1),</tt> waarmee RCS logmeldingen worden afgedrukt. Bestanden gearchiveerd door RCS kunnen bestaan uit tekst in ieder formaat, of binair als het gebruikte programma <tt>diff</tt> om gewijzigde bestanden te genereren om kan gaan met 8-bit gegevens. In bestanden kunnen optioneel identificatiestrings worden opgenomen als hulp bij het opsporen door <tt>ident(1)</tt>. RCS maakt gebruik van de utility's <tt>diff(1)</tt> en <tt>diff3(3)</tt> om de gewijzigde bestanden tussen revisies te genereren. Een RCS archief bestaat uit de initiële revisie van een bestand, welke als versie 1.1 wordt geïdentificeerd en een serie gewijzigde bestanden, één voor iedere revisie. Iedere keer dat een bestand vanuit een archief wordt opgehaald (uitgecheckt) met <tt>co(1)</tt>, gewijzigd, en weer terug in het archief wordt geplaatst (inchecken) met <tt>ci(1)</tt>, wordt het versienummer opgehoogd, naar bijvoorbeeld 1.2, 1.3, 1.4, enzovoort voor opeenvolgende revisies. De archieven zelf staan gewoonlijk in een <tt>./RCS</tt> subdirectory, alhoewel RCS voor de opslag van het archief andere opties biedt. Zie de manual page van <tt>rcsintro(1)</tt> voor een overzicht van RCS. <sect>Systeembenodigdheden <P> RCS heeft <tt>diff(1)</tt> en <tt>diff3(3)</tt> nodig om de context diff-bestanden tussen revisies te kunnen genereren. De suite met diff utility's moet op je systeem zijn geïnstalleerd, en wanneer je RCS installeert, controleert de software op de aanwezigheid ervan. Voorgecompileerde diffutils zijn beschikbaar op: <verb> ftp://sunsite.unc.edu/pub/Linux/utils/text/diffutils-2.6.bin.ELF.tar.gz </verb> en mirror sites. Als je <tt>diff(1)</tt>, vanuit de source moet compileren, het is te vinden op <verb> ftp://prep.ai.mit.edu/pub/gnu/diffutils-2.7.tar.gz </verb> en mirror sites. Je moet op je systeem ook de ELF library's hebben geënstalleerd als je voorgebouwde binary's wilt installeren. Zie de ELF-HOWTO voor verdere details. <sect>RCS compileren vanuit de broncode <P> Haal de broncode distributie van RCS Versie 5.7 op. Het is beschikbaar vanaf <verb> ftp://sunsite.unc.edu/pub/Linux/devel/vc/rcs-5.7.src.tar.gz </verb> en mirrors. Nadat je het archief in de source-directorystructuur hebt uitgepakt, moet je RCS voor je systeem configureren. Dit kun je doen via het <tt>configure</tt> script in de source-directory, die je als eerste uit moet voeren. Hiermee zal een <tt>Makefile</tt> en een passend <tt>conf.sh</tt> voor je systeem worden gegeneerd. Je kunt dan intikken: <verb> make install </verb> waarmee de binaire bestanden zullen worden aangemaakt. Op een bepaald punt moet je wellicht met <tt>su</tt> overschakelen naar root zodat de binaire bestanden in de juiste directory's kunnen worden geïnstalleerd. <sect>Aanmaken en beheren van archieven <P> Het programma <tt>rcs(1)</tt> maakt archieven aan en wijzigt daarvan de kenmerken. Een samenvatting van <tt>rcs(1)</tt> optie is de vinden in de <tt>rcs(1)</tt> manual page. De eenvoudigste manier om voor het eerst een archief aan te maken is door in de huidige directory een <tt>RCS</tt> subdirectory aan te maken, en het archief vervolgens te initialiseren met de opdracht <verb> rcs -i naam_werk_bestand </verb> Hiermee wordt een archief met de naam <tt>./RCS/naam_werk_bestand,v</tt> aangemaakt en verzocht om een beschrijvende tekstuele melding, maar het deponeert geen revisies in het archief. Je kunt stricte archief locking respectievelijk in of uitschakelen met de opdrachten <verb> rcs -L naam_werk_bestand </verb> en <verb> rcs -U naam_werk_bestand </verb> Er zijn nog andere opties voor het beheren van het archief, instellen van het formaat, en instellen van revisienummer, welke allen worden behandeld in de manual page van <tt>rcs(1)</tt>. <sect><tt>ci(1)</tt> en <tt>co(1)</tt>. <P> <tt>ci(1)</tt> en <tt>co(1)</tt> zijn de opdrachten die worden gebruikt voor het respectievelijk in- en uitchecken van bestanden in/uit RCS archieven. De opdracht <tt>ci(1)</tt> kan ook worden gebruikt om een bestand zowel op te halen uit een archief als in te checken. In de eenvoudigste vorm vragen <tt>ci(1)</tt> en <tt>co(1)</tt> als argument alleen om de naam van het werkbestand. <verb> ci naam_werk_bestand </verb> en <verb> co naam_werk_bestand </verb> De opdracht in de vorm <verb> ci -l naam_werk_bestand </verb> checkt het bestand in met locking geactiveerd en <verb> co -l naam_werk_bestand </verb> <em>wordt automatisch uitgevoerd.</em> Dat wil zeggen dat <tt>ci -l</tt> het bestand weer ophaalt met locking geactiveerd. <verb> ci -u naam_werk_bestand </verb> checkt het bestand in het archief, en haalt het weer op met locking gedeactiveerd. In alle gevallen, wordt de gebruiker gevraagd om een logbericht. <tt>ci(1)</tt> maakt een RCS archief ook aan als deze nog niet bestaat. Als je geen revisie opgeeft, hoogt <tt>ci(1)</tt> het versienummer van de laatste revisie in het archief op, en voegt hier het gereviseerde werkbestand aan toe. Als je een revisie specificeert voor een bestaande branch, moet deze hoger liggen dan de bestaande revisienummers. <tt>ci(1)</tt> zal ook een nieuwe branch aanmaken als je een revisie van een branch opgeeft die niet voorkomt. Zie de <tt>ci(1)</tt> en <tt>co(1)</tt> man pages voor details. Voor <tt>ci(1)</tt> en <tt>co(1)</tt> zijn diverse opties beschikbaar voor niet interactief gebruik. Nogmaals, zie de <tt>ci(1)</tt> en <tt>co(1)</tt> man pages voor details. <sect>Revisie historie <P> Het <tt>rlog(1)</tt> programma levert informatie over het archiefbestand en iedere revisie die daarin is opgeslagen. Een opdracht als <verb> rlog naam_werk_bestand </verb> zal de versiehistorie van het bestand afdrukken, de aanmaakdatum van iedere revisie en <tt>gebruikers-id's</tt> van de auteur en de persoon die een lock op het bestand plaatste. Je kunt archiefkenmerken en revisieparameters opgeven die dan kunnen worden bekeken. <sect>RCS gegevens opnemen in werkbestanden <P> <tt>co(1)</tt> beheert een lijst met sleutelwoorden van de RCS database die worden geëxtraheerd wanneer het werkbestand wordt opgehaald. Het sleutelwoord <tt>$Id$</tt> in een document zal het extraheren naar een string waarin de bestandsnaam, het revisienummer, de datum dat het werd opgehaald, de auteur, de revisie status, en een eventuele persoon die een lock op het bestand heeft geplaatst, zijn opgenomen. Het opnemen van het sleutelwoord <tt>$Log$</tt> zorgt ervoor dat de historie-log van de revisie van het document erin wordt opgenomen. Deze en andere sleutelwoorden kunnen worden gebruikt als zoekcriteria voor het RCS archief. Zie de manpage van <tt>ident(1)</tt> voor verdere details. <sect>RCS en <tt>emacs(1)</tt> Version Control. <P> De Version Control faciliteit van <tt>emacs(1)</tt> werkt als een frontend naar RCS. Deze informatie geldt in 't bijzonder voor Versien 19.34 van GNU Emacs, die wordt geleverd met de meest gebruikte Linux distributies. Wanneer met <tt>emacs(1)</tt> een bestand wordt gewijzigd dat onder RCS is geregistreerd, zal de opdracht <tt>vc-toggle-read-only</tt> (standaard gekoppeld aan <tt>C-x C-q</tt>) een bestand in emac's Version Control checken, en vervolgens in RCS. Emacs zal een buffer openen waarin je een logbericht kunt typen voor opname in de RCS-log. Wanneer je klaar bent met het intikken van de logregel typ je <tt>C-c C-c</tt> om je invoer te beëindigen en verder te gaan met het incheck proces. Als je strict locking hebt geselecteerd voor het bestand onder RCS, moet je weer een lock op het bestand plaatsen om het met <tt>emacs(1)</tt> te kunnen wijzigen. Je kunt het bestand uitchecken voor emac's Version Control met de opdracht <tt>%</tt> in buffer-menu mode. Zie voor meer informatie de GNU Emacs Manual en de Emacs info pages. </article>