# Description CVS

CVS (concurent version system) is a commandline tool that maintains the individual states (different versions) of files in a network (lan (local area network) or wan (wide area network)). Typically, cvs is installed on a server, the other computers are cvs-clients. User can independantly checkout files to their local system, hack away, and commit the changes back onto the server when done. Many users can work on the same files at a time because cvs recognizes overlapping changes and notifys the user of these conflicts. This check is done at commit time, except for the user running update whenever he likes. So cvs does not require continous network connection for working with it.

Furtheron cvs has the ability to maintain several project version trees, merge changes between individual versions into a third version, as well as returning a detailed list of the project activities. All in all a complex project maintenance tool, which is in use in many open source projects throughout the internet.

# Description LinCVS

LinCVS is a graphical Interface for the cvs client commandline tool on the Unix, Mac OS X and Windows platform. It allows to load modules from a server (checkout), create modules on the server (import), as well as checking the state of directories and individual files or updating them. Basic operations like add, remove and commit are supported as matter of course, just like showing the actual differences between the server version and the local sandbox, graphical display of the version tree, and manifoldy graphical support of project maintenance. All actions are logged on the cvs server (configurable via history), and are therewith comprehensible.

To keep LinCVS independant of the cvs version, LinCVS uses the local but separat installed cvs and therewith always should work with the latest version.

After choosing a startup dir, the project-explorer searches the subdirectories for cvs projects, and displays these on the workbench. Now all functions on one/many files or whole directories can be accessed over pulldown menues or simply a right mouseclick. The state of the individual directories is continuously scanned by LinCVS. This means the symbol of the dir tells the user that there are for example still uncommited changes somewhere in the depth of a dir hierarchy, even without having opened them yet. So the project state is visualized right after a cvs status call. Completed with on-the-fly dir scanning, LinCVS is qualified for large projects with many thousand files. Because of the continuous efforts of network administrators, to encrease network security, LinCVS supports all standard cvs connection protocols. Proxy support is also available, this requires a patched cvs. This is of course available on our download page.

Because LinCVS does not affect the cvs internal project maintenance, a concurrent use with cvs commandline is possible. The function of the LinCVS dir state display is not impaired therewith.

Even though LinCVS graphically supports almost the whole cvs range of functions (and is continuously under development;-), it is easy to customize the GUI to the individual needs. Popup menues are freely configurable, while the menues always provide full feature access. An extra toolbar enables direct access to often used features.

In contrast to other programs this one is really easy to use ;-) .

## Feature list

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
- 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-controlled/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 ...