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 sql SSL SuSE vhost vi wordpres WordPress xen admin suse Zertifikate

    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

      • PHP effektiv gegen Hacker-Angriffe absichern
      • SQL-Referenz Mini
      • WordPress Performance verbessern
      • CSR-Datei für Apache erzeugen
      • mysqlbinlog — Hilfsprogramm für die Verarbeitung binärer Logdateien
    • RSS Pro-Linux

      • freiesMagazin 02/2012 erschienen 06.02.12
        Die Februarausgabe von »freiesMagazin« ist mit Nachrichten und Artikeln über freie Software erschienen. […]
      • CuBox: Kleiner Rechenwürfel mit ARM-Prozessor 05.02.12
        Der Hersteller Solid-Run möchte mit dem CuBox die Liste der kompakten, energieeffizienten Rechner um ein weiteres Modell erweitern. Der kleine Rechner in einem Würfelgehäuse aus Plastik soll Ende Februar für 99 Euro auf den Markt kommen. […]
      • Linux Mint 12 KDE fertiggestellt 04.02.12
        Die Linux-Mint-Entwickler haben die KDE-Edition der Version 12 des beliebten Ubuntu-Abkömmlings veröffentlicht. Linux Mint gilt als sehr benutzerfreundlich und zählt laut dem News-Portal Distrowatch zu den beliebtesten Linux-Distributionen. […]
      • Akademy 2012 sucht nach Beiträgen 03.02.12
        Die Registrierung für die Akademy, die Konferenz für KDE-Entwickler und -anwender, ist eröffnet. Außerdem wurde der Call for Papers für die Konferenz veröffentlicht. […]
      • Anonymisierungs-Distribution Tails 0.10.1 erschienen 03.02.12
        Das Linux-Live-System Tails will den Benutzern das sichere anonyme Browsen im Web und die Verwendung von Kryptografie auf dem aktuellen Stand der Technik ermöglichen. […]
      • TeamViewer 7 für Linux verfügbar 03.02.12
        TeamViewer, Anbieter der gleichnamigen Lösung für Fernwartung und Online-Präsentationen, hat jetzt die neue Version TeamViewer 7 für Linux veröffentlicht. In der Lösung wurden unter anderem die Remote-Support-Funktionen erweitert. Zusätzlich bietet die Anwendung auch die Möglichkeit, Online-Meetings mit bis zu 25 Teilnehmern durchzuführen. […]
      • LUG: Linux-Usergroup Miesbach 03.02.12
        Seit Mitte 2011 gibt es ein Anwendertreffen für Linux-User im Landkreis Miesbach. Bisher handelt es sich nur eine sehr kleine User-Group. Das Treffen findet einmal im Monat am dritten Samstag in der Volkshochschule in Hausham statt. Wer einen Vortrag zu einem Thema halten will, ist gerne dazu eingeladen. Ab 17 Uhr: Linux installieren mit Anleitung für Neuein […]
    • RSS Anwendungen

      • mod_pLua 0.36
      • FF Multi Converter 1.3.0
      • SPM (Simple Package Manager) 0.1.1-rev2
      • Panther 0.9
      • Bookmark Commander 1.2
      • JStock 1.0.6k
      • husk-scheme 3.5.2
    • RSS OpenSuSE

      • Comment on openSUSE 12.1: All Green! by Seb
      • Comment on Using BTRFS on openSUSE 12.1 by YM
      • Comment on openSUSE 11.3 EOL’ed, 12.2 On The Way! by kahaja
      • Comment on Why openSUSE.org goes on strike tomorrow by Maximus Prime
      • Comment on Using BTRFS on openSUSE 12.1 by Anonymous
    • Archive

    • Switch site

      • Switch to our mobile site
    • Meta

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

      • Dokumentation
      • FAQ
      • Hund Bobtail
      • News-Blog

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

    Switch to our mobile site