You can browse our CVS repository through the Tekkotsu CVS web interface.
For additional help regarding the options available for any command, type:
cvs --help command
The general form of CVS commands is:
cvs [global options] command [command-specific options]
Thus, some flags must be given before the command and are always available, whereas others are command specific and must follow the command they apply to.
You can create a .cvsrc file in your home directory which will be checked for default parameters, allowing easier command line use.
Updating the Tekkotsu framework itself is fairly straightforward. However, you will also need to make sure that any projects you have started are updated as well in order to take advantage of new tools or build features.
cd tekkotsu_root; # tekkotsu_root is usually /usr/local/Tekkotsu # ONE of the following options: # ** Update to cutting edge development cvs -q update -d -P -A # ** OR update to latest "stable" development cvs -q update -d -P -r STABLE # ** OR update to latest release cvs -q update -d -P -r tekkotsu-
For heavy development you may wish to put your project directory in your own versioning system to allow collaboration, archiving, historical analysis, etc. of your own project. There are other systems available besides CVS, which may allow you to update from the Tekkotsu repository through CVS without clashing with your own repository's settings.
However, if you wish to use CVS for your own versioning as well, there would be a conflict between the CVS status information for your repository, and the CVS information for the Tekkotsu repository. Don't give up yet though, updating your project from Tekkotsu source is still possible, but a little more complicated.
# swap from local repository to Tekkotsu repository: find . -name "CVS" -exec mv \{\} CVS-local \; find . -name "CVS-Tekkotsu" -exec mv \{\} CVS \; # get update from the main repository: cvs update # swap back to your local repository: find . -name "CVS" -exec mv \{\} CVS-Tekkotsu \; find . -name "CVS-local" -exec mv \{\} CVS \;
# NOTE: do this stage BEFORE you update the framework!
# (that's a later step)
# NOTE: if your project template has been customized, you'll need to
# determine the date and time you last updated/checked out, and
# check out a fresh copy to diff the new version against
# tekkotsu_root/tools/cvsCheckoutDate can help find the timestamp
cd tekkotsu_root/project; # tekkotsu_root is usually /usr/local/Tekkotsu
make cleanProj; # prevent spurrious diff'ing of generated files
#get latest version of project directory (into '/tmp/curproj')
# 'rm -rf /tmp/curproj' if it already exists
cvs -d :pserver:anonymous@cvs.tekkotsu.org:/cvs checkout -Pd /tmp/curproj Tekkotsu/project
# generate patch to sync local to repository
diff -u -r -N -a --binary --exclude=CVS . /tmp/curproj > /tmp/current.patch
# apply patch to sync local to repository
cd /path/to/your/project
patch -p0 < /tmp/current.patch; #bring project up to date
# could be done anytime after first stage (patch generation)
# is complete but better to wait until patch is applied
# successfully, just in case
cd tekkotsu_root
cvs update -d -P -A; #update framework to latest version
#SIMPLE METHOD - only catches modified, pre-existing files
# (attach new files to submission manually)
cd tekkotsu_root
cvs diff -u -b > your_submission.patch
#ALTERNATIVE METHOD - more general, catches all modifications
# in single patch
#get latest version of project directory (into '/tmp/curproj')
# 'rm -rf /tmp/curproj' if it already exists
cvs -d :pserver:anonymous@cvs.tekkotsu.org:/cvs checkout -Pd /tmp/curproj Tekkotsu/project
cd tekkotsu_root;
diff -urbNa --binary --exclude=CVS --exclude=build /tmp/curproj . > your_submission.patch