
guitone - a Qt-Frontend for monotone
====================================

Guitone is a frontend to the monotone revision control system. It aims towards
a full implementation of the monotone automation interface and is especially
targeted at beginners. Guitone is copylefted under the terms of the GNU General
Public License Version 3, or, at your option, any later version of this license.


Building
========

You need Qt >= 4.6.0 to build and monotone >= 0.99.1 (or a monotone with an
interface version of 13.0 or greater) to run guitone.  Earlier versions do not
have all the infrastructure for certain functionalities available, but might
still work in some areas.  (You have to lower the requirements in the project
file and rebuild monotone before you can actually make it work with older
versions - but this is not recommended.)

If you like to build on Windows, you either need a MingW-enabled or
Visual Studio-enabled version of Qt. Please check the docs at qt.nokia.com
for assistance how to build and / or install Qt on Windows.

To build under Windows (MingW) / Linux / Mac OS X, just do

 $ cd /path/to/guitone
 $ qmake -config release
 $ make

The following additional make targets are available:

    tarball (Linux / Mac OS X only):
        Creates a clean, indentifyable tarball for distribution.
        ATTENTION: The Makefile also comes with an autogenerated, but
        bugg dist target from Qt - do _not_ use that!

    install (Linux only):
        Installs the application and related files honoring PREFIX
        and INSTALL_ROOT (make INSTALL_ROOT=/tmp/install-root install)

    macdeploy (Mac OS X only):
        Deploy the Qt libraries and plugins in the application bundle

    macdisk (Mac OS X only):
        Create a distributable disk image containing the deployed
        application bundle and a set of text documents

    win32setup (Windows only):
	    Creates a distributable Windows setup file containing the
        created binary, all needed DLLs and a set of text documents

Some influential variables (qmake VARNAME=value):

    LRELEASE (all platforms):
        Path to Qt's lrelease utility (Default: lrelease)

    MTN (all platforms):
        Path to a monotone binary to determine the base revision
        of the version which is about to be built (Default: mtn)

    MACDEPLOYQT (Mac OS X only):
        Path to Qt's macdeployqt utility (Default: macdeployqt)

    HDIUTIL (Mac OS X only):
        Path to Mac OS X' hdiutil disk utility (Default: hdiutil)

    PREFIX (Linux only):
        Installation prefix (Default: /usr)

    BINDIR (Linux only):
        Installation directory for binaries (Default: PREFIX/bin)

    DATADIR (Linux only):
        Installation directory for data (Default: PREFIX/share)

    APPDIR (Linux only):
        Installation directory for .desktop files
        (Default: DATADIR/applications)

    DOCDIR (Linux only)
        Installation directory for documentation
        (Default: DATADIR/doc/guitone)

    MIMEDIR (Linux only):
        Installation directory for mime configuration files
        (Default: DATADIR/mime/packages)

    PIXMAPDIR (Linux only):
        Directory for icons and pixmaps (Default: DATADIR/pixmaps)

    QTDIR (Windows only):
        Directory of the Qt installation for the win32setup target
        (Default: c:\Qt\4.6.2)

    MINGWDIR (Windows only):
        Directory of the MinGW installation for the win32setup target
        (Default: c:\MinGW)

    OPENSSLDIR (Windows only):
        Directory of the OpenSSL installation for the win32setup target
        (Default: c:\OpenSSL)

    ISCC (Windows only):
        Path to Inno Setup's compiler for the win32setup target
        (Default: c:\Program Files\Inno Setup 5\ISCC.exe)

All created files can be found in bin/.


Obtaining the source
====================

The most recent version can always be obtained from the guitone
repository at thomaskeller.biz. guitone is located in the branch
net.venge.monotone.guitone:

 $ mtn db init -d guitone.mtn
 $ mtn pull -d guitone.mtn thomaskeller.biz "net.venge.monotone.guitone"


Program Notes
=============

* If you encounter crashes, make sure that you've cleaned out any old
  settings directory, usually under .config/GUITONE or under
  .config/Thomas\ Keller. Newer versions of guitone save their
  settings according to the underlying platform, ie. as config file
  under Mac OS X (~/Library/Preferences/biz.thomaskeller.guitone.conf) or
  in the registry under Windows.

* If you still encounter crashes try to enable the file log in the
  Preferences dialog. The log is usually saved in your home directory,
  as "guitone.log". Please send this file, together with a description
  what you've done and (optionally) a gdb backtrace to the author.

* If column sizes in the file diff dialog aren't properly sized and
  any resize attempts are not remembered, please open guitone's
  configuration and remove any entry for 'diffView_header' manually.
  You can find the configuration in
    $HOME/.config/Thomas\ Keller/guitone.conf
  on Linux / Unix, in
    $HOME/Library/Preferences/biz.thomaskeller.guitone.plist
  on Mac OS X and finally in the registry under
    HKEY_CURRENT_USER\Software\Thomas Keller\guitone
  if you're using a Windows build.

* If you try an anonymous pull after you tried a pull with a specific key,
  the anonymous one might fail with "Key 'abc...' is unknown to server" as
  well, because monotone 0.46 has a bug which prevents the resetting of global
  options such as --key between stdio commands.

* When you switch one workspace to another revision, old paths might still
  pop up in the workspace view on Mac OS X. The reason for that is because
  Qt doesn't properly resets / clears the attached views if a model is hard
  reset. Clicking on these "ghost" items should remove them.

* If your problem is not described here, take a look at the task list on
  http://guitone.thomaskeller.biz/g/tracker


Platform Notes
==============

* If you like to compile guitone on Mac OS X, make sure you've
  updated your gcc to 4.0.1 or newer which comes with XCode
  2.2 or later. Otherwise you'll get a "Bus error" on runtime
  due to a bug in gcc 4.0.0


Author
======

Thomas "tommyd" Keller <me AT thomaskeller DOT biz>

Contributions are very welcome, I'm usually hanging around in the
oftc and freenode networks (nick: tommyd), so don't hesitate to contact me!


Former Contributors
===================

Ingo "Slinky" Maindorfer <ingo AT liquidcooling DOT de>
Jean-Louis "Ganwell" Fuchs <ganwell AT fangorn DOT ch>
