## Using CVS to keep on the bleeding edge

The source code is maintained in Concurrent Version System (CVS) at SourceForge. To get your local working copy of the current codebase, go to the sourceforge page and select the link in the Navigation bar to "CVS". Follow the instructions to get your local working copy installed.

Or simply enter (copy&paste) the following in a terminal that will create the folder `qtstalker` in your current working directory and download the latest version into it.

`cvs -z3 -d:pserver:anonymous@qtstalker.cvs.sourceforge.net:/cvsroot/qtstalker checkout -P qtstalker`

If you get an error like `command not found` you have to install cvs. Ubuntu/Debian users have simply to install the package cvs

To build this version just do exactly the same as you would to build a release tarball. Now edit some source code, build, install, see your changes, and send the project a Patch to incorporate your wonderful new features.

Subscribe to the qtstalker-cvs-commits mailing list. This read-only list keeps you informed about the daily changes. Especially notice the modifications to docs/CHANGELOG.*

If there are major changes, then do '`make distclean; ./configure; make && sudo make install`'

You could keep two versions on your system - a "stable" version and a "test" version. Both versions can be from CVS if you like, as long as you deem one of them stable. Flipping back and forth between versions is just a matter of installing one over the other. A `'make install'` will overwrite everything except your data and preferences. If you find that the test version has problems, then just install the stable version. As a precaution, backup your ~/.qtstalker directory and your ~/.qt/qtstalkerrc file before installing a test version, so that you have a clean data tree to revert to in case of data corruption. You should never get data corruption anyway, but as always it is better to be safe.

## Contributing patches to the project

Contributions are the life-blood of a community project. You can contribute in many ways, such as: discussion on the mailing list; helping other users; describing any problems that you might perceive; suggesting enhancements; and sending patches for code or documentation.

A "patch" is a text file showing just the differences between your version and the version in the central repository. To create a patch, use...

    cd /local/cvs/qtstalker
    cvs -q update -dP
    cvs diff -u > mypatch.diff

...and add it via the tracker option at the sourceforge page. If you have other files to be added, then tar and gzip them. Please describe the purpose of your patch.

Of course you do not need CVS just to send a patch. If you are using a release version then make a backup copy of the original file and do...

`diff -u file.html.orig file.html > mypatch.diff`

## More information about CVS

See the CVS Book and many more links e.g at wikipedia.org

## Apply a Patch

If there are new patches posted in the Tracker section, which are currently not included in the cvs tree, you can download them and apply them to your sources (i.e. patch) by hand. Change into your /local/cvs/qtstalker source directory and apply the new patch with the command:

`patch -u -p0 -i path/to/downloaded-patchfile-diff.txt`

But normally you would wait until they are committed to CVS and then update your cvs sources with the abovementioned command:

`cvs -q update -d`

## Editing the application settings manually

Developers will sometimes need to search and even edit the Qtstalker settings. The user settings are persisted using platform-dependent mechanisms.

On most platforms they are stored in the `~/.qt/qtstalkerrc` plain-text file. Edit, save, and re-start Qtstalker.

On "Mac OS X" they are stored in a binary plist. To view/edit, do the following and then re-start Qtstalker:

    cp /Library/Preferences/com.Qtstalker.plist $WORK/qtstalker/com.Qtstalker.plist.save
    plutil -convert xml1 -o $WORK/qtstalker/qtstalker.plist /Library/Preferences/com.Qtstalker.plist
    vi $WORK/qtstalker/qtstalker.plist
    plutil -convert binary1 -o $WORK/qtstalker/qtstalker.plist.bin $WORK/qtstalker/qtstalker.plist
    mv $WORK/qtstalker/qtstalker.plist.bin /Library/Preferences/com.Qtstalker.plist

## Enhancing documentation

Edit docs in docs/*.html and view them immediately in your web browser using the `file://` protocol.

To install the updated docs, do this:

    touch docs/docs.pro
    make && sudo make install

Now view docs via Qtstalker context help. No need to re-start Qtstalker.

See other info about the "indicator docs" help system.