Humboldt-Universität / Computer- und Medienservice / Benutzer-Howto und FAQ für den CVS-Server cvs.cms.hu-berlin.de Benutzer-Howto und FAQ für den CVS-Server cvs.cms.hu-berlin.de(CVS: The Concurrent Versions System; FAQ: Frequently Asked Questions) (Über unseren URLMinder können Sie veranlassen, per E-Mail benachrichtigt zu werden, wenn diese Seite geändert wird.) Inhalt:
1 Allgemeines1.1 Was ist CVS?Das Akronym CVS steht für "The Concurrent Versions System". Es wird hauptsächlich bei der Software-Entwicklung eingesetzt und ist in der Open-Source-Szene das am weitesten verbreitete Versionskontrollsystem (VCS - Versioning Control System oder auch SCM - Software Configuration Management). Mehr dazu im Abschnitt "Wie unterstützt mich CVS bei der Soft...".1.2 Wo und wie kann ich einen Zugang zum CVS-Server beantragen?Anträge nimmt die Webtech-Gruppe (webtech@cms.hu-berlin.de) entgegen. Der CVS-Server steht ausschließlich CMS-Mitarbeitern zur Verfügung. Andere Einrichtungen (Fakultäten, Institute, Lehrstühle ...) können leider nicht den CMS-CVS-Server verwenden und auch nicht beim Aufbau eines eigenen CVS-Servers unterstützt werden, da dafür die Personalkapazitäten fehlen. Folgende Angaben sind notwendig:
1.3 Welche Verhaltensrichtlinien gibt es im Umgang mit dem CVS-Server?
1.4 Welche Betriebssysteme und Entwicklungsumgebungen unterstützen CVS oder werden von CVS unterstützt?Folgende Betriebssysteme:
1.5 Welche grafischen Frontends gibt es für CVS?Idealerweise verwendet man Entwicklungsumgebungen, die CVS unterstützen. Aber manchmal hat man Dateien im CVS, die man nicht mit CVS-unterstützende Entwicklungsumgebungen bearbeiten kann. Folgende grafischen Frontends kann man dann u.a. verwenden:
1.6 Wer hat alles Zugang zu den Repositories und zum CVS-Server?Der Zugriff auf dem CVS-Server ist sehr restriktiv, d.h. das nur explizit eingetragene Benutzer Zugriff auf die CVS-Repositories erhalten und auch nur auf die, für die sie berechtigt sind. Es gibt also keinen anonymen Zugang und auch keine Möglichkeit, ohne explizite Berechtigung auf andere Repositories zuzugreifen.1.7 Wie (ausfall-)sicher ist der CVS-Server?Zugriffssicherheit:
1.8 Wieviel Speicherplatz steht für ein CVS-Repository zur Verfügung?Auf dem CVS-Server stehen derzeit 120GB zur Verfügung. Derzeit ist der Speicherplatz für ein CVS-Repository nicht beschränkt (quotiert). Wenn möglich, sollte der Speicherplatz nicht unnötig verschwendet werden (möglichst nicht mehr als 1-2GB pro Repository verwenden).1.9 Wie unterstützt mich CVS bei der Software-Entwicklung oder warum sollte ich gerade CVS bei der Software-Entwicklung verwenden?Gerade wenn mehrere Entwickler an der gleichen Software arbeiten, kommt man um ein Versionskontrollsystem wie CVS nicht herum. Es ist extra dafür entwickelt worden, die Zusammenarbeit in Entwickler-Gruppen an gemeinsamen Software-Projekten zu unterstützen und zu vereinfachen. CVS (The Concurrent Versions System) wird in fast allen Open-Source-Projekten verwendet. Seit einigen Jahren hat CVS Konkurenz durch das Subversion-Projekt (http://subversion.tigris.org/) bekommen, jedoch ist die CVS-Unterstützung gerade bei Entwicklungsumgebungen immernoch unschlagbar. Welche Fähigkeiten und Möglichkeiten bietet mir CVS konkret:
1.10 Warum soll ich gerade diesen und nicht einen eigenen CVS-Server verwenden?Der CVS-Server des CMS:
1.11 Welche Alternativen existieren neben CVS?Es gibt eine ganze Reihe von Versionskontrollsystemen. Die meisten (kommerziellen) Systeme bezeichnen sich als SCM-Systeme (Software Configuration Management) oder als VCS-Systeme (Versioning Control System). Kostenlose Versionskontrollsysteme:
2 Benutzung2.1 Was muß ich unbedingt tun und wissen, bevor ich mit dem CVS-Server arbeite?2.1.1 CVS installieren, falls noch nicht vorhanden.Linux/UNIX:Die meisten Linux-Distributionen bringen Installationspakete für CVS mit. Die Installation selbst ist natürlich abhängig von der Distribution (SuSe: yast2, Debian: apt-get install cvs, ...) und kann natürlich auch selbst vorgenommen werden (bei UNIX-Sytemen meist nicht anders möglich): http://www.cvshome.org/ Windows: Die meisten Entwicklungsumgebungen bringen CVS mit. Man kann sich aber auch das "Binary" cvs.exe herunterladen, z.B: https://ccvs.cvshome.org/files/documents/19/231/cvs-1-11-17.zip (zu finden unter https://ccvs.cvshome.org/servlets/ProjectDocumentList) Linux/UNIX/Windows/MacOS: Ein grafisches Frontend für den Zugriff auf CVS gibt es unter: Eine Beschreibung, wie man den Zugang unter Windows mit CvsGUI und Putty einrichtet, findet man unter http://anders.fix.no/cvs/wincvs-ssh/ . 2.1.2 Einen SSH-Client installieren, falls noch keiner vorhanden ist.Linux/UNIX:Auf den meisten Linux/UNIX-System ist meist schon ein SSH-Client (z.B. OpenSSH: http://www.openssh.org/) installiert. Windows: Bei Windows muss natürlich meist erst ein SSH-Client installiert werden. Da wären:
2.1.3 Eine SSH-Verbindung zu cvs.cms.hu-berlin.de aufbauen.meist nur einmalig pro verwendeten Client notwendig
2.1.4 Warum ist es wichtig, (einmalig) eine SSH-Verbindung zum Server aufzubauen?Ganz einfach, damit die lokal verwendete SSH sich den Host-Key abspeichern kann, denn die meisten SSH-Programme fragen den Benutzer, ob der Host-Key gespeichert werden soll (UNBEDINGT MIT "JA/yes" antworten). Wenn das nämlich noch nicht passiert ist, würde eine Entwicklungsumgebung, die normalerweise nicht mit so einer Frage rechnet, beim Zugriff auf den CVS-Server sicher hängen bleiben. Außerdem kann man so überprüfen, ob der Account korrekt eingetragen ist.2.1.5 Warum kann es wichtig sein, einen SSH-Agent laufen zu lassen, wenn man eine Entwicklungsumgebung verwendet?Dies ist nur interessant, wenn ein SSH-Key auf dem Server hinterlegt wurde. Die meisten Entwicklungsumgebungen können kein Passwort für die SSH (SSH-Key-Passwort) abfragen, weil oft mit etwas derartigem nicht gerechnet wird. Einige bieten zwar eine Konsole an, in der man dann so etwas eintippen kann, aber eben nur einige. Ein SSH-Agent fragt einmalig das Passwort für den privaten SSH-Key ab und jede SSH, die danach gestartet wird, verwendet dann den SSH-Agent, um die "Public Key"-Authentifizierung durchzuführen. D.h. man spart sich damit auch die ständige Passwort-Tipperei bei denjenigen CVS-Kommandos, die sich mit dem Server verbinden (checkout, commit, update, import, export ...).2.2 Welche Zugangsarten bzw. Methoden unterstützt der CVS-Server?Derzeit wird nur die externe Zugangs-Methode (:ext:... siehe Wie lautet die CVS-Root...) mittels SSH unterstützt.2.3 Wie lautet die CVS-Root-Angabe für den Zugang zum Repository?Der übliche CVSROOT-Angabe ist::ext:[account]@cvs.cms.hu-berlin.de:/cvs/projects/[repository name] # SH/BASH: CVSROOT=:ext:[account]@cvs.cms.hu-berlin.de:/cvs/projects/[repository name] export CVSROOT CVS_RSH=ssh export CVS_RSH # CSH/TCSH: setenv CVSROOT :ext:[account]@cvs.cms.hu-berlin.de:/cvs/projects/[repository name] setenv CVS_RSH ssh 2.4 Wie importiere ich ein bestehendes Projekt?Das ist stark abhängig von der verwendeten Entwicklungsumgebung - am besten in die Doku der Entwicklungsumgebung schauen. Wenn die Kommando-Zeilen-Version von cvs direkt verwendet wird:
2.5 Wie lösche ich Module oder wie benenne ich sie um?CVS unterstützt derartige Operationen nicht (ein unbeabsichtigtes Löschen würde wohl alles endgültig löschen, bei einzelnen Dateien werden diese wenigstens noch im Attic-Verzeichnis aufgehoben). Wenn Sie Module umbenennen oder löschen wollen, schicken Sie einfach eine E-Mail an webtech@cms.hu-berlin.de und wir kümmern uns dann darum. Tipps:
2.6 Wie konfiguriere ich WinCvs/CvsGui?Eine kurze (relativ aktuelle) Anleitung findet man unter: http://appel.cms.hu-berlin.de/cvs/wincvshowto.html Eine (etwas veraltete) Beschreibung, wie man den Zugang unter Windows mit CvsGUI und Putty einrichtet, findet man unter http://anders.fix.no/cvs/wincvs-ssh/ .2.7 Wie konfiguriere ich den ssh2-Client von SSH Communications Security unter Windows, damit er auch mit Passwort-Authentifizierung funktioniert?Voraussetzung:
3 Nützliche Links
© CMS | Kontakt: Webtech webtech@cms.hu-berlin.de | geändert am 17.08.2006 um 15:34 Uhr http://twiki.cms.hu-berlin.de/cvs/cvsbenutzerhowto.html |
|
|