Welcome to CvsShell 0.5.1 ========================= About ----- CvsShell is a console-based cvs client. It provides convenient access to the cvs commands through a shell-like user interface. The website of CvsShell is http://cvsshell.sourceforge.net. Requirements ------------ CvsShell is written in Python (http://www.python.org), so it runs on every platform python is available for. You need Python 2.1 or higher. You also need to install CVS (http://www.cvshome.org) before using CvsShell. Features -------- * Convenient access to the following csv commands: add, checkout, commit, remove, diff, log, login, logout, status, update. * CvsShell prompts you for all arguments needed for executing a command. * Listing of all files and their status. * Operations on files in the listing can be executed quickly, because those files can be accessed using a numerical ID instead of a (typically long) pathname. * Aliases for different cvsroots. * Shortcuts for cvs commands: - Commit is automatically executed after an add or delete command (if you want to). - The login command is executed automatically when needed. - Renaming files with cvs is lenghty: you have the rename the file in the local filesystem, remove the old file, add the new file and commit your changes. With CvsShell, this is done with a single command. - The steps to replace a file with an older revision are executed using a single command. Installation ------------ Unpack the downloaded files and step into the directory cvsshell-X.X that is created. Invoke the installation script by typing `python install.py'. On windows, you can also invoke the script by double-clicking the icon of the file install.py The rest of the installation process should be rather self-explanatory. Usage ----- Help is always available by typing `help'. You can get help on a specific command by typing `help '. If you are not familiar with CVS you should first read the CVS-manual (http://www.cvshome.org/docs/manual/). The configuration file of CvsShell is ~/.cvsshellrc. A session with CvsShell looks like this: -- stefan@kunz:~/cvsshell$ cvsshell CvsShell 0.5 Copyright 2002 Stefan Heimann (mail@stefanheimann.net). This software is released under the GPL. {aru} ~/cvsshell [:ext:stefanheimann@cvs.cvsshe...ceforge.net:/cvsroot/cvsshell] $ -- This is the startup screen. The second line from bottom is called the info-line. It contains information about * Options that are activated or deactivated. This is done with the letters enclosed in curly brackets on the left. A lowercase letter signalize that the option currently is actived, a uppercase letter signalize that the option has been deactived. Options: - a: automatic update of the cvsroot variable - r: automatic refresh of the local listing - u: unmodified files are shown in the listing * The current working directory * The current cvsroot. I mostly start my sessions by running `update' to get new and updated files from the server: -- $ update Root Directory: /home/stefan/cvsshell : 0 ? README someDir: 1 M foo 2 P bar {a} ~/cvsshell [:ext:stefanheimann@cvs.cvsshe...ceforge.net:/cvsroot/cvsshell] $ -- This produces a listing that contains information about the files in your sandbox. The first column maps every file to a ID to make it easily accessible by just typing the ID and not a long filename. The second column displays the status of the file. For more information on this status characters have a look at the manual page of cvs. I have added the following status codes: * OK - the file is in sync with the repository * D - the file has been successfully removed from the repository and the sandbox. As you can see in the example above, the file README is unknown to the repository, the file someDir/foo has been locally modified and the file someDir/bar has been patched. To add the file README to the repository, do the following: -- $ add enter filenumbers/filenames to add: 0 cvs server: scheduling file `README' for addition cvs server: use 'cvs commit' to add this file permanently The files have been scheduled for addition. Should I run `commit' to add the files to the repository (yes|no)? yes -- Now you have to provide a log message and the file is commited to the repository. Please notice the usage of the ID of the file instead of the filename. You can also specify several IDs. Type `help list' to get more information on how to do this. You can also use arbitrary external shell commands. To force a command to be executed as a external command, you have to prepend a `!' to its name. Example: $ !rename You can use the ouput of a external shell command in the argument string of a CvsShell command: $ commit `find . -name '*.java'` Commits all files ending with *.java It is also possible to use IDs of the listing in external shell commands. CvsShell replaces these IDs with the corresponding filenames. Example: $ rm [[ 1,2,5-8 ]] Removes the files with IDs 1,2,5,6,7,8. To finish your session with CvsShell, just type `exit' or hit Ctrl-D. License ------- Copyright 2002, 2003 Stefan Heimann (mail@stefanheimann.net). This software is released under the GPL. License information can be found in the file LICENSE. Feedback, enhancements and bug reports are very appreciated! CvsShell - a console based cvs frontend http://cvsshell.sourceforge.net