models.main: manage 'head' from within set_mode() only
[git-cola.git] / README.md
blobfbf4d254c1aaebc84a514725cbc742b70c95998f
1 # git-cola: The highly caffeinated git GUI
3     git-cola is a powerful Git GUI with a slick and intuitive user interface.
5     Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013
6     David Aguilar and contributors
8     This program is free software: you can redistribute it and/or modify
9     it under the terms of the GNU General Public License as published by
10     the Free Software Foundation, either version 2 of the License, or
11     (at your option) any later version.
13     This program is distributed in the hope that it will be useful,
14     but WITHOUT ANY WARRANTY; without even the implied warranty of
15     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16     GNU General Public License for more details.
18     You should have received a copy of the GNU General Public License
19     along with this program.  If not, see <http://www.gnu.org/licenses/>.
21 ## SCREENSHOTS
23 Screenshots are available on the
24 [git-cola screenshots page](http://git-cola.github.io/screenshots.html).
26 ## DOWNLOAD
28     apt-get install git-cola python-pyinotify
30 New releases are available on the
31 [git-cola download page](http://git-cola.github.io/downloads.html).
33 ## FORK
35     git clone git://github.com/git-cola/git-cola.git
37 [git-cola on github](https://github.com/git-cola/git-cola)
39 [git-cola google group](http://groups.google.com/group/git-cola/)
42 # NUTRITIONAL FACTS
45 ## ACTIVE INGREDIENTS
47 * [git](http://git-scm.com/) 1.6.3 or newer
49 * [Python](http://python.org/) 2.5 through 2.7
51 * [PyQt4](http://www.riverbankcomputing.co.uk/software/pyqt/download) 4.4 or newer
53 * [argparse](https://pypi.python.org/pypi/argparse) 1.1 or newer
54   argparse is part of the stdlib in Python 2.7; install argparse separately if
55   you are running on Python 2.6 or below.
57 ## ADDITIVES
59 [pyinotify](https://github.com/seb-m/pyinotify) 0.7.1 or newer
60 enables inotify support on Linux.
62 # BREWING INSTRUCTIONS
64 Normally you can just do "make install" to install *git-cola*
65 in your `$HOME` directory (`$HOME/bin`, `$HOME/share`, etc).
66 If you want to do a global install you can do
68     make prefix=/usr install
70 You don't need to `make` to run it, though.
71 *git-cola* is designed to run directly out of its source tree.
73     bin/git-cola
74     bin/git-dag
76 ## MAC OS X
78 Whether you install cola yourself with `make install` or
79 use the `git-cola.app` bundle, you will need to install
80 *Qt4* and *PyQt4*.
82 The easiest way to do this is to [install homebrew](http://mxcl.github.com/homebrew/)
83 and use it to install git-cola.
85     brew install git-cola
87 Once brew has installed git-cola (and its dependencies) you either use
88 `git-cola.app`, run from source, or install from source via `make install`.
89 You can build `git-cola.app` by running `make git-cola.app`.
91 Installing these packages also gives you a PyQt development
92 environment which can be used for building your own applications
93 or hacking on cola itself.
95 ## WINDOWS INSTALLATION
97 Download the latest stable Git, Python 2.x, and Py2x-PyQt4 installers
99 * [msysGit](http://msysgit.github.com/)
101 * [Python](http://python.org/download/)
103 * [PyQt](http://www.riverbankcomputing.co.uk/software/pyqt/download/)
105 * [git-cola Installer](https://github.com/git-cola/git-cola/downloads)
107 Once these are installed you can run *git-cola* from the Start menu or
108 by double-clicking on the `git-cola.pyw` script.
110 If you are developing *git-cola* on Windows you can use `python.exe` to run
111 *git-cola* directly from source.
113     python.exe bin/git-cola
115 If you want to build the `git-cola Installer` yourself run the provided script
117     contrib/win32/create-installer.sh
119 You have to make sure that the file
121     /share/InnoSetup/ISCC.exe
123 exists. That is normally the case when you run the *msysGit bash* and
124 not the *Git for Windows bash* (look [here](http://msysgit.github.com/)
125 for the differences).
127 ## GOODIES
129 *git-cola* ships with an interactive rebase editor called *git-xbase*.
130 *git-xbase* can be used to reorder and choose commits and can be launched
131 independently of the main *git-cola* interface, e.g.:
133     GIT_SEQUENCE_EDITOR=$PWD/share/git-cola/bin/git-xbase git rebase -i master