Beschreibung CVS
================

CVS (Concurrent Versions System) ist ein Kommandozeilenprogramm, 
das Änderungen (verschiedene Versionen) von Dateien in einem 
Netzwerk (LAN (LocalAreaNetwork) oder WAN (WideAreaNetwork)) 
verwaltet. Typischerweise ist das CVS auf einem Computer installiert, 
der als Server fungiert, während die anderen Computer als CVS-Clients 
arbeiten. Benutzer können unabhängig voneinander Dateien auf ihr 
lokales System auschecken, dort bearbeiten und nach Abschluss ihrer 
Änderungen wieder auf den Server zurückführen (commit). Mehrere 
Benutzer können gleichzeitig an den gleichen Dateien arbeiten, denn 
CVS erkennt Überschneidungen, und meldet diese als Konflikt dem 
Benutzer. Diese Überprüfung findet immer zum Zeitpunkt des commit 
statt, es sei denn der Benutzer stößt diesen Prozess manuell an 
(update). Damit ist CVS nicht auf eine kontinuierliche Netzwerkver-
bindung angewiesen.
Weiterhin bietet CVS die Möglichkeit, mehrere Entwicklungsbäume zu 
verwalten, Änderungen zwischen einzelnen Versionen in dritte 
Versionen einzuarbeiten (merge), sowie eine detaillierte Auflistung 
aller Projektaktivitäten abzurufen. Eine komplexe Projektverwaltung 
eben, die derzeit im Internet, vor allem im Open-Source-Bereich weit 
verbreitet ist.


Beschreibung LinCVS
===================

LinCVS ist eine graphische Oberfläche für den CVS-Client auf der 
Unix (Linux, *BSD, ...), Mac OS X und Windows Plattform. Sie gestattet 
es, Module vom CVS-Server zu laden (check out), Module auf dem Server 
anzulegen (import) sowie den Status von Verzeichnissen und einzelnen 
Dateien abzurufen oder zu aktualisieren. Grundlegende Operationen 
wie z.B. Hinzufügen, Entfernen und Übernehmen sind ebenso 
selbstverständlich wie das Anzeigen der aktuellen Unterschiede 
zwischen der zentralen Version (auf dem CVS-Server) und der lokalen 
(beim CVS-Client), graphische Darstellung des Versionsbaumes, sowie 
vielfältige weitere graphisch unterstützte Verwaltungsaufgaben. Alle 
Aktionen werden auf dem CVS-Server protokolliert (konfigurierbar 
über die history) und sind damit jederzeit nachvollziehbar.
Um vom Entwicklungsstand des CVS unabhängig zu bleiben, greift 
LinCVS auf das lokal installierte cvs zu und ist damit immer auch mit 
der neuesten Version verwendbar.

Nach der Auswahl eines Start-Verzeichnises durchsucht der 
'Project-Explorer' Unterverzeichnisse nach CVS-Projekten und zeigt 
diese in der 'Workbench' an. Nun sind alle Funktionen für 
einzelne/mehrere Dateien oder ganze Verzeichnisse per 
'pull down menue' oder durch einen Klick mit der rechten Maustaste 
verfügbar. Der Zustand der einzelnen Verzeichnisse im Projektbaum 
wird von LinCVS kontinuierlich überwacht. Das heisst der Benutzer 
erkennt auch ohne alle Verzeichnisse geöffnet zu haben bereits am 
Symbol des Projektordners, das sich irgendwo in der Tiefe der 
Projekthierarchie zum Beispiel noch nicht eingecheckte Änderungen 
befinden. So ist auch nach einem CVS status Aufruf sofort zu erkennen,
in welchem Stadium sich das Projekt befindet. Ergänzt um die 
Funktionalität des on-the-fly dir scanning ist LinCVS damit auch 
für grosse Projekte mit vielen tausenden Dateien geeignet.
Aufgrund der ständig aktuellen Bemühungen von Netzwerkadministratoren, 
Netzwerke sicher zu machen, unterstützt LinCVS alle gängigen CVS 
Verbindungsverfahren. Proxy Verbindungen werden ebenfalls unterstützt, 
hierfür ist es allerdings erforderlich ein gepatchtes CVS zu 
installieren. Dieses ist natürlich ebenfalls auf der Downloadseite 
verfügbar.
Da LinCVS nicht in die CVS Projektverwaltung eingreift, ist eine 
simultane Verwendung von LinCVS und cvs via Kommandozeile möglich. 
Dabei wird die Funktion der LinCVS Verzeichnis-Status-Anzeige nicht 
beeinträchtigt.

Obgleich LinCVS inzwischen fast den gesammten Funktionsumfang von 
CVS graphisch unterstützt (und kontinuierlich weiterentwickelt 
wird;-), ist es dank der Konfigurationsmöglichkeiten ein leichtes, 
die Oberfläche auf die individuellen Bedürfnisse abzustimmen. Popup 
Menüs sind frei konfigurierbar, während in der Menüleiste immer der 
gesamte Funktionsumfang zur Verfügung steht. Eine Werkzeugleiste 
bietet direkten Zugriff auf häufig verwendete Funktionen.

Im Unterschied zu anderen Programmen ist dieses wahrlich leicht 
und intuitiv zu benutzen ;-)



Featureliste
============

LinCVS supports graphical:

Connect methods:
-local/nfs
-pserver
-ssh
-ssh-agent
-proxy

Special dirview features:
-dir-state track keeping
-disable/enable tree/dir
-continuous dir state monitoring (adjustable level)
-on-the-fly dir scanning
-open dir browser
-open shell
-expand all
-collaps all

Overall features:
-user/server profiles
-handle multiple projects simultaneously
-ascii/binary file support
-project properties
-per project settings
-reset/update to dir branch
-rename file/s
-user definable look and feel
-user definable icons/icon dir
-Application dir installation
-import binary/ascii preview
-browse modules on server, even without modules file
-view files without checkout, from history or log
-branch/tag/project-name/commit-info history
-tabbed view for cvs-controled/cvs-ignored/non-cvs files
-remove files local/in repository/both
-open with (startup option for just opening a specific dir)
-create new file/dir
-internal diff viewer
-internal conflict resolver dialog
-use of external: editor/browser/shell/diff/remote shell
-per project autoupdate status/query update/update feature
-debug log function
-online help
-rename project (in sandbox)
-export current (modified) project state
-sub-project support (one dir tree with several cvs-projects)
-customizable popup menues
-customizable key shortcuts
-customizable file mapping, separtely for 'open' and 'view'
-syntax highlighting

cvs features:
-checkout (branch/tag/date)
-import
-export (branch/tag/date)
-release/remove
-status
-query update
-show editors
-show watchers
-watch add/remove
-edit
-unedit
-history
-commit
-tag (add/remove/move/reset)
-branch
-update (to whatever revision)
-login/logout
-lock/unlock dir/files
-log (graphical zoomable file revision tree)
-diff (to repository)
-visit file (from log tree or history)
-diff and merge (from log tree)
-create patch (from log tree)
-merge diff between rev1,rev2 into rev3(from log tree)
-annotate (with mult. filter functions)
-commit info templates
-.cvsignore support (global/local/environment/per directory)
-add ascii/binary
-readd (resurrect) files

There are definitelly more (all those we forgot;-),
and LinCVS is still under development ...