Computer: Version Control mit ZeusSCC-CVS (aus Wiki)

Version Control mit ZeusSCC-CVS (aus Wiki)

Zeus SCC-Provider

Zum File-Editor (FileEditing) ZeusEdit gibt es einen sog. Source Code Control Provider (Microsoft API SCC).

Damit wird VersionControl mit CVS ermöglicht.

Alternativer SCC CVS Provider: Jalindi Igloo http://www.jalindi.com/igloo

Installation

  • Definitive Software Library ID: Zeus SCC-CVS
  • Name: Zeus SCC-CVS
  • Version: v 1.60
  • Hersteller/Bezugsquelle: http://www.zeusedit.com/archives/scccvs.html
  • Systemvoraussetzungen: CVS
  • Installations-Ordner: D:\Programme\ZeusSCC-CVS
  • Konfiguration

Dadurch werden zwei Dinge installiert:

  1. ein SCC-Provider (den man auch für andere IDEs nutzen kann, z.B. HomeSite, XmlSpy,…)
  2. ein Windows cvs.exe (das man auch unabhängig von Zeus nutzen kann s.u.)

Zeus SCC-Provider

Alle SCC-Provider sind im Registry eingetragen. Die Eintragung für Zeus SCC-CVS lautet:

[HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider\InstalledSCCProviders]
   "Zeus SCC-CVS"="SOFTWARE\Xidicone\ZeusSCC-CVS"
[HKEY_LOCAL_MACHINE\SOFTWARE\Xidicone\ZeusSCC-CVS]
   "SCCServerName"="ZeusSCC-CVS"
   "SCCServerPath"="d:\Programme\ZeusSCC-CVS\zCVS.DLL"

Analog trägt sich z.B. auch CS-RCS als SCC-Provider so ein.

— Main.DietrichKracht – 22 Oct 2005

Computer: WinMerge (aus Wiki)

WinMerge (aus Wiki)

Gehört zu: Version Control

GUI-Diff-Tool WinMerge

Zur GUI-artigen Anzeige von Versionsdifferenzen bei TortoiseCVS verwende ich WinMerge.

Installation

  • Definitive Software Library ID: WinMerge
  • Name: WinMerge
  • Version: 2.0.2.0
  • Hersteller/Bezugsquelle: GPL OpenSourceSoftware http://sourceforge.net/projects/winmerge/
  • Installations-Ordner: D:\Programme\WinMerge
  • Konfigurations-Dateien:
  • Systemvoraussetzungen:

— Main.DietrichKracht – 06 Jun 2004

Computer: Version Control (aus Wiki)

VersionControl (aus Wiki)

Gehört zu: FileEditing

Version Control dient der Verfolgung von Änderungen ganz allgemein an Dateien, sog. “Versionierung”. Wenn spezielle weitere Funktionalitäten für Quellcode-Verwaltung hinzukommen, spricht man von Source Code Control “SCC”.

Meine Einsatzgebiete für Version Control

Das Bearbeiten von Text-Dateien wie z.B.

  • PHP Sourcen
  • HTML-Seiten
  • Konfigurationsdateien
  • Java Sourcen

Meine Anforderungen an Version Control Lösungen

  • Frei verfügbar
  • Lauffähig auf Windows
  • Zukunftssicher – Mainstream
  • Integrationsmöglichkeiten in IDEs und/oder Filesystem

Meine Short List von Version Control Lösungen

Bewertung der Version Control Lösungen

VSS
Ich möchte nach Möglichkeit weniger Microsoft und mehr OpenSourceSoftware. Vorteil ist die Integration mit NamoWebEditor und über Microsofts SCC-API auch mit anderen Entwicklungsumgebungen.
CS-RCS
Sehr alt, Community ist von RCS auf CVS umgestiegen, SCC-API (Microsoft Common Source Code Control API) vorhanden, von Eclipse nicht unterstützt. Produkt CS-RCS nicht wirklich kostenlos.
GNU RCS
Sehr alt, Community ist von RCS auf CVS umgestiegen. Stabile Version für Win32, die ohne Cygwin funktioniert.
CVS
Das ist absolut der Mainstream. Passt zu Eclipse. Über SCC-CVS-Provider von ZeusEdit können auch SCC-IDEs wie ZeusEdit und HomeSite mit CVS arbeiten. Es war immer etwas schwierig, CVS unter Windows einzusetzten, aber mit dem SCC-CVS einerseits und mit TortoiseCVS andererseits ist das doch jetzt sehr einfach und elegant möglich.
Subversion
Soll das Nachfolgeprodukt von CVS werden. Ist schon sehr vielversprechend, aber hat sich noch nicht richtig durchgestezt. Umsteigen von CVS auf Subsersion soll ganz einfach sein. Also erstmal mit CVS anfangen.
WebDAV
WebDAV wurde hier aufgenommen, weil NamoWebEditor es als Source-Control-System unterstützt….

Entscheidung: CVS

  • Subversion ist für meine Zwecke noch nicht “Mainstream” genug.
  • CVS hatte bisher nicht genommen, da der Einstieg unter Windows kompliziert und aufwendig erschien. Das liegt aber zum grossen Teil an den Veröffentlichungen, die sehr aus der Unix-Ecke kommen und daran, dass bei CVS sofort grosse Client/Server-Szenarien berschreiben werden und das Einstiegs-Szenario “Einplatz-Windows-System” sehr stiefmütterlich behandelt wird. Durch das Arbeiten mit ZeusEdit habe ich jetzt aber den Zugang zu CVS unter Windows gefunden.
  • Für die Zwecke von TWiki auf Win32-Plattformen ist GNU RCS das Mittel der Wahl, da es ohne Cygwin funktioniert.

SCC Interface

SCC-Provider.svg

SCC-Provider (SVG)

— Main.DietrichKracht – 15 May 2004

Computer: TortoiseCVS (aus Wiki)

TortoiseCVS (aus Wiki)

Gehört zu: VersionControl

CVS-Client für Windows: TortoiseCVS

Tortoise ist ein CVS-Client, der sich in den Windows-Explorer integriert, d.h. über das Kontext-Menü (rechte Maustaste) angesprochen wird. Eigentlich mag ich solche Techniken überhaupt nicht, da sie in mein Basis-System eingreifen und ich versuche so etwas nach Möglichkeit zu vermeiden; z.B. Viren-Scanner, Zip-Programm etc. Aber beim CVS hat es sich als ganz sinnvoll herausgestellt.

Installation

  • Definitive Software Library ID: TortoiseCVS
  • Name: Tortoise CVS
  • Version: 1.6.10
  • Hersteller/Bezugsquelle: OpenSourceSoftware (GPL) http://sourceforge.net/projects/tortoisecvs/
  • Installations-Ordner: D:\Programme\TortoiseCVS
  • Konfigurations-Dateien: TortoiseMenus.config
  • Systemvoraussetzungen: Microsoft C Runtime Library: msvcrt.dll, Windows2000 Service Pack 2

Externes Diff-Programm für Tortoise CVS

Tortoise enthält kein integriertes Programm zum Anzeigen von Differenzen zwischen Versionen, vielmehr muss ein externes Diff-Programm konfiguriert werden. Da Tortoise sich in die grafische Benutzeroberfläche des Windows-Explorers einklinkt (Shell Extension) ist ein GNU-Diff nicht so sinnvoll. Empfohlen wird (FAQ): WinMerge http://winmerge.sourceforge.net/

Konfiguration von Tortoise

  • Ein rechter Mausklick auf eine beliebige Datei.
  • Im Kontextmenü auswählen: CVS / Einstellungen / Reiter “Werkzeuge”
  • Eintragen: Externe Vergleichsanwendung (diff): D:\Programme\WinMerge\WinMerge.exe

Nutzung von CVS mit TortoiseCVS

  • CVS-Ordner anlegen: e:\var\cvsroot
  • Environment-Variable anlegen: CVSROOT=:local:e:\var\cvsroot
  • Erstes CVS-Modul (Projekt) anlegen
    • Projekt-Directory (hier: d:\Programme\Apache) im Explorer mit der rechten Maustaste anklicken.
    • Im Kontektmenü auswählen: CVS / Neues Modul anlegen /
    • Eintragen: …alles wie es vorbelegt ist lassen
    • Klicken auf OK-Button: es wird nun ein CVSINIT durchgeführt. Das Projekt wird ausgecheckt um die Dateistrukturen auszulegen und dann wieder eingecheckt.
    • Nun können mehrere Unterordner und mehrere Files mit “CVS hinzufügen” zur Übergabe an die CVS-Verwaltung vermerkt werden.
    • Schliesslich wird mit “CVS Einchecken…” die eigentliche Übergabe an CVS bewirkt, dabei muss der richtige Dateityp (binary/ascii) zugeordnet werden und es sollte eine verbale Beschreibung eingegeben werden.

— Main.DietrichKracht – 06 Jun 2004

Computer: CVS (aus Wiki)

Gehört zu: Version Control
Siehe auch: RCS, GitHub

CVS Concurrent Versions System (aus Wiki)

CVS ist der Klassiker für VersionControl: http://www.cvshome.org

 Meine Anforderungen

  • Lauffähig auf einem Windows-Entwicklungsrechner mit geringstem Aufwand und möglichst “leichtgewichtig”
  • OpenSourceSoftware bzw. GNU GPL bzw. geringe Kosten und hohe Verbreitung

 CVS-Server

Möchte im ersten Schritt noch garnicht einsetzen. Es soll ein lokales CVS-Repository auf meinem Windows-Notebook sein, nur für mich allein.
Da Eclipse anscheinend nicht mit :local: arbeitet, sondern :pserver: benötigt, habe ich zu guter Letzt (s.u.) doch noch den CVSNT-Server installiert.

 CVS-Client

Die Mainstream-Lösungen sind:

WinCVS:
war mir schon von der Software-Architektur zu aufwendig und nicht in Übereinstimmung mit meiner Architektur (Python, Tcl, GTK).
http://www.wincvs.org
TortoiseCVS:
Eine ganz schlanke Windows-Lösung, die nur auf C++ basiert und sich sehr schön in den Windows Explorer integriert. Wirklich leicht zu benutzen. Basiert auf dem Code von WinCVS, ist aber nicht so komplex.
http://www.tortoisecvs.org/
Eclipse:
Muss man sich wohl in diesem Jahr genauer anschauen. Das scheint die Zukunft zu sein.
http://www.eclipse.org

 CVS-Server für Windows: CVSNT

Neben der Möglichkeit einen CVS-Server auf Windows über Cygwin zu realisieren, gibt es eine sehr gute Portierung auf WinNT (Windows 2000,…) CVSNT. Es gibt ganz ausführliche Schritt-für-Schritt-Beschreibungen für die Installation von CVSNT (was auch nötig ist, da es einige Fallstricke gibt).

 Meine CVS Projekte (CVS Module)

Tabelle 1: Meine CVS-Projekte

Name Pfad
Apache D:\Programme\Apache
Backup
diverses
docbook
Dokumente und Einstellungen
etc
faulkner.kr8.de
jobs e:\var\jobs

 CVS Lektion 1: Anlegen und Füllen eines CVS-Repositories

Das cvs.exe (mitgeliefert von ZeusEdit, TortoiseCVS oder CVSNT) sollte im PATH sein (also: \Programme\ZeusSCC-CVS oder \Programme\TortoiseCVS oder …). Es wird einerseits intern von dem jeweiligen SCC-Provider verwendet, andererseits kann es als Kommandozeilen-CVS-Utility unter Windows eingesetzt werden, um z.B. Das CVS-Repository per Hand aufzubauen.

Schritt 1: Initialisieren eines CVS-Repository

cvs -d:local:d:\home\cvsroot init

Damit man für das weitere Arbeiten mit CVS nicht immer den Parameter -d:local:d:\home\cvsroot angeben muss, setzten wir die dafür vorgesehene Environment-Variable: SET CVSROOT=:local:d:\home\cvsroot.

Schritt 2: Dateien in ein CVS-Repository einstellen (“importieren”)

d:
cd \home\kracht\www\dietrich.kracht.free.fr\rolodap	 (genannt "Arbeitsverzeichniss")
cvs import -m"trallala" -d -C rolodap  LONZO V1_00

Damit wird das aktuelle Verzeichnis mit allen Dateien und Unterverzeichnissen unter dem CVS-Modulnamen “rolodap” in das CVS-Repository gestellt. Umgangssprachlich nennt man “CVS-Module” auch gerne “CVS-Projekte”. Das “-d” sorgt dafür, dass das Archivierungsdatum aus dem Filedatum genommen wird, und das “-C” sorgt dafür, dass in das Arbeitsverzeichnis interne Verwaltungsinformationen für CVS gleich mitaufgenommen werden (versteckter Ordner CVS).

Das Riesenproblem mit diesem CVS IMPORT ist, dass Binär-Dateien dadurch zerstört werden (z.B. GIF, JPG,…).

Wenn man das nicht alles in einem Rutsch tun möchte, kann man es auch einzeln Schritt für Schritt tun (s.u.).

Schritt 3: Ein leeres CVS-Modul erstellen

mkdir xyz
cd xyz
cvs import rolodap LONZO V1_00
cd ..
rmdir xyz

Damit wird im CVS-Repository ein neues Modul names rolodap angelegt einschliesslich aller im Repository nötigen CVS-Files (z.B. .owner).

Nun muss ich für jedes CVS-Modul ein CVS-Arbeitsverzeichnis (sog. Sandbox) aufbauen mit “cvs checkout …”. Danach kann ich meinem CVS-Modul gezielt Dateien und Unterverzeichnisse (nur aus dem CVS-Arbeitsverzeichnis) mit “cvs add …” hinzufügen.

Schritt 4: Eine CVS-Sandbox erstellen

d:
cd \home\kracht\www\dietrich.kracht.free.fr
cvs checkout rolodap

Damit wird \home\kracht\www\dietrich.kracht.free.fr\rolodap eine CVS-Sandbox für das CVS-Modul “rolodap”. Wir sehen das daran, dass ein verstecktes Unterverzeichnes namens “CVS” angelegt wurde.

Weil im CVS nicht mit “Locks” gearbeitet wird, benötigt jeder User ständig seine “Work Directories”. In den versteckten CVS-Unterverzeichnissen jeder Sandbox speichert sich das CVS-System die nötige Verwaltungsinformation.

Der Verzeichnisname der CVS-Sandbox ist als identisch mit dem Modulnamen im CVS-Repository. Wenn man da besondere Wünsche für den Sandbox-Namen hat, muss man sich das schon beim Erstellen des CVS-Moduls überlegen.

Wenn die als Sandbox verwendeten Verzeichnisse nicht leer sind (macht man gerne am Anfang), erscheinen Warnmeldungen.

Schritt 5: Einzelne Inhalte der CVS-Sandbox ins CVS-Repository stellen

d:
cd \home\kracht\www\dietrich.kracht.free.fr\rolodap
cvs add index.php			(ggf.  -b	für binary, oder gleich TortoiseCVS nehmen)
cvs commit

Ebenso können Unterverzeichnisse der CVS-Sandbox in das CVS-Repository gestellt werden.
Wichtig im CVS: Eine CVS-Sandbox ist immer ein Ordner mit seiner Unterstruktur, wobei Teile der Sandbox ignoriert werden können. Ich mass also alles was zu meinem “Projekt” gehört, in so einer Sandbox unterbringen. Die CVS-Sandbox entspricht dann spiegelbildlich einem CVS-Modul.
Ich kann keine Dateien, die “neben” der CVS-Sandbox stehen in das CVS-Modul einchecken. Jedes “Projekt” muss also hierarchisch strukturiert sein!

Der cvs checkout arbeitet mit dem im Environment-Parameter “CVSROOT” eingestellten Repository. In diesem Falle ein privates CVS-Repository im lokalen Dateisystem meines Notebook-Computers. Genauso kann man sich aber auch ein CVS-Modul aus einem externen CVS-Repository holen:

cvs -d:pserver:anoncvs@cvs.apache.org:/home/cvspublic checkout ant

— Main.DietrichKracht – 16 May 2004

Computer: Version Control (aus Wiki)

Gehört zu: Software
Siehe auch: Web Authoring
Benutzt: SVG-Grafiken aus GitHub

Version Control (aus Wiki)

Version Control dient der Verfolgung von Änderungen ganz allgemein an Dateien, sog. “Versionierung”. Wenn spezielle weitere Funktionalitäten für Quellcode-Verwaltung hinzukommen, spricht man von Source Code Control “SCC”.

 Meine Einsatzgebiete für Version Control

  • PHP Sourcen
  • HTML-Seiten
  • Konfigurationsdateien
  • Java Sourcen

 Meine Anforderungen an Version Control Lösungen

  • Frei verfügbar
  • Lauffähig auf Windows
  • Zukunftssicher – Mainstream
  • Integrationsmöglichkeiten in IDEs und/oder Filesystem

 Meine Short List von Version Control Lösungen

 Bewertung der Version Control Lösungen

VSS
Ich möchte nach Möglichkeit weniger Microsoft und mehr OpenSourceSoftware. Vorteil ist die Integration mit NamoWebEditor und über Microsofts SCC-API auch mit anderen Entwicklungsumgebungen.
CS-RCS
Sehr alt, Community ist von RCS auf CVS umgestiegen, SCC-API (Microsoft Common Source Code Control API) vorhanden, von Eclipse nicht unterstützt. Produkt CS-RCS nicht wirklich kostenlos.
GNU RCS
Sehr alt, Community ist von RCS auf CVS umgestiegen. Stabile Version für Win32, die ohne Cygwin funktioniert.
CVS
Das ist absolut der Mainstream. Passt zu Eclipse. Über SCC-CVS-Provider von ZeusEdit können auch SCC-IDEs wie ZeusEdit und HomeSite mit CVS arbeiten. Es war immer etwas schwierig, CVS unter Windows einzusetzten, aber mit dem SCC-CVS einerseits und mit TortoiseCVS andererseits ist das doch jetzt sehr einfach und elegant möglich.
Subversion
Soll das Nachfolgeprodukt von CVS werden. Ist schon sehr vielversprechend, aber hat sich noch nicht richtig durchgestezt. Umsteigen von CVS auf Subversion soll ganz einfach sein. Also erstmal mit CVS anfangen.
WebDAV
WebDAV wurde hier aufgenommen, weil NamoWebEditor es als Source-Control-System unterstützt….

 Entscheidung: CVS

  • Subversion ist für meine Zwecke noch nicht “Mainstream” genug.
  • CVS hatte bisher nicht genommen, da der Einstieg unter Windows kompliziert und aufwendig erschien. Das liegt aber zum grossen Teil an den Veröffentlichungen, die sehr aus der Unix-Ecke kommen und daran, dass bei CVS sofort grosse Client/Server-Szenarien berschreiben werden und das Einstiegs-Szenario “Einplatz-Windows-System” sehr stiefmütterlich behandelt wird. Durch das Arbeiten mit ZeusEdit habe ich jetzt aber den Zugang zu CVS unter Windows gefunden.
  • Für die Zwecke von TWiki auf Win32-Plattformen ist GNU RCS das Mittel der Wahl, da es ohne Cygwin funktioniert.

 SCC Interface

Abbildung 1: Verschiedene Frontends über SCC-API

SCC-Provider.svg

— Main.DietrichKracht – 15 May 2004

Computer: RCS (aus Wiki)

Gehört zu: Version Control
Siehe auch: CVS

RCS Revision Control System (aus Wiki)

RCS ist ein VersionControl-System unter GNU Unix entwickelt. Als Nachfolger von RCS kann man das heute sehr verbreitete CVS ansehen. Unter Microsoft Windows wird VSS Visual Source Safe stark propagiert.

Das WikiWiki-System TWiki verwendet RCS zur Verwaltung der Web-Seiten. Standardmäßig wird dazu unter Windows Cygwin verwendet, das dann ein RCS zur Verfügung stellt, welches die für TWiki benötigte Funktionalität bietet, aber ansonsten sich nicht zur Arbeit unter Windows anbietet.

Bei Recherchen zum Thema Parallel Entwicklung bin ich erneut auf RCS gestossen. Eine Firma Component Software bietet ein auf Windows zugeschnittenes CS-RCS Basic und Pro an: http://www.componentsoftware.com. Die Basic Version wird dem privaten Einzelplatz-User kostenlos als Freeware angeboten. CS-RCS unterstützt zusätzlich die von Microsoft propagierte Schnittstelle Microsoft SCC API und lässt sich damit sehr effizient in die eigentlichen Arbeits-Werkzeuge (FileEditing, Authoring, IDE) integrieren.

 GNU RCS 5.7 Windows Binaries

Auf der Web-Seite http://www.gnusoftware.com//directory/?level=Development/Tools/ findet man den Hinweis, auf die Purdue Universität, die Source und Binaries für Windows (Win32) bereitgestellt:

 Installation

  • Definitive Software Library ID: GNURCS
  • Name: GNURCS
  • Version: 5.7
  • Hersteller/Bezugsquelle: University of Purdue ftp://ftp.cs.purdue.edu/pub/RCS/
  • Installations-Ordner: D:\Programme\GNURCS (Rechner: braunbaer.kr8.de)
  • Environment-Variable:
    • SET LOGNAME=hugo
    • SET TZ=CET-1EST
    • SET RCSINIT=-x,v/
    • SET TMP=C:\temp
    • SET TEMP=C:\temp

 Werkzeuge mit RCS-Integration

  • FileEditing: ZeusEdit: Echte Integration über SCC
  • FileEditing: UltraEdit: RCS in das Menü einbaubar
  • HTML-Authoring: HomeSite: Echte Integration über SCC
  • HTML-Authoring: NamoWebEditor: (leider nicht RCS, sondern nur VSS oder WebDAV)
  • IDE: Eclipse: (arbeitet “von Haus aus” mit CVS)

— Main.DietrichKracht – 08 Apr 2004