Clone the git-cola repo to get the latest development version:
git clone git://github.com/git-cola/git-cola.git
The “C” key no longer closes the message dialogs, for example the one that is shown when a commit fails its pre-commit hooks. This allows “Ctrl+C” copy to work, rather than closing the dialog. (#734)
Dock widgets sizes are now properly saved and restored when the main window is maximized. (#848)
The spellcheck feature was broken under Python3. (#857)
A regression when saving stashes was fixed. (#847)
Diffing image files was not updating the available context menus, which prevented the “Stage” action from being present in the menu. (#841)
git cola now detects when git lfs uninstall has been run. This allows you to re-initialize “Git LFS” in an existing repository where it had been previously uninstalled. (#842)
Custom color values that did not contain any hexadecimal digits in the a-f range were being converted into integers by the config reader. This then caused the configured colors to be ignored.
These color values are now interpreted correctly. Additionally, color values can now use an optional HTML-like # prefix.
Example .gitconfig snippet:
[cola "color"]
text = "#0a0303"
We now display an error message graphically when Git is not installed. Previously, the message went to stderr only. (#830)
Changing diff options was causing resulting in an exception. (#833) (#834)
The DAG window now updates itself when branches and tags are created. (#814)
The user’s $PATH environment variable can now contain utf-8 encoded paths. Previously, launching external commands could lead to tracebacks. (#807)
Git Cola development sandboxes can now be stored on utf-8 encoded filesystem paths. Previously, the interactive rebase feature could be broken when running in that environment. (#825)
The log window now uses an ISO-8601 timestamp, which avoids localized output in the log window. (#817)
git cola is now compatible with PyQt5, PyQt4, and Pyside. git cola previously supported PyQt4 only, but will now use whichever library is available. Users are not required to upgrade at this time, but PyQt5 support can be enabled anytime by making its python modules available. (#232)
NOTE: We do not yet recommend using PyQt5 because there are known exit-on-segfault bugs in Qt5 that have not yet been addressed. git cola is sensitive to this bug and is known to crash on exit when using git dag or the interactive rebase feature on PyQt5.
https://bugreports.qt.io/browse/QTBUG-52988
PyQt4 is stable and there are no known issues when using it so we recommend using it until the Qt5 bugs have been resolved.
git cola now depends on QtPy and includes a bundled copy of the qtpy library. If you are packaging git cola and would prefer to use qtpy from your distribution instead of the built-in version then use make NO_VENDOR_LIBS=1 when building git cola. This will prevent vendored libraries from being installed.
git-cola’s documentation no longer uses an intersphinx link mapping to docs.python.org. This fixes warnings when building rpms using koji, where network access is prevented.
The stash viewer now uses git show --no-ext-diff to avoid running user-configured diff tools.
git cola now uses the setsid() system call to ensure that the GIT_ASKPASS and SSH_ASKPASS helper programs are used when pushing changes using git. The askpass helpers will now be used even when git cola is launched from a terminal.
The behavior without setsid() is that git cola can appear to hang while pushing changes. The hang happens when git prompts the user for a password using the terminal, but the user never sees the prompt. setsid() detaches the terminal, which ensures that the askpass helpers are used. (#218) (#262) (#377)
git dag‘s file list tool was updated to properly handle unicode paths.
gnome-terminal is no longer used by default when cola.terminal is unset. It is broken, as was detailed in #456. (#456)
The interactive rebase feature was not always setting $GIT_EDITOR to the value of gui.editor, thus there could be instances where rebase will seem to not stop, or hang, when performing “reword” actions.
We now set the $GIT_EDITOR environment variable when performing the “Continue”, “Skip”, and “Edit Todo” rebase actions so that the correct editor is used during the rebase. (#445)
Better error handling when cloning repositories.
We were not handling the case where a git URL has no basename, e.g. https://git.example.com/. git cola originally rejected these URLs instead of allowing users to clone them. It now allows these URLs when they point to valid git repositories.
Additionally, git cola learned to echo the errors reported by git clone when it fails. (#156)
git cola dag
git cola branch
git cola search
git cola classic
git cola stash
git cola fetch
git cola push
git cola pull
git cola tag
The cola-$version tarballs on github were originally setup to have the same contents as the old tarballs hosted on tuxfamily. The make dist target was changed to write files to a git-cola-$version subdirectory and tarball.
This makes the filenames consistent for the source tarball, the darwin .app tarball, and the win32 .exe installer.
More unicode fixes, again. It is now possible to have unicode branch names, repository paths, home directories, etc. This continued the work initiated by Redhat’s bugzilla #694806.
Added support for the configurable guitool.<tool>.* actions as described in the git config documentation. (git-config(1)) (#44)
This makes it possible to add new actions to git cola by simply editing ~/.gitconfig. This implements the same guitool support as git gui.
Introduced a stat cache to speed up git config and repository status checks.
Added Alt-key shortcuts to the main git cola interface.
The Actions dock widget switches between a horizontal and vertical layout when resized.
We now use git diff --submodule for submodules (used when git >= 1.6.6).
The context menu for modified submodules includes an option to launch git cola. (#17)
Prefer $VISUAL over $EDITOR when both are defined. These are used to set a default editor in lieu of core.editor configuration.
Force the editor to be gvim when we see vim. This prevents us from launching an editor in the (typically unattached) parent terminal and creating zombie editors that cannot be easily killed.
Selections are remembered and restored across updates. This makes the partial-staging workflow easier since the diff view will show the updated diff after staging.
Show the path to the current repository in a tooltip over the commit message editor. (#45)
Log internal git commands when GIT_COLA_TRACE is defined. (#39)
This feature release adds two new features directly from git cola‘s github issues backlog. On the developer front, further work was done towards modularizing the code base.
This release focuses on a redesign of the git-cola user interface, a tags interface, and better integration of the cola classic tool. A flexible interface based on configurable docks is used to manage the various cola widgets.
All resources are now installed into $prefix/share/git-cola. Closed Debian bug #519972