NAME

kycvs - a graphical CVS frontend


SYNOPSIS

kycvs [[-c command] [-d directory] [-e editor] [-f file(s)]] | [-h]


DESCRIPTION

kycvs is a graphical frontend for cvs the ``Concurrent Versions System''. It allows you to use almost all cvs commands via menu, hotkey or popup.


OPTIONS

The following commandline options are currently known by kycvs:

-c command
A cvs command to perform on startup. See Arguments below for a list of currently supported commands. - Default: None.
-d directory
The directory to use on startup. Default: last directory used when running kycvs the last time (or current directory if kycvs was never called before).
-e editor
Editor to use for cvs commands. Default: CVSEDITOR (see ENVIRONMENT below). Note: Apart from being passed to cvs where appropriate this is never used.
-f file(s)
File(s) to use with the -c command. Default: None. Note: This must be the last option since all arguments are considered filenames.
-h --help
Prints out a short usage note.

Arguments

The -c command accepts one of the following cvs commands:

add
Add a new file/directory to the repository
admin
Administration front End for rcs
annotate
Show last revision where each line was modified
checkout
Checkout sources for editing
commit
Check files into the repository
diff
Show differences between revisions
edit
Get ready to edit a watched file
editors
See who is editing a watched file
export
Export sources from CVS, similar to checkout
history
Show repository access history
import
Import sources into CVS, using vendor branches
init
Create a CVS repository if it doesn't exist
log
Print out history information for files
login
Prompt for password for authenticating server
logout
Removes entry in .cvspass for remote repository
rdiff
Create 'patch' format diffs between releases
release
Indicate that a Module is no longer in use
remove
Remove an entry from the repository
rtag
Add a symbolic tag to a module
status
Display status information on checked out files
tag
Add a symbolic tag to checked out version of files
unedit
Undo an edit command
update
Bring work tree in sync with repository
watch
Set watches
watchers
See who is watching a file

Note: This commandline support is strictly experimental and going to be removed in a future version! If you're typing in the commands anyway, you're probably better off calling the cvs binary directly without kycvs as an intermediate instance.


DIAGNOSTICS

Nothing special to mention for normal usage.

If you have the source-distribution, however, and build kycvs with debugging enabled (the $D+ dcc compiler-switch) the program will print out (on STDOUT and STDERR) a huge amount of text telling something about its internal doings. Unless you're quite familiar with the source-code and the software-design used therin, these messages won't be very useful for you.


ENVIRONMENT

While cvs uses additional environment-variables (see cvs(1)), kycvs uses the following variables (if set):

CVSROOT
Should contain the full pathname to the root of the cvs source repository (where the RCS files are kept). This information is used by kycvs as the default repository to be passed to cvs.
CVSEDITOR
Specifies the program to use for recording log messages during commit. If not set, the VISUAL and EDITOR environment variables are tried (in that order). Since kycvs comes with its own builtin editor to write log-messages and alike, there's usually no need to worry about this setting.
LD_LIBRARY_PATH
In order to find two specific libraries (see the discussion in RESTRICTIONS below) kycvs needs the LD_LIBRARY_PATH variable point to the directory, where it can find those libraries. If you're using a binary distribution of kycvs the startKyCVS script will take care of that.

If you installed kycvs from the source and use the FHS-conformant location /opt/kycvs/ for the binary you should either type export LD_LIBRARY_PATH="/opt/kycvs/" before starting the program, put that command in your ~/.bashrc or ~/.profile, or just use the startKyCVS script as well.

LOGNAME, USER
Only used if the getlogin(3) call fails to return the current username. This name is currently used only for the window title.

FILES

The following files are used by kycvs (mostly r/o):

~/.cvsignore
If the user's home-directory contains such a file it is read and used to determine whether a given filename is to be ignored by the fileview of kycvs if the user chooses to view only those files that are under CVS-control.
~/.cvsrc
The cvs initialisation file. Lines in this file can be used to specify default options for each cvs(1) command. On startup kycvs reads the global options from this file to set its own internal properties accordingly. It then defaults to ignoring this file using the cvs option -f with all internally generated cvs commands (this is user-configurable at runtime).
./.cvsignore
If the working directory contains such a file it is read and used to determine whether a given filename is to be ignored (see above). In effect, for every directory the user's ~/.cvsignore and the directory's ./.cvsignore are merged in memory.
~/.kycvs.conf
kycvs stores its user-defined settings in a INI-file style in the users home-directory. This is the only file kycvs uses to write to, the other files (except the following tempfile) are read only. The file-format is quite simple (in fact, in comes from WinDo$): There are several sections each of which containing a couple of keyword=contents pairs.
/tmp/DFG.XXXXXXX
When submitting a commit command to cvs the log-messages provided by the user are stored in a temporary file in the systems /tmp directory. The file and its name is created by the mkstemp(3) call at runtime, so the actual name(s) will vary. Usually this file(s) are deleted automatically by kycvs so the user won't ever see one of them.
/opt/kycvs/kycvs
The executable binary of kycvs. Usually started via /opt/kycvs/startKyCVS (see below).

Unless you've set the LD_LIBRARY_PATH variable (e.g. in ~./bashrc) you should not place this binary in a directory on your PATH. Better use the startup script (with appropriate sym-links).

/opt/kycvs/startKyCVS
Simple shell-script to start kycvs. It sets the LD_LIBRARY_PATH variable (see above) if needed and then runs kycvs. This script should be sym-linked to /opt/bin/kycvs (or /usr/local/bin/kycvs or whereever your PATH happens to point to for locally installed binaries) to start kycvs from everywhere in your filesystem.
QT-interface
If you have not installed the Kylix IDE you'll need a binary distribution of kycvs containing the additional files
    /opt/kycvs/libqtintf.so.2.2.4
        sym-linked to /opt/kycvs/libqtintf.so.2
            sym-linked to /opt/kycvs/libqtintf.so
    /opt/kycvs/libqt.so.2.2.4
        sym-linked to /opt/kycvs/libqt.so.2

See the discussion in RESTRICTIONS below as well.


TODO

Some commandline-options do not work as expected. They are going to be removed in a future release anyway: Why should one use a GUI app if one likes to type in the commands?

Some more ``bells'n'whistles''?


BUGS

    None known as of yet ;-)
    Please feel free to submit any reports of anormalities
    you may observe to the EMail-address below.

RESTRICTIONS

kycvs was written in Object Pascal using the Kylix 1 IDE provided by Borland (see http://www.borland.com/kylix/ ). Since Pascal is not yet the 'native' language of GNU/Linux it uses a couple of external libraries which need to be installed on your system in order to run kycvs.

external libraries

The kycvs executable is linked with the following libraries (where the => paths are those of a FHS-conformant installation):

    /lib/libNoVersion.so.1 => /lib/libNoVersion.so.1
    libX11.so.6 => /usr/X11R6/lib/libX11.so.6
    libqtintf.so => /opt/kylix/bin/libqtintf.so
    libpthread.so.0 => /lib/libpthread.so.0
    libdl.so.2 => /lib/libdl.so.2
    libc.so.6 => /lib/libc.so.6
    libqt.so.2 => /opt/kylix/bin/libqt.so.2
    /lib/ld-linux.so.2 => /lib/ld-linux.so.2
    libXext.so.6 => /usr/X11R6/lib/libXext.so.6
    libSM.so.6 => /usr/X11R6/lib/libSM.so.6
    libICE.so.6 => /usr/X11R6/lib/libICE.so.6
    libjpeg.so.62 => /usr/lib/libjpeg.so.62
    libstdc++-libc6.1-1.so.2 => /usr/lib/libstdc++-libc6.1-1.so.2
    libm.so.6 => /lib/libm.so.6

Apart from the Kylix-specific libqtintf.so and libqt.so.2 all of this libraries should be available with a recent GNU/Linux distribution (at least if you've installed a graphic user-interface on your workstation).

The following list shows, what packages/rmps provide those libraries:

    /lib/libNoVersion.so.1 => glibc-2.2.4-19.3
    libX11.so.6 => XFree86-libs-4.1.0-3
    libqtintf.so => kylix_main_program_files-1.0-1
    libpthread.so.0 => glibc-2.2.4-19.3
    libdl.so.2 => glibc-2.2.4-19.3
    libc.so.6 => glibc-2.2.4-19.3
    libqt.so.2 => kylix_main_program_files-1.0-1
    /lib/ld-linux.so.2 => glibc-2.2.4-19.3
    libXext.so.6 => XFree86-libs-4.1.0-3
    libSM.so.6 => XFree86-libs-4.1.0-3
    libICE.so.6 => XFree86-libs-4.1.0-3
    libjpeg.so.62 => libjpeg-6b-16
    libstdc++-libc6.1-1.so.2 => compat-libstdc++-6.2-2.9.0.16
    libm.so.6 => glibc-2.2.4-19.3

So this reduces to

The named Kylix-specific libraries are provided with the binary distributions of kycvs.

QT

kycvs uses the visual components provided by the qt-libraries for its visual appearance. It accesses them through the Borland provided interface-libraries libqtintf.so and libqt.so.2 (see above). In order to run kycvs you must either have the Kylix IDE installed on your system (so the named libraries can be found on your machine) or use a binary distribution which includes these two libraries as well. If you have KDE installed this should be all.

If you're using another desktop (like GNOME) you might have to install (but not: use) KDE as well or at least the underlaying QT-libraries. Installing QT is beyond the scope of this document; please refer to http://doc.trolltech.com/ to learn about QT, and visit http://www.kde.org/ for more information on the KDE Project.

As of now I have no reports confirming or denying the use of kycvs under GNOME. Feel free to drop me a note if you're going to try it!


NOTES

Concurrent Versions System

The whole cvs support depends on a properly installed cvs executable. If kycvs fails to find/call cvs via the $PATH there is simply no cvs support. kycvs is not a replacement for cvs but a visual frontend. You should refer to the documentation that comes with cvs to learn how to setup and use cvs(1) properly.

The cvs commands admin, init, login and logout are not available via kycvs. You should use the commandline in a shell if you really need them.

Multi-threading

kycvs is a multithread application. That means it does its job with the help of a couple of ``worker-threads''. All cvs queries are done actually by such a ``worker'' in the background without blocking the GUI. The maximum number of concurrently running threads is user-configurable at runtime (default is 4).

Another ``worker'' tries to keep the memory-usage as low as possible. Since walking through a directory-tree may result in hundreds or even thousands of files seen (every of which internally represented by an object), such a walk could eat up quite a bit of memory. A GC-thread in the background takes care of that: it checks every directory whether it's ``expired'' and if so removes all file-objects associated with this directory from memory. The time after which a directory is assumed ``expired'' is user-configurable at runtime (default is 180 seconds i.e. 3 minutes).


SEE ALSO

chlog(1), cvs(1), diff(1)

http://doc.trolltech.com/

http://www.borland.com/kylix/

http://www.cvshome.org/

http://www.kde.org/

For CVS updates, more information on documentation, software related to CVS, development of CVS, and more, see: http://www.cyclic.com/ and http://www.loria.fr/~molli/cvs-index.html


COPYRIGHT

Copyright 2001-2002 DFG/M.Watermann, D-10247 Berlin, FRG

See the file COPYING included in the distribution for a complete license statement.


AUTHOR

chlog and kycvs was written by

matthias(at)mwat.de

starting 2001-10-05.

    $Id: kycvs.html,v 1.3 2016/02/19 17:52:21 matthias Exp $