www.knebler.de

Admin Blog
  • Home
  • Impressum

19.01
2007

Versionskontrolle mit CVS

CVS ist das “Concurrent Version Management”, ein mächtiges Werkzeugs für Versionsmanagement und kooperativer Programmentwicklung. Es erlaubt das gemeinsame Editieren von beliebigen ASCII-Dateien (eingeschränkt auch BIN-Dateien)
Mehrere Entwickler können gleichzeitig von beliebigen Standorten an einem Projekt arbeiten. Die Sourcen werden zentral im sogenannten Repository verwaltet, jeder Entwickler arbeitet mit einer lokalen Kopie.
Es steht dem Nutzer frei, wann und wie er seinen Stand dem Serverstand angleicht, und wann er seine veränderten Dateien dem Repository zufügt.
Innerhalb des Repositorys können mehrere Dateien zu Modulen zusammengefasst werden. Will man eines dieser Module bearbeiten, so muß man zunächst einen “checkout” machen, der eine lokale Kopie anlegt.
Es gibt die Möglichkeit, mehrere Zweige (Branches) zu benutzen. So können z.B. zwei verschiedene Ansätze verfolgt werden. Sollen diese wieder zusammengefügt werden, ist dies durch einen “Merge” möglich. Durch einen zusätzlichen Parameter beim “checkout” kann man einen bestimmten Branch erhalten.

Obwohl die eigentliche Heimat von CVS die Unix-Welt ist, gibt es inzwischen auch eine Windows-Version unter GPL. Durch die Ersetzung des Kommandozeileninterfaces des eigentlichen CVS durch eine Menüoberfläche läßt es sich hier einfacher nutzen. Leider ist die Konfiguration etwas aufwendig .
Zunächt muß man dem WinCVS mitteilen, auf welches Repository man zugreift. Ein Repository kann im Filesystem liegen, aber auch über verschiedenen Arten remote angesprochen werden. Bei CVS wird es durch die Variable CVSROOT definiert.
Im Normalfall handelt es sich um ein entferntes Repository, dass mit der Methode “pserver” angesprochen wird. Hier meldet man sich am CVS-Server mit dem Nutzernamen “XXX” Projekt und Passwd an. Die Methode “pserver” ist der Standard im Internet, er impliziert eine Passwortauthentifikation.
Falls man hinter einem Firewall arbeitet, kann der HTTP Proxy für den Zugriff auf dem CVS-Server eingesetzt werden. (bei direkter Verbindung kann auch das SSH Protokoll verwendet werden)

Der erste initialen “checkout”, der eine Kopie des aktuellen PROJEKTS anlegt.
[Create] [checkout module]-”XXX” im Menü, das entspricht dem Befehl “CVS checkout XXX”
Auf der lokalen Kopie kann nun wie gewohnt mit einem Editor oder einer Entwicklungsumgebung gearbeitet werden.

CVS Befehlsübersicht
Befehl und dessen Wirkung

  • Checkout: Projektname (Modulname)
  • Import: Projektname (Modulname)
  • Add: Eine neue Datei oder ein neues Verzeichnis zum Repository hinzufügen.
  • Get: Eine lokale Kopie des Repositories anlegen.
  • Commit: Änderungen ins Repository eintragen.
  • Diff: Unterschiede zwischen lokaler Kopie und Repository anzeigen.
  • Log: CVS Log Information anzeigen.
  • Rdiff: Eine Sammlung von Diffs zur Anzeige von Versionsunterschieden erzeugen.
  • Status: Status der lokalen Dateien im Vergleich zum Repository anzeigen.
  • Update: Die lokale Kopie des Repositories aktualisieren.

  • Mit dem Menu-Befehl [Trace][Release Selection] kann man einen Release eines Moduls erstellen. Ein Release ist eine Version ohne jegliche CVS-Informationen, der zur Produktion eingesetzt werden kann.

    Neue Datei anlegen und zufügen:
    [Modify][add Selection] unter WinCVS, “CVS add dateiname” in der Kommandozeilenvariante.

    Vorhandenes lokales Modul aktualisieren :
    Rechte Maustaste-”update selection” in der Windows-Variante, sonst “CVS update dateiname”.

    Was ist seit meinem letzten checkout/update/commit passiert?
    Rechte Maustaste-”diff selection”, sonst “CVS diff dateiname”.

    Wie ein Konflikt entsteht: Man versucht eine veränderte Datei zu commiten, die in der Zwischenzeit bereits von jemand anders bearbeitet wurde – und das in den gleichen Zeilen. Diesen Konflikt kann CVS nicht mehr selbsttätig lösen, als gibt es eine Konflikt-Meldung aus. In der Windowsvariante erhält diese Datei das Tag “C” für “Conflict”, und sie enthält – mit einigen automatisch generierten Kommentaren – beide Versionen. Das Tag und den Status “Conflict” verliert diese Datei erst, wenn sie bearbeitet und neu commitet, also zum Repository zugefügt wurde.

    Um mit CVS effektiv zu arbeiten sollten einige Regeln und Guidelines aufgestellt und beachtet werden.
    TIP: Java bietet eine ganze Reihe sinnvoller Coding Guides.Was kann CVS?

  • Dokumentieren
  • Protokollieren
  • Kommunizieren

    CVS-Vorteile!
  • Alle Entwickler arbeiten mit den Richtigen Quellen.
  • Es entsteht eine Übersicht der Projekte und dessen Status.
  • Der Programmiercode wird Dokumentiert.
  • Die Qualitätskontrolle wird vereinfacht.
  • Anwendungen werden besser programmiert.

    CVS-Nachteile!
  • Es müssen Regeln für die Programmierung
  • aufgestellt werden.
  • Es müssen Regeln für den Umgang mit CVS erarbeitet werden.
  • Es müssen Schulungen für Anwender und Administratoren durchgeführt werden.
  • Neue Software muß eingeführt werden.
  • Drucken PDF

    1&1 500 abzusichern apache2 BB Blackberry cluster console customlog error Fehler freiesMagazin google iwatch Linux master mysql mysql -h localhost -u mysqluser -D databasename -pmysql oci Oracle passwort PHP5 PlugIns postfix mailq postqueue postsuper hold Provider recht recover RPM slave SuSE vhost vi wordpres WordPress xen admin suse

    WP-Cumulus by Roy Tanck and Luke Morton requires Flash Player 9 or better.

    • Kategorien

      • Allgemein
      • Artikel
        • CVS
        • Projekte
      • Blackberry
      • Freizeit
      • Howto
        • Kurztipps
        • Linux
        • SuSE
      • IT-Sicherheit
        • Network
          • WLAN
      • Linktipps
    • Letzte Artikel

      • mysqlbinlog — Hilfsprogramm für die Verarbeitung binärer Logdateien
      • Mysql DB Check mit mysqlcheck
      • iWatch Dateisystemüberwachung in Echtzeit
      • Mysql root Passwort vergessen?
      • Wie man eine MySQL Replikation repariert
    • RSS Pro-Linux

      • Bricscad V10 für Linux veröffentlicht 08.09.10
        Das auf CAD-Software spezialisierte belgisch-amerikanische Unternehmen Bricsys hat die CAD-Anwendung Bricscad V10 in einer nativen Version auf für Linux veröffentlicht. […]
      • Firefox 4 Beta 5 freigegeben 08.09.10
        Das Entwicklerteam von Mozilla hat die fünfte Betaversion von Firefox 4.0 veröffentlicht. Wesentliche Neuerungen gegenüber der vierten Betaversion sind das HSTS-Protokoll und ein Audio-Daten-API. […]
      • CodePlex.com unterstützt Mercurial 08.09.10
        Die von Microsoft ins Leben gerufene Hostingplattform CodePlex.com wird Sponsor des freien Versionsverwaltungssystems Mercurial. Wie das Unternehmen bekannt gab, folgt CodePlex.com dem Aufruf des Entwicklers und spendet 25.000 US-Dollar für die Entwicklung des Systems. […]
      • NoSQL-Datenbank Redis 2.0 fertiggestellt 08.09.10
        Die Redis-Entwickler haben die zweite Version der unter BSD-Lizenz stehenden NoSQL-Datenbank Redis zum Download freigegeben. Redis arbeitet wie viele andere NoSQL-Datenbanken mit einer Key-Value-Speicherung und soll Memcached ähneln, mit dem Unterschied, dass die den Schlüsseln zugeordneten Werte neben Strings auch Listen, Mengen und geordnete Mengen enthalt […]
      • EU-Umfrage zu freier Software und Standards endet in einer Woche 08.09.10
        Die Free Software Foundation Europe erinnert daran, dass die Umfrage der EU zu freier Software und Standards nur noch eine Woche läuft. Alle Unternehmen im Bereich freier Software sollten ihre Meinung noch kundtun. […]
      • Linux Mint Debian Edition veröffentlicht 07.09.10
        Das Mint-Team hat die erste Version der Linux Mint Debian Edition veröffentlicht. Linux Mint Debian Edition (LMDE) soll schneller, zuverlässiger und aktueller sein. Ziel der Neuentwicklung war es, eine Linux-Mint-Variante bereit zu stellen, die Anwendern die Pakete aus dem Debian-Repositorium zugänglich macht. […]
      • ZFS für Debian GNU/kFreeBSD 07.09.10
        Robert Millan hat eine angepasste Version des Debian-Installers vorgestellt, die auch in der Lage ist, ZFS-Partitionen zu verwalten. […]
    • RSS Anwendungen

      • Property Binder 2.0
      • Rank Tracker Professional 4.15.5
      • Nodau 0.2
      • Speed Dreams 2.0.0_a1_r2307
      • i-net Crystal-Clear 10.0.180
      • MeteoIO 1.1.2
      • massadmin 2.2
    • RSS OpenSuSE

      • Comment on Strategy sucks by beurtbalkje
      • Comment on openSUSE Weekly News, Issue 139 is out! by BB
      • Comment on Strategy sucks by Corey
      • Comment on Strategy sucks by John
      • Comment on openSUSE Connect Beta by Bruno Friedmann (aka tigerfoot)
    • Archiv

    • Switch site

      • Switch to our mobile site
    • Meta

      • Anmelden
      • Artikel-Feed (RSS)
      • Kommentare als RSS
      • WordPress.org

    Copyright © 2010   www.knebler.de CVS • Versionskontrolle mit CVS

    Switch to our mobile site