
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 copyrighted under the terms of the GNU Lesser
General Public License, Version 3.


Building
========

You need Qt >= 4.6.0, Graphviz >= 2.26, and monotone >= 0.99.1 (or a monotone 
with an interface version of 13.0 or greater) to build and run guitone.

Earlier versions of monotone do not have all the infrastructure for certain 
functionalities available, but might still work in some areas.  In case you
want to use such an older version with guitone, you have to lower the 
requirements in the project file (guitone.pro) and rebuild guitone before you can
actually make it work - 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 guitone.pro
 $ make

To enable i18n, run `lrelease i18n.pro` right before `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
        buggy 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

    help (all):
        Lists available extra targets for your environment

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)

    PKGCONFIG (Unix only):
        Path to the pkg-config(1) tool to determine the correct
        compile and linker flags for graphviz

    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.7.1)

    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 code.monotone.ca/guitone. guitone's main branch
is net.venge.monotone.guitone:

 $ mtn clone 'mtn://code.monotone.ca/guitone?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>
