8 :ref:`v2.8 <v2.8>` is the latest stable release.
13 Clone the git-cola repo to get the latest development version:
15 ``git clone git://github.com/git-cola/git-cola.git``
22 Usability, bells and whistles
23 -----------------------------
24 * New Polish translation thanks to Łukasz Wojniłowicz
26 https://github.com/git-cola/git-cola/pull/598
28 * The `Bypass Commit Hooks` feature now disables itself automatically
29 when a new commit is created. The new behavior turns the option into a
30 single-use flag, which helps prevent users from accidentally leaving it
31 active longer than intended.
33 https://github.com/git-cola/git-cola/pull/595
35 * `git dag` learned to launch an external diff viewer on selected commits.
36 The standard `Ctrl+D` shortcut can be used to view diffs.
38 https://github.com/git-cola/git-cola/issues/468
40 * `git dag` learned to launch directory diffs via `git difftool --dir-diff`.
41 The `Ctrl+Shift+D` shortcut launches difftool in directory-diff mode.
43 https://github.com/git-cola/git-cola/issues/468
45 * Items in the "Favorites" list can now be renamed, which makes it
46 easier to differentiate between several checkouts of the same repository.
48 https://github.com/git-cola/git-cola/issues/599
50 https://github.com/git-cola/git-cola/pull/601
52 * The startup screen now includes a logo and `git cola` version information.
54 https://github.com/git-cola/git-cola/issues/526
56 * The `About` page was revamped to contain multiple tabs. A new tab was added
57 that provides details about `git cola`''s dependencies. New tabs were also
58 added for giving credit to `git cola`'s authors and translators.
60 * The `About` page can now be accessed via `git cola about`.
62 * The "Fast-forward only" and "No fast-forward" options supported by
63 `git pull` are now accessible via `git cola pull`.
65 * Doing a forced push no longer requires selecting the remote branch.
67 https://github.com/git-cola/git-cola/pull/618
69 * `git cola push` now has an option to suppress the prompt that is shown
70 when pushing would create new remote branches.
72 https://github.com/git-cola/git-cola/issues/605
74 * `git dag` now shows commit messages in a more readable color.
76 https://github.com/git-cola/git-cola/issues/574
78 * `git cola browse` and the `status` widget learned to launch the OS-specified
79 default action for a file. When used on directories via `git cola browse`,
80 or when "Open Parent Directory" is used on files, the OS-specified
81 file browser will typically be used.
83 * `git cola browse` and the `status` widget learned to launch terminals.
87 * `git cola browse` was not updating when expanding items.
89 https://github.com/git-cola/git-cola/issues/588
91 * Typofixes in comments, naming, and strings have been applied.
93 https://github.com/git-cola/git-cola/pull/593
95 * The inotify and win32 filesystem monitoring no longer refreshes
96 when updates are made to ignored files.
98 https://github.com/git-cola/git-cola/issues/517
100 https://github.com/git-cola/git-cola/issues/516
102 * The `Refresh` button on the actions panel no longer raises an
103 exception when using PyQt5.
105 https://github.com/git-cola/git-cola/issues/604
107 * Fixed a typo in the inotify backend that is triggered when files are removed.
109 https://github.com/git-cola/git-cola/issues/607
111 * Fixed a typo when recovering from a failed attempt to open a repository.
113 https://github.com/git-cola/git-cola/issues/606
115 * `git dag` now properly updates itself when launched from the menubar.
117 https://github.com/git-cola/git-cola/pull/613
119 * If git-cola is invoked on Windows using `start pythonw git-cola`,
120 a console window will briefly flash on the screen each time
121 `git cola` invokes `git`. The console window is now suppressed.
123 * We now avoid some problematic Popen flags on Windows which were
124 breaking the `git rebase` feature on Windows.
126 * The `Save` button in `git dag`'s "Grab File..." feature now properly
127 prompts for a filename when saving files.
129 https://github.com/git-cola/git-cola/pull/617
136 Usability, bells and whistles
137 -----------------------------
138 * `git cola push` learned to configure upstream branches.
140 https://github.com/git-cola/git-cola/issues/563
144 * The diffstat view is now properly updated when notifications are
145 received via inotify filesystem monitoring.
147 https://github.com/git-cola/git-cola/issues/577
149 * Python3 with PyQt5 had a bug that prevented `git cola` from starting.
151 https://github.com/git-cola/git-cola/pull/589
161 * When repositories stored in non-ASCII, UTF-8-encoded filesystem paths
162 were operated upon with `LC_ALL=C` set in the environment, unicode errors
163 would occur when using `python2`. `git cola` was made more robust and will
164 now operate correctly within this environment.
166 https://github.com/git-cola/git-cola/issues/581
168 * Support for the `GIT_WORK_TREE` environment variable was fixed.
170 https://github.com/git-cola/git-cola/pull/582
175 * The `unittest.mock` module is now used instead of the original `mock` module
176 when running the `git cola` test suite using Python3.
178 https://github.com/git-cola/git-cola/issues/569
183 * `git cola` is now compatible with *PyQt5*, *PyQt4*, and *Pyside*.
184 `git cola` previously supported *PyQt4* only, but will now use whichever
185 library is available. Users are not required to upgrade at this time,
186 but *PyQt5* support can be enabled anytime by making its python
189 https://github.com/git-cola/git-cola/issues/232
191 *NOTE*: We do not yet recommend using *PyQt5* because there are known
192 exit-on-segfault bugs in *Qt5* that have not yet been addressed.
193 `git cola` is sensitive to this bug and is known to crash on exit
194 when using `git dag` or the interactive rebase feature on *PyQt5*.
196 https://bugreports.qt.io/browse/QTBUG-52988
198 *PyQt4* is stable and there are no known issues when using it so
199 we recommend using it until the Qt5 bugs have been resolved.
201 * `git cola` now depends on *QtPy* and includes a bundled copy of the
202 `qtpy` library. If you are packaging `git cola` and would prefer to use
203 `qtpy` from your distribution instead of the built-in version then use
204 `make NO_VENDOR_LIBS=1` when building `git cola`. This will prevent
205 vendored libraries from being installed.
212 Usability, bells and whistles
213 -----------------------------
215 * A new "Reset" sub-menu provides access to running "git reset --mixed"
216 when resetting branch heads and "git reset --merge" when resetting
219 https://github.com/git-cola/git-cola/issues/542
221 * `git cola` now supports linked worktrees, i.e. worktrees created by
224 https://github.com/git-cola/git-cola/issues/554
229 * Diff highlighting is now robust to the user having
230 diff.supressBlankEmpty=true in their git config.
232 https://github.com/git-cola/git-cola/issues/541
234 * The filesystem monitor now properly handles repositories that use
235 `.git`-files, e.g. when using submodules.
237 https://github.com/git-cola/git-cola/issues/545
239 https://github.com/git-cola/git-cola/pulls/546
241 * Per-repository git configuration is now properly detected when launching
242 `git cola` from an application launcher.
244 https://github.com/git-cola/git-cola/issues/548
246 * `git cola` now cleans up after itself immediately to avoid leaving behind
247 empty `/tmp/git-cola-XXXXXX` directories when the user uses `Ctrl+C`
250 https://github.com/git-cola/git-cola/issues/566
255 * It is now possible to install `git cola` to and from utf8-encoded filesystem
256 paths. Previously, Python's stdlib would throw an encoding error during
257 installation. We workaround the stdlib by forcing python2 to use utf-8,
258 thus fixing assumptions in the stdlib library code.
260 https://github.com/git-cola/git-cola/issues/551
267 Usability, bells and whistles
268 -----------------------------
270 * The icon for untracked files was adjusted to better differentiate
271 between files and the "Untracked" header.
273 https://github.com/git-cola/git-cola/issues/509
275 * Ctrl+O was added as a hotkey for opening repositories.
277 https://github.com/git-cola/git-cola/pull/507
279 * `git dag` now uses consistent edge colors across updates.
281 https://github.com/git-cola/git-cola/issues/512
283 * `git cola`'s Bookmarks widget can now be used to set a "Default Repository".
284 Under the hood, we set the `cola.defaultrepo` configuration variable.
285 The default repository is used whenever `git cola` is launched outside of
286 a Git repository. When unset, or when set to a bogus value, `git cola`
287 will prompt for a repository, as it previously did.
289 https://github.com/git-cola/git-cola/issues/513
291 * `git cola`'s Russian and Spanish translations were improved
292 thanks to Vaiz and Zeioth.
294 https://github.com/git-cola/git-cola/pull/514
296 https://github.com/git-cola/git-cola/pull/515
298 https://github.com/git-cola/git-cola/pull/523
300 * `git cola` was translated to Turkish thanks to Barış ÇELİK.
302 https://github.com/git-cola/git-cola/pull/520
304 * The status view now supports launching `git gui blame`. It can be
305 configured to use a different command by setting `cola.blameviewer`.
307 https://github.com/git-cola/git-cola/pull/521
309 * `git dag` now allows selecting non-contiguous ranges in the log widget.
311 https://github.com/git-cola/git-cola/issues/468
313 * Any font can now be chosen for the diff editor, not just monospace fonts.
315 https://github.com/git-cola/git-cola/issues/525
320 * `xfce4-terminal` and `gnome-terminal` are now supported when launching
321 `git mergetool` to resolve merges. These terminals require that the command
322 to execute is shell-quoted and passed as a single string argument to `-e`
323 rather than as additional command line arguments.
325 https://github.com/git-cola/git-cola/issues/524
327 * Fixed a unicode problem when formatting the error message that is shown
328 when `gitk` is not installed. We now handle unicode data in tracebacks
329 generated by python itself.
331 https://github.com/git-cola/git-cola/issues/528
333 * The `New repository` feature was fixed.
335 https://github.com/git-cola/git-cola/pull/533
337 * We now use omit the extended description when creating "fixup!" commits,
338 for consistency with the Git CLI. We now include only the one-line summary
339 in the final commit message.
341 https://github.com/git-cola/git-cola/issues/522
348 Usability, bells and whistles
349 -----------------------------
351 * The user interface is now HiDPI-capable. git-cola now uses SVG
352 icons, and its interface can be scaled by setting the `GIT_COLA_SCALE`
353 environment variable.
355 * `git dag` now supports the standard editor, difftool, and history hotkeys.
356 It is now possible to invoke these actions from file widget's context
357 menu and through the standard hotkeys.
359 https://github.com/git-cola/git-cola/pull/473
361 * The `Status` tool also learned about the history hotkey.
362 Additionally, the `Alt-{j,k}` aliases are also supported in the `Status`
363 tool for consistency with the other tools where the non-Alt hotkeys are not
366 https://github.com/git-cola/git-cola/pull/488
368 * The `File Browser` tool now has better default column sizes,
369 and remembers its window size and placement.
371 * The `File Browser` now supports the refresh hotkey, and has better
372 behavior when refreshing. The selection is now retained, and new and
373 removed files are found when refreshing.
375 * A new `git-cola-completion.bash` completion script is provided in the
376 `contrib/` directory. It must be used alongside Git's completion script.
377 Source it from your `~/.bashrc` (or `~/.zshrc`, etc) after sourcing
378 the `git-completion.bash` script and you will have command-line completion
379 support for the `git cola` and `git dag` sub-commands.
381 * The "checkout" dialog now offers completion for remote branches and other
382 git refs. This makes it easier to checkout remote branches in a detached
383 head state. Additionally, the checkout dialog also offers completion for
384 remote branches that have not yet been checked out, which makes it easier to
385 create a local tracking branch by just completing for that potential name.
387 https://github.com/git-cola/git-cola/issues/390
389 * The "create branch" and "create tag" dialogs now save and restore their
392 * The "status" widget can now be configured to use a bold font with a darker
393 background for the header items.
395 https://github.com/git-cola/git-cola/pull/506
397 * The "status" widget now remembers its horizontol scrollbar position across
398 updates. This is helpful when working on projects with long paths.
400 https://github.com/git-cola/git-cola/issues/494
405 * When using *Git for Windows*, a `git` window would appear
406 when running *Windows 8*. We now pass additional flags to
407 `subprocess.Popen` to prevent a `git` window from appearing.
409 https://github.com/git-cola/git-cola/issues/477
411 https://github.com/git-cola/git-cola/pull/486
413 * Launching difftool with `.PY` in `$PATHEXT` on Windows was fixed.
415 https://github.com/git-cola/git-cola/issues/492
417 * Creating a local branch tracking a remote branch that contains
418 slashes in its name is now properly handled.
420 https://github.com/git-cola/git-cola/issues/496
422 * The "Browse Other Branch" feature was broken by Python3, and is now fixed.
424 https://github.com/git-cola/git-cola/issues/501
426 * We now avoid `long` for better Python3 compatibility.
428 https://github.com/git-cola/git-cola/issues/502
430 * We now use Git's default merge message when merging branches.
432 https://github.com/git-cola/git-cola/issues/508
434 * Miscellaneous fixes
436 https://github.com/git-cola/git-cola/pull/485
441 * git-cola's documentation no longer uses an intersphinx link mapping
442 to docs.python.org. This fixes warnings when building rpms using koji,
443 where network access is prevented.
445 https://bugzilla.redhat.com/show_bug.cgi?id=1231812
452 Usability, bells and whistles
453 -----------------------------
455 * The Interactive Rebase feature now works on Windows!
457 https://github.com/git-cola/git-cola/issues/463
459 * The `diff` editor now understands vim-style `hjkl` navigation hotkeys.
461 https://github.com/git-cola/git-cola/issues/476
463 * `Alt-{j,k}` navigation hotkeys were added to allow changing to the
464 next/previous file from the diff and commit editors.
466 * The `Rename branch` menu action is now disabled in empty repositories.
468 https://github.com/git-cola/git-cola/pull/475
470 https://github.com/git-cola/git-cola/issues/459
472 * `git cola` now checks unmerged files for conflict markers before
473 staging them. This feature can be disabled in the preferences.
475 https://github.com/git-cola/git-cola/issues/464
477 * `git dag` now remembers which commits were selected when refreshing
478 so that it can restore the selection afterwards.
480 https://github.com/git-cola/git-cola/issues/480
482 * "Launch Editor", "Launch Difftool", "Stage/Unstage",
483 and "Move Up/Down" hotkeys now work when the commit message
486 https://github.com/git-cola/git-cola/issues/453
488 * The diff editor now supports the `Ctrl+u` hotkey for reverting
489 diff hunks and selected lines.
491 * The `core.commentChar` Git configuration value is now honored.
492 Commit messages and rebase instruction sheets will now use
493 the configured character for comments. This allows having
494 commit messages that start with `#` when `core.commentChar`
495 is configured to its non-default value.
497 https://github.com/git-cola/git-cola/issues/446
502 * Diff syntax highlighting was improved to handle more edge cases
505 https://github.com/git-cola/git-cola/pull/467
507 * Setting commands in the interactive rebase editor was fixed.
509 https://github.com/git-cola/git-cola/issues/472
511 * git-cola no longer clobbers the Ctrl+Backspace text editing shortcut
512 in the commit message editor.
514 https://github.com/git-cola/git-cola/issues/453
516 * The copy/paste clipboard now persists after `git cola` exits.
518 https://github.com/git-cola/git-cola/issues/484
527 * Fixed the "Sign off" feature in the commit message editor.
534 Usability, bells and whistles
535 -----------------------------
536 * Double-click will now choose a commit in the "Select commit" dialog.
538 * `git cola` has a feature that reads `.git/MERGE_MSG` and friends for the
539 commit message when a merge is in-progress. Upon refresh, `git cola` will
540 now detect when a merge has completed and reset the commit message back to
541 its previous state. It is only reset if the editor contains a message
542 that was read from the file and has not been manually edited by the user.
544 * The commit message editor's context menu now has a "Clear..." action for
545 clearing the message across both the summary and description fields.
547 * Traditional Chinese (Taiwan) translation updates.
549 * The system theme's icons are now used wherever possible.
551 https://github.com/git-cola/git-cola/pull/458
555 * The stash viewer now uses ``git show --no-ext-diff`` to avoid running
556 user-configured diff tools.
558 * `git cola` now uses the `setsid()` system call to ensure that the
559 `GIT_ASKPASS` and `SSH_ASKPASS` helper programs are used when pushing
560 changes using `git`. The askpass helpers will now be used even when
561 `git cola` is launched from a terminal.
563 The behavior without `setsid()` is that `git cola` can appear to hang while
564 pushing changes. The hang happens when `git` prompts the user for a
565 password using the terminal, but the user never sees the prompt. `setsid()`
566 detaches the terminal, which ensures that the askpass helpers are used.
568 https://github.com/git-cola/git-cola/issues/218
570 https://github.com/git-cola/git-cola/issues/262
572 https://github.com/git-cola/git-cola/issues/377
574 * `git dag`'s file list tool was updated to properly handle unicode paths.
576 * `gnome-terminal` is no longer used by default when `cola.terminal` is unset.
577 It is broken, as was detailed in #456.
579 https://github.com/git-cola/git-cola/issues/456
581 * The interactive rebase feature was not always setting `$GIT_EDITOR`
582 to the value of `gui.editor`, thus there could be instances where rebase
583 will seem to not stop, or hang, when performing "reword" actions.
585 We now set the `$GIT_EDITOR` environment variable when performing the
586 "Continue", "Skip", and "Edit Todo" rebase actions so that the correct
587 editor is used during the rebase.
589 https://github.com/git-cola/git-cola/issues/445
593 * `git cola` moved from a 3-part version number to a simpler 2-part "vX.Y"
594 version number. Most of our releases tend to contain new features.
601 Usability, bells and whistles
602 -----------------------------
603 * Updated zh_TW translations.
605 * `git cola rebase` now defaults to `@{upstream}`, and generally uses the same
606 CLI syntax as `git rebase`.
608 * The commit message editor now allows you to bypass commit hooks by selecting
609 the "Bypass Commit Hooks" option. This is equivalent to passing the
610 `--no-verify` option to `git commit`.
612 https://github.com/git-cola/git-cola/issues/357
614 * We now prevent the "Delete Files" action from creating a dialog that does
617 https://github.com/git-cola/git-cola/issues/378
619 * `git xbase` learned to edit rebase instruction sheets that contain
622 * The diff colors are now configurable. `cola.color.{text,add,remove,header}`
623 can now be set with 6-digit hexadecimal colors.
624 See the `git cola manual <https://git-cola.readthedocs.io/en/latest/git-cola.html#configuration-variables>_`
627 * Improved hotkey documentation.
631 * `git cola` will now allow starting an interactive rebase with a dirty
632 worktree when `rebase.autostash` is set.
634 https://github.com/git-cola/git-cola/issues/360
641 Usability, bells and whistles
642 -----------------------------
643 * A new "Find files" widget was added, and can be activated by
644 using the `Ctrl+t` or `t` hotkeys.
646 * A new `git cola find` sub-command was added for finding files.
648 * `git cola` now remembers the text cursor's position when staging
649 interactively with the keyboard. This makes it easier to use the keyboard
650 arrows to select and stage lines.
652 * The completion widgets will now select the top completion item
653 when `Enter` or `Return` are pressed.
655 * You can now refresh using `F5` in addition to the existing `Ctrl+R` hotkey.
659 * `git cola` now passes `--no-abbrev-commit` to `git log` to override
660 having `log.abbrevCommit = true` set in `.gitconfig`.
666 Usability, bells and whistles
667 -----------------------------
668 * `git dag` now forwards all unknown arguments along to `git log`.
670 https://github.com/git-cola/git-cola/issues/389
672 * Line-by-line interactive staging was made more robust.
674 https://github.com/git-cola/git-cola/pull/399
676 * "Bookmarks" was renamed to "Favorites".
678 https://github.com/git-cola/git-cola/issues/392
680 * Untracked files are now displayed using a unique icon.
682 https://github.com/git-cola/git-cola/pull/388
686 * `git dag` was triggering a traceback on Fedora when parsing Git logs.
688 https://bugzilla.redhat.com/show_bug.cgi?id=1181686
690 * inotify expects unicode paths on Python3.
692 https://github.com/git-cola/git-cola/pull/393
694 * Untracked files are now assumed to be utf-8 encoded.
696 https://github.com/git-cola/git-cola/issues/401
702 Usability, bells and whistles
703 -----------------------------
704 * `git cola` can now create GPG-signed commits and merges.
706 https://github.com/git-cola/git-cola/issues/149
708 See the documentation for details about setting up a GPG agent.
710 * The status widget learned to copy relative paths when `Ctrl+x` is pressed.
712 https://github.com/git-cola/git-cola/issues/358
714 * Custom GUI actions can now define their own keyboard shortcuts by
715 setting `guitool.$name.shortcut` to a string understood by Qt's
716 `QAction::setShortcut()` API, e.g. `Alt+X`.
718 See http://qt-project.org/doc/qt-4.8/qkeysequence.html#QKeySequence-2
719 for more details about the supported values.
721 * `git cola` learned to rename branches.
723 https://github.com/git-cola/git-cola/pull/364
725 https://github.com/git-cola/git-cola/issues/278
727 * `git dag` now has a "Show history" context menu which can be used to filter
728 history using the selected paths.
732 * `sphinxtogithub.py` was fixed for Python3.
734 https://github.com/git-cola/git-cola/pull/353
736 * The commit that changed how we read remotes from `git remote`
737 to parsing `git config` was reverted since it created problems
740 * Fixed a crash when using the `rebase edit` feature.
742 https://github.com/git-cola/git-cola/issues/351
744 * Better drag-and-drop behavior when dropping into gnome-terminal.
746 https://github.com/git-cola/git-cola/issues/373
750 * The `git-cola-folder-handler.desktop` file handler was fixed
751 to pass validation by `desktop-file-validate`.
753 https://github.com/git-cola/git-cola/issues/356
755 * The `git.svg` icon was renamed to `git-cola.svg`, and `git cola` was taught
756 to prefer icons from the desktop theme when available.
762 Usability, bells and whistles
763 -----------------------------
764 * New hotkey: `Ctrl+Shift+M` merges branches.
766 * New hotkey: `Ctrl+R` refreshes the DAG viewer.
768 https://github.com/git-cola/git-cola/issues/347
772 * We now use `git config` to parse the list of remotes
773 instead of parsing the output of `git remote`, which
774 is a Git porcelain and should not be used by scripts.
776 * Avoid "C++ object has been deleted" errors from PyQt4.
778 https://github.com/git-cola/git-cola/issues/346
782 * The `make install` target now uses `install` instead of `cp`.
788 Usability, bells and whistles
789 -----------------------------
790 * Updated Brazillian Portuguese translation.
792 * The status and browse widgets now allow drag-and-drop into
793 external applications.
795 https://github.com/git-cola/git-cola/issues/335
797 * We now show a progress bar when cloning repositories.
799 https://github.com/git-cola/git-cola/issues/312
801 * The bookmarks widget was simplified to not need a
804 https://github.com/git-cola/git-cola/issues/289
806 * Updated Traditional Chinese translation.
808 * We now display a warning when trying to rebase with uncommitted changes.
810 https://github.com/git-cola/git-cola/issues/338
812 * The status widget learned to filter paths.
813 `Ctrl+Shift+S` toggles the filter widget.
815 https://github.com/git-cola/git-cola/issues/337
817 https://github.com/git-cola/git-cola/pull/339
819 * The status widget learned to move files to the trash
820 when the `send2trash <https://github.com/hsoft/send2trash>`_
823 https://github.com/git-cola/git-cola/issues/341
825 * "Recent repositories" is now a dedicated widget.
827 https://github.com/git-cola/git-cola/issues/342
829 * New Spanish translation thanks to Pilar Molina Lopez.
831 https://github.com/git-cola/git-cola/pull/344
835 * Newly added remotes are now properly seen by the fetch/push/pull dialogs.
837 https://github.com/git-cola/git-cola/issues/343
843 Usability, bells and whistles
844 -----------------------------
845 * New Brazillian Portuguese translation thanks to Vitor Lobo.
847 * New Indonesian translation thanks to Samsul Ma'arif.
849 * Updated Simplified Chinese translation thanks to Zhang Han.
851 * `Ctrl+Backspace` is now a hotkey for "delete untracked files" in
854 * Fetch/Push/Pull dialogs now use the configured remote of the current
857 https://github.com/git-cola/git-cola/pull/324
861 * We now use `os.getcwd()` on Python3.
863 https://github.com/git-cola/git-cola/pull/316
865 https://github.com/git-cola/git-cola/pull/326
867 * The `Ctrl+P` hotkey was overloaded to both "push" and "cherry-pick",
868 so "cherry-pick" was moved to `Ctrl+Shift+C`.
870 * Custom GUI tools with mixed-case names are now properly supported.
872 * "Diff Region" is now referred to as "Diff Hunk" for consistency
873 with common terminology from diff/patch tools.
875 https://github.com/git-cola/git-cola/issues/328
877 * git-cola's test suite is now portable to MS Windows.
879 https://github.com/git-cola/git-cola/pull/332
885 Usability, bells and whistles
886 -----------------------------
887 * We now handle the case when inotify `add_watch()` fails
888 and display instructions on how to increase the number of watches.
890 https://github.com/git-cola/git-cola/issues/263
892 * New and improved zh_TW localization thanks to V字龍(Vdragon).
894 https://github.com/git-cola/git-cola/pull/265
896 https://github.com/git-cola/git-cola/pull/267
898 https://github.com/git-cola/git-cola/pull/268
900 https://github.com/git-cola/git-cola/issues/269
902 https://github.com/git-cola/git-cola/pull/270
904 https://github.com/git-cola/git-cola/pull/271
906 https://github.com/git-cola/git-cola/pull/272
908 * New hotkeys: `Ctrl+F` for fetch, `Ctrl+P` for push,
909 and `Ctrl+Shift+P` for pull.
911 * The bookmarks widget's context menu actions were made clearer.
913 https://github.com/git-cola/git-cola/issues/281
915 * The term "Staging Area" is used consistently in the UI
916 to allow for better localization.
918 https://github.com/git-cola/git-cola/issues/283
920 * The "Section" term is now referred to as "Diff Region"
923 https://github.com/git-cola/git-cola/issues/297
925 * The localization documentation related to the LANGUAGE
926 environment variable was improved.
928 https://github.com/git-cola/git-cola/pull/293
930 * The "Actions" panel now contains tooltips for each button
931 in case the button labels gets truncated by Qt.
933 https://github.com/git-cola/git-cola/issues/292
935 * Custom `git config`-defined actions can now be run in the
936 background by setting `guitool.<name>.background` to `true`.
940 * We now use bold fonts instead of SmallCaps to avoid
941 artifacts on several configurations.
943 * We now pickup `user.email`, `cola.tabwidth`, and similar settings
944 when defined in /etc/gitconfig.
946 https://github.com/git-cola/git-cola/issues/259
948 * Better support for unicode paths when using inotify.
950 https://bugzilla.redhat.com/show_bug.cgi?id=1104181
952 * Unicode fixes for non-ascii locales.
954 https://github.com/git-cola/git-cola/issues/266
956 https://github.com/git-cola/git-cola/issues/273
958 https://github.com/git-cola/git-cola/issues/276
960 https://github.com/git-cola/git-cola/issues/282
962 https://github.com/git-cola/git-cola/issues/298
964 https://github.com/git-cola/git-cola/issues/302
966 https://github.com/git-cola/git-cola/issues/303
968 https://github.com/git-cola/git-cola/issues/305
970 * Viewing history from the file browser was fixed for Python3.
972 https://github.com/git-cola/git-cola/issues/274
974 * setup.py was fixed to install the `*.rst` documentation.
976 https://github.com/git-cola/git-cola/issues/279
978 * Patch export was fixed for Python3.
980 https://github.com/git-cola/git-cola/issues/290
982 * Fixed adding a bookmark with trailing slashes.
984 https://github.com/git-cola/git-cola/pull/295
986 * The default `git dag` layout is now setup so that its widgets
987 can be freely resized on Linux.
989 https://github.com/git-cola/git-cola/issues/299
991 * Invalid tag names are now reported when creating tags.
993 https://github.com/git-cola/git-cola/pull/296
999 Usability, bells and whistles
1000 -----------------------------
1001 * `git cola` no longer prompts after successfully creating a new branch.
1003 https://github.com/git-cola/git-cola/pull/251
1005 * Hitting enter on simple dialogs now accepts them.
1007 https://github.com/git-cola/git-cola/pull/255
1011 * `git dag` no longer relies on `sys.maxint`, which is
1012 not available in Python3.
1014 https://github.com/git-cola/git-cola/issues/249
1016 * Python3-related fixes.
1018 https://github.com/git-cola/git-cola/pull/254
1020 * Python3-on-Windows-related fixes.
1022 https://github.com/git-cola/git-cola/pull/250
1024 https://github.com/git-cola/git-cola/pull/252
1026 https://github.com/git-cola/git-cola/pull/253
1028 * Switching repositories using the bookmarks widget was not
1029 refreshing the inotify watcher.
1031 https://github.com/git-cola/git-cola/pull/256
1033 * Special commit messages trailers (e.g. "Acked-by:") are now special-cased to
1034 fix word wrapping lines that start with "foo:".
1036 https://github.com/git-cola/git-cola/issues/257
1038 * `git dag` sometimes left behind selection artifacts.
1039 We now refresh the view to avoid them.
1041 https://github.com/git-cola/git-cola/issues/204
1047 Usability, bells and whistles
1048 -----------------------------
1049 * Better inotify support for file creation and deletion.
1051 https://github.com/git-cola/git-cola/issues/240
1053 * `git cola` now supports the X11 Session Management Protocol
1054 and remembers its state across logout/reboot.
1056 https://github.com/git-cola/git-cola/issues/164
1058 * `git cola` has a new icon.
1060 https://github.com/git-cola/git-cola/issues/190
1064 * Building the documentation no longer requires `asciidoc`.
1065 We now use `Sphinx <http://sphinx-doc.org/>`_ for building
1066 html documentation and man pages.
1070 * Reworked the git-dag gravatar icon code to avoid a unicode
1073 * Commit message line-wrapping was made to better match the GUI editor.
1075 https://github.com/git-cola/git-cola/issues/242
1077 * Better support for Python3 on Windows
1079 https://github.com/git-cola/git-cola/issues/246
1083 * git-cola no longer depends on Asciidoc for building its documentation
1084 and man-pages. We now depend on [Sphinx](http://sphinx-doc.org/) only.
1090 Usability, bells and whistles
1091 -----------------------------
1092 * Some context menu actions are now hidden when selected
1095 https://github.com/git-cola/git-cola/issues/238
1099 * The build-git-cola.sh contrib script was improved.
1101 https://github.com/git-cola/git-cola/pull/235
1103 * Non-ascii worktrees work properly again.
1105 https://github.com/git-cola/git-cola/issues/234
1107 * The browser now guards itself against missing files.
1109 https://bugzilla.redhat.com/show_bug.cgi?id=1071378
1111 * Saving widget state now works under Python3.
1113 https://github.com/git-cola/git-cola/pull/236
1121 * git-cola now runs on Python 3 thanks to Virgil Dupras.
1123 https://github.com/git-cola/git-cola/pull/233
1125 * Python 2.6, 2.7, and 3.2+ are now supported.
1126 Python 2.5 is no longer supported.
1130 * i18n test fixes thanks to Virgil Dupras.
1132 https://github.com/git-cola/git-cola/pull/231
1134 * git-cola.app build fixes thanks to Maicon D. Filippsen.
1136 https://github.com/git-cola/git-cola/pull/230
1138 * Lots of pylint improvements thanks to Alex Chernetz.
1140 https://github.com/git-cola/git-cola/pull/229
1146 Usability, bells and whistles
1147 -----------------------------
1148 * The new `Bookmarks` tool makes it really easy to switch between repositories.
1150 * There is now a dedicated dialog for applying patches.
1151 See the ``File -> Apply Patches`` menu item.
1153 https://github.com/git-cola/git-cola/issues/215
1155 * A new `git cola am` sub-command was added for applying patches.
1159 * Fixed a typo that caused inotify events to be silently ignored.
1161 * Fixed the sys.path setup for Mac OS X (Homebrew).
1163 https://github.com/git-cola/git-cola/issues/221
1165 * Lots of pylint fixes thanks to Alex Chernetz.
1171 Usability, bells and whistles
1172 -----------------------------
1173 * `git cola --amend` now starts the editor in `amend` mode.
1175 https://github.com/git-cola/git-cola/issues/187
1177 * Multiple lines of text can now be pasted into the `summary` field.
1178 All text beyond the first newline will be automatically moved to the
1179 `extended description` field.
1181 https://github.com/git-cola/git-cola/issues/212
1185 * Stray whitespace in `.git` files is now ignored.
1187 https://github.com/git-cola/git-cola/issues/213
1189 * Fix "known incorrect sRGB profile" in `staged-item.png`.
1191 http://comments.gmane.org/gmane.linux.gentoo.devel/85066
1199 * Fix a traceback when `git push` fails.
1201 https://bugzilla.redhat.com/show_bug.cgi?id=1034778
1205 * Most of the git-cola sub-packages have been removed.
1206 The only remaining packages are `cola`, `cola.models`,
1209 * The translation file for Simplified Chinese was renamed
1212 https://github.com/git-cola/git-cola/issues/209
1220 * `git cola version --brief` now prints the brief version number.
1224 * Resurrected the "make dist" target, for those that prefer to create
1227 * Fixed the typo that broke the preferences dialog.
1233 Usability, bells and whistles
1234 -----------------------------
1235 * We now ship a full-featured interactive `git rebase` editor.
1236 The rebase todo file is edited using the `git xbase` script which
1237 is provided at `$prefix/share/git-cola/bin/git-xbase`.
1238 This script can be used standalone by setting the `$GIT_SEQUENCE_EDITOR`
1239 before running `git rebase --interactive`.
1241 https://github.com/git-cola/git-cola/issues/1
1243 * Fixup commit messages can now be loaded from the commit message editor.
1245 * Tool widgets can be locked in place by using the "Tools/Lock Layout"
1248 https://github.com/git-cola/git-cola/issues/202
1250 * You can now push to several remotes simultaneously by selecting
1251 multiple remotes in the "Push" dialog.
1253 https://github.com/git-cola/git-cola/issues/148
1255 * The `grep` tool learned to search using three different modes:
1256 basic regular expressions (default), extended regular expressions,
1261 * `git cola` now depends on the `argparse` Python module.
1262 This module is part of the stdlib in Python 2.7 and must
1263 be installed separately when using Python 2.6 and below.
1267 * Support unicode in the output from `fetch`, `push`, and `pull`.
1273 Usability, bells and whistles
1274 -----------------------------
1275 * We now detect when the editor or history browser are misconfigured.
1277 https://github.com/git-cola/git-cola/issues/197
1279 https://bugzilla.redhat.com/show_bug.cgi?id=886826
1281 * Display of untracked files can be disabled from the Preferences dialog
1282 or by setting the `gui.displayuntracked` configuration variable to `false`.
1284 http://thread.gmane.org/gmane.comp.version-control.git/232683
1288 * Unicode stash names are now supported
1290 https://github.com/git-cola/git-cola/issues/198
1292 * The diffs produced when reverting workspace changes were made more robust.
1297 =======================
1298 Usability, bells and whistles
1299 -----------------------------
1300 * Brand new German translation thanks to Sven Claussner.
1302 * The "File" menu now provides a "New Repository..." menu action.
1304 * `git dag` now uses a dock-widget interface so that its widgets can
1305 be laid-out and arranged. Customizations are saved and restored
1306 the next time `git dag` is launched.
1308 * `git dag` now has a "Zoom Best Fit" button next alongside the
1309 "Zoom In" and "Zoom Out" buttons.
1311 * `Ctrl+L` now focuses the "Search" field in the `git dag` tool.
1313 * Right-clicking in the "diff" viewer now updates the cursor position
1314 before performing actions, which makes it much easier to click around
1315 and selectively stage sections. Previously, the current cursor position
1316 was used which meant that it required two clicks (left-click to update
1317 the position followed by right-click to get the context menu) for the
1318 desired section to be used. This is now a single right-click operation.
1320 * The `Ctrl+D` "Launch Diff Tool" action learned to automatically choose
1321 between `git difftool` and `git mergetool`. If the file is unmerged then
1322 we automatically launch `git mergetool` on the path, otherwise we use
1323 `git difftool`. We do this because `git difftool` is not intended to
1324 be used on unmerged paths. Automatically using `git mergetool` when
1325 appropriate is the most intuitive and muscle-memory-friendly thing to do.
1327 * You can now right-click on folders in your standard file browser
1328 and choose "Open With -> Git Cola" (Linux-only).
1332 * Python 2.6 on Mac OS X Snow Leopard does not provide a namedtuple
1333 at `sys.version_info`. We now avoid using that variable for better
1336 * We now read the user's Git configuration from `~/.config/git/config`
1337 if that file is available, otherwise we use the traditional `~/.gitconfig`
1338 path, just like Git itself.
1340 * Some edge cases were fixed when applying partial/selected diffs.
1342 * The diff viewer is now properly cleared when refreshing.
1344 https://github.com/git-cola/git-cola/issues/194
1350 Usability, bells and whistles
1351 -----------------------------
1352 * The diff viewer now has an "Options" menu which can be
1353 used to set "git diff" options. This can be used to
1354 ignore whitespace changes or to show a change with its
1355 surrounding function as context.
1357 https://github.com/git-cola/git-cola/issues/150
1359 * `git cola` now remembers your commit message and will restore it
1360 when `git cola` is restarted.
1362 https://github.com/git-cola/git-cola/pull/175
1364 * `Ctrl+M` can now be used to toggle the "Amend last commit"
1365 checkbox in the commit message editor.
1367 https://github.com/git-cola/git-cola/pull/161
1369 * Deleting remote branches can now be done from the "Branch" menu.
1371 https://github.com/git-cola/git-cola/issues/152
1373 * The commit message editor now has a built-in spell checker.
1377 * We now avoid invoking external diffs when showing diffstats.
1379 https://github.com/git-cola/git-cola/pull/163
1381 * The `Status` tool learned to reselect files when refreshing.
1383 https://github.com/git-cola/git-cola/issues/165
1385 * `git cola` now remembers whether it has been maximized and will restore the
1386 maximized state when `git cola` is restarted.
1388 https://github.com/git-cola/git-cola/issues/172
1390 * Performance is now vastly improved when staging hundreds or
1393 * `git cola` was not correctly saving repo-specific configuration.
1395 https://github.com/git-cola/git-cola/issues/174
1397 * Fix a UnicodeDecode in sphinxtogithub when building from source.
1403 Usability, bells and whistles
1404 -----------------------------
1405 * We now automatically remove missing repositories from the
1406 "Select Repository" dialog.
1408 https://github.com/git-cola/git-cola/issues/145
1410 * A new `git cola diff` sub-command was added for diffing changed files.
1414 * The inotify auto-refresh feature makes it difficult to select text in
1415 the "diff" editor when files are being continually modified by another
1416 process. The auto-refresh causes it to lose the currently selected text,
1417 which is not wanted. We now avoid this problem by saving and restoring
1418 the selection when refreshing the editor.
1420 https://github.com/git-cola/git-cola/issues/155
1422 * More strings have been marked for l10n.
1424 https://github.com/git-cola/git-cola/issues/157
1426 * Fixed the Alt+D Diffstat shortcut.
1428 https://github.com/git-cola/git-cola/issues/159
1432 * Better error handling when cloning repositories.
1434 We were not handling the case where a git URL has
1435 no basename, e.g. `https://git.example.com/`.
1436 `git cola` originally rejected these URLs instead of
1437 allowing users to clone them. It now allows these URLs
1438 when they point to valid git repositories.
1440 Additionally, `git cola` learned to echo the errors
1441 reported by `git clone` when it fails.
1443 https://github.com/git-cola/git-cola/issues/156
1449 Usability, bells and whistles
1450 -----------------------------
1451 * `git dag` got a big visual upgrade.
1453 * `Ctrl+G` now launches the "Grep" tool.
1455 * `Ctrl+D` launches difftool and `Ctrl+E` launches your editor
1456 when in the diff panel.
1458 * git-cola can now be told to use an alternative language.
1459 For example, if the native language is German and we want git-cola to
1460 use English then we can create a `~/.config/git-cola/language` file with
1461 "en" as its contents:
1463 $ echo en >~/.config/git-cola/language
1465 https://github.com/git-cola/git-cola/issues/140
1467 * A new `git cola merge` sub-command was added for merging branches.
1469 * Less blocking in the main UI
1473 * Autocomplete issues on KDE
1475 https://github.com/git-cola/git-cola/issues/144
1477 * The "recently opened repositories" startup dialog did not
1478 display itself in the absence of bookmarks.
1480 https://github.com/git-cola/git-cola/issues/139
1486 Usability, bells and whistles
1487 -----------------------------
1488 * `git cola` learned to honor `.gitattributes` when showing and
1489 interactively applying diffs. This makes it possible to store
1490 files in git using a non-utf-8 encoding and `git cola` will
1491 properly accept them. This must be enabled by settings
1492 `cola.fileattributes` to true, as it incurs a small performance
1495 https://github.com/git-cola/git-cola/issues/96
1497 * `git cola` now wraps commit messages at 72 columns automatically.
1498 This is configurable using the `cola.linebreak` variable to enable/disable
1499 the feature, and `cola.textwidth` to configure the limit.
1501 https://github.com/git-cola/git-cola/issues/133
1503 * A new "Open Recent" sub-menu was added to the "File" menu.
1504 This makes it easy to open a recently-edited repository.
1506 https://github.com/git-cola/git-cola/issues/135
1508 * We now show a preview for untracked files when they are clicked
1509 using the `Status` tool.
1510 * A new "Open Using Default Application" action was added to the
1511 `Status` tool. It is activated using either `Spacebar` or through
1512 the context menu. This action uses `xdg-open` on Linux and
1514 * A new "Open Parent Directory" action was added to the `Status` tool.
1515 It is activated using either `Shift+Spacebar` or through the
1517 * `git dag` learned to honor the `log.date` git configuration variable.
1518 This makes the date display follow whatever format the user has
1520 * A new `git cola config` sub-command was added for quickly
1521 tweaking `git cola`'s git configuration settings.
1522 * Some small usability tweaks -- some user confirmation prompts
1523 were defaulting to "Cancel" when they should have been defaulting
1524 to the affirmative option instead.
1528 * Properly handle arbitrarily-named branches.
1529 * We went back to launching `git mergetool` using an xterm.
1530 The reason is that there are a couple of places where `git mergetool`
1531 requires a terminal for user interaction not covered by `--no-prompt`.
1532 * We now properly handle an edge case when applying short diffs at
1533 the start of a file.
1539 Usability, bells and whistles
1540 -----------------------------
1541 * New and improved `grep` mode lets you instantly find and edit files.
1542 * New `git cola grep` standalone mode.
1543 * Support for passing arguments to the configured editors, e.g. `gvim -p`
1544 This makes it possible to select multiple files in the status
1545 window and use `Ctrl-e` to edit them all at once.
1546 * Remote operations now prompt on errors only.
1547 * The `Tab` key now jumps to the extended description when editing the summary.
1548 * More shortcut key labels and misc. UX improvements.
1552 * Selecting an item no longer copies its filename to the copy/paste buffer.
1553 `Ctrl-c` or the "Copy" context-menu action can be used instead.
1554 * The repository monitoring feature on Windows learned to ignore
1555 changes within the ".git" directory. Thanks to Andreas Sommer.
1557 https://github.com/git-cola/git-cola/issues/120
1563 Usability, bells and whistles
1564 -----------------------------
1565 * `git dag` learned to color-code branchy edges.
1566 The edge colors change when a new branch is detected,
1567 which makes the history much easier to follow.
1568 A huge thanks to Uri Okrent for making it happen.
1570 * New GUI for editing remote repositories.
1572 * New `git cola archive` and `git cola remote` sub-commands.
1574 * `git cola browser` learned an 'Untrack' command.
1576 * The diff editor learned to staged/unstaged while amending.
1578 * The status tool can now scroll horizontally.
1580 * New git repositories can be created by clicking 'New' on the
1581 `git cola --prompt` startup screen.
1587 Usability, bells and whistles
1588 -----------------------------
1589 * Auto-completion was added to more tools.
1591 * `git dag` is easier to use on smaller displays -- the author
1592 field elides its text which allows for a more compact display.
1594 * Selected commits in `git dag` were made more prominent and
1597 * 'Create Branch' learned to fetch remote branches and uses a
1598 background thread to do so.
1600 * User-configured GUI tools are listed alphabetically in the 'Actions' menu.
1602 * The 'Pull' dialog remembers the value of the 'Rebase' checkbox
1603 between invocations.
1611 * Detect Homebrew so that OS X users do not need to set PYTHONPATH.
1613 * `git dag` can export patches again.
1619 Usability, bells and whistles
1620 -----------------------------
1621 * The 'Classic' tool was renamed to 'Browser' and learned to
1622 limit history to the current branch.
1624 * `git dag` learned about gravatar and uses it to show images
1627 * `git dag` learned to use OpenGL for rendering resulting in
1628 much faster rendering.
1630 * More dialogs learned vim-style keyboard shortcuts.
1632 * The commit message editor learned better arrow key navigation.
1638 Usability, bells and whistles
1639 -----------------------------
1640 * `git cola` learned a few new sub commands:
1648 * `Return` in the summary field jumps to the extended description.
1650 * `Ctrl+Return` is now a shortcut for 'Commit'.
1652 * Better French translation for 'Sign-off'.
1654 * The 'Search' widget now has a much simpler and streamlined
1657 * vim-style `h,j,k,l` navigation shortcuts were added to the DAG widget.
1659 * `git dag` no longer prompts for files when diffing commits if the
1660 text field contains paths.
1662 * General user interface and performance improvements.
1666 * The diff viewer no longer changes font size when holding `Control`
1667 while scrolling with the mouse wheel.
1669 * Files with a typechange (e.g. symlinks that become files, etc.)
1670 are now correctly identified as being modified.
1674 * The `cola.controllers` and `cola.views` packages were removed.
1680 Usability, bells and whistles
1681 -----------------------------
1682 * `git cola` can now launch sub commands, e.g.:
1693 * `git dag` is more responsive when gathering auto-completions.
1695 * Keyboard shortcuts are displayed when the '?' key is pressed.
1697 * Various keyboard shortcuts were added for improved usability.
1699 * The status widget now lists unmerged files before modified files.
1701 * vim-style `h,j,k,l` navigation shortcuts were added to the status widget.
1703 * A 'Recently Modified Files...' tool was added.
1705 * Tools can now be hidden with `Alt + #` (where `#` is a keyboard number)
1706 and focused with `Alt + Shift + #`.
1708 * The syntax highlighting colors for diffs was made less intrusive.
1710 * The commit message editor was redesigned to have a more compact
1711 and keyboard-convenient user interface.
1713 * Keyboard shortcuts for adding a Signed-off-by (`Ctrl + i`)
1714 and creating a commit (`Ctrl + m`) were added.
1716 * The status widget was adjusted to use less screen real-estate.
1720 * Avoid updating the index when responding to inotify events.
1721 This avoids interfering with operations such as `git rebase --interactive`.
1723 https://github.com/git-cola/git-cola/issues/99
1727 * Create `git-dag.pyw` in the win32 installer.
1729 * win32 shortcuts now contain explicit calls to `pythonw.exe` instead of
1730 calling the `.pyw` file directly.
1734 * The 'Apply Changes from Branch...' feature was removed.
1735 `git dag`'s 'Grab File...' feature used alongside the index/worktree editor
1736 is a simpler alternative.
1744 * Further enhanced the staging/unstaging behavior in the status widget.
1746 https://github.com/git-cola/git-cola/issues/97
1748 * Unmerged files are no longer listed as modified.
1752 The `cola-$version` tarballs on github were originally setup to
1753 have the same contents as the old tarballs hosted on tuxfamily.
1754 The `make dist` target was changed to write files to a
1755 `git-cola-$version` subdirectory and tarball.
1757 This makes the filenames consistent for the source tarball,
1758 the darwin .app tarball, and the win32 .exe installer.
1764 Usability, bells and whistles
1765 -----------------------------
1766 * Refined the staging/unstaging behavior for code reviews.
1768 https://github.com/git-cola/git-cola/issues/97
1770 * Added more styling and icons to menus and buttons.
1772 * Adjusted some terminology to more closely match the git CLI.
1776 * Boolean `git config` settings with no value are now supported
1777 (these are not created by git these days but exist in legacy repositories).
1779 * Unicode branches and tags are supported in the "branch diff" tool.
1781 * Guard against low-memory conditions and more interrupted system calls.
1785 * Added desktop launchers for git-cola.desktop and git-dag.desktop.
1786 This replaces the old cola.desktop, so some adjustments to RPM .spec
1787 and debian/ files will be needed.
1789 * Fixed the darwin app-tarball Makefile target to create relative paths.
1793 * The `--style` option was removed. `git cola` follows the system theme
1794 so there's no need for this option these days.
1800 Usability, bells and whistles
1801 -----------------------------
1802 * Export a patch series from `git dag` into a `patches/` directory.
1804 * `git dag` learned to diff commits, slice history along paths, etc.
1806 * Added instant-preview to the `git stash` widget.
1808 * A simpler preferences editor is used to edit `git config` values.
1810 https://github.com/git-cola/git-cola/issues/90
1812 https://github.com/git-cola/git-cola/issues/89
1814 * Previous commit messages can be re-loaded from the message editor.
1816 https://github.com/git-cola/git-cola/issues/33
1820 * Display commits with no file changes.
1822 https://github.com/git-cola/git-cola/issues/82
1824 * Improved the diff editor's copy/paste behavior
1826 https://github.com/git-cola/git-cola/issues/90
1830 * Bumped version number to ceil(minimum git version).
1831 `git cola` now requires `git` >= 1.6.3.
1833 * Simplified git-cola's versioning when building from tarballs
1834 outside of git. We no longer check for a 'version' file at
1835 the root of the repository. We instead keep a default version
1836 in `cola/version.py` and use it when `git cola`'s `.git` repository
1843 Usability, bells and whistles
1844 -----------------------------
1845 * inotify is much snappier and available on Windows
1846 thanks to Karl Bielefeldt.
1848 * New right-click command to add untracked files to .gitignore
1849 thanks to Audrius Karabanovas.
1851 * Stash, fetch, push, and pull usability improvements
1853 * General usability improvements
1855 * stderr is logged when applying partial diffs.
1859 * Files can be unstaged when amending.
1861 https://github.com/git-cola/git-cola/issues/82
1863 * Show the configured remote.$remote.pushurl in the GUI
1865 https://github.com/git-cola/git-cola/issues/83
1867 * Removed usage of the "user" module.
1869 https://github.com/git-cola/git-cola/issues/86
1871 * Avoids an extra `git update-index` call during startup.
1878 Usability, bells and whistles
1879 -----------------------------
1880 * We now provide better feedback when `git push` fails.
1882 https://github.com/git-cola/git-cola/issues/69
1884 * The Fetch, Push, and Pull dialogs now give better feedback
1885 when interacting with remotes. The dialogs are modal and
1886 a progress dialog is used.
1890 * More unicode fixes, again. It is now possible to have
1891 unicode branch names, repository paths, home directories, etc.
1892 This continued the work initiated by Redhat's bugzilla #694806.
1894 https://bugzilla.redhat.com/show_bug.cgi?id=694806
1900 Usability, bells and whistles
1901 -----------------------------
1902 * The `git cola` desktop launchers now prompt for a repo
1903 by default. This is done by using the new `--prompt`
1904 flag which tells `git cola` to ignore any git repositories
1905 in the current directory and prompt for one instead.
1909 * More Unicode fixes for repositories and home directories with
1910 embedded unicode characters. Thanks to Christian Jann for
1911 patience and helpful bug reports.
1913 * Fix the 'Clone' button in the startup dialog.
1919 Usability, bells and whistles
1920 -----------------------------
1921 * Faster startup time! `git cola` now offloads initialization
1922 to a background thread so that the GUI appears almost instantly.
1924 * Specialized diff options for p4merge, vimdiff, araxis, emerge,
1925 and ecmerge in difftool (backported from git.git).
1929 * Fix launching commands in the background on Windows
1930 (e.g. when launching `git difftool`).
1932 * Fix unicode errors when home or repository directories contain
1935 https://github.com/git-cola/git-cola/issues/74
1937 Redhat's bugzilla #694806
1939 https://bugzilla.redhat.com/show_bug.cgi?id=694806
1945 Usability, bells and whistles
1946 -----------------------------
1947 * The `cola classic` tool can be now configured to be dockable.
1949 https://github.com/git-cola/git-cola/issues/56
1951 * The `cola classic` tool now uses visual sigils to indicate a file's status.
1952 The idea and icons were provided by Uri Okrent.
1954 * Include the 'Rescan' button in the 'Actions' widget regardless
1955 of whether inotify is installed.
1959 * Fix installation of translations per Fedora
1960 This incorporates Fedora's fix for the translations path
1961 which originally appeared in cola-1.4.3-translations.patch.
1963 * Mac OS X git-cola developers can now generate git-cola.app
1964 application bundles using 'make app-bundle'.
1968 * Fixed a stacktrace when trying to use "Get Commit Message Template"
1969 with an unconfigured "commit.template" git config variable.
1971 https://github.com/git-cola/git-cola/issues/72
1973 This bug originated in Redhat's bugzilla #675721 via a Fedora user.
1975 https://bugzilla.redhat.com/show_bug.cgi?id=675721
1977 * Properly raise the main window on Mac OS X.
1979 * Properly handle staging a huge numbers of files at once.
1981 * Speed up 'git config' usage by fixing cola's caching proxy.
1983 * Guard against damaged ~/.cola files.
1989 Usability, bells and whistles
1990 -----------------------------
1991 * `git dag` now has a separate display area
1992 for displaying commit metadata. This area will soon
1993 grow additional functionality such as cherry-picking,
1998 * Fixed tests from a previous refactoring.
2000 * Guard against 'diff.external' configuration by always
2001 calling 'git diff' with the '--no-ext-diff' option.
2003 https://github.com/git-cola/git-cola/issues/67
2005 * Respect 'gui.diffcontext' so that cola's diff display
2006 shows the correct number of context lines.
2008 * Raise the GUI so that it is in the foreground on OS X.
2012 * We now allow distutils to rewrite cola's shebang line.
2013 This allows us to run on systems where "which python"
2014 is Python3k. This is exposed by setting the `PYTHON`
2015 Makefile variable to the location of python2.x.
2017 * git-cola.app is now a tiny download because it no longer
2018 contains Qt and PyQt. These libraries are provided as a
2021 http://code.google.com/p/git-cola/downloads/list
2027 Usability, bells and whistles
2028 -----------------------------
2029 * Clicking on paths in the status widget copies them into the
2030 copy/paste buffer for easy middle-clicking into terminals.
2032 * `Ctrl+C` in diff viewer copies the selected diff to the clipboard.
2036 * Fixed the disappearing actions buttons on PyQt 4.7.4
2037 as reported by Arch and Ubuntu 10.10.
2039 https://github.com/git-cola/git-cola/issues/62
2041 * Fixed mouse interaction with the status widget where some
2042 items could not be de-selected.
2046 * Removed hard-coded reference to lib/ when calculating Python's
2047 site-packages directory.
2053 Usability, bells and whistles
2054 -----------------------------
2055 * Removed "single-click to (un)stage" in the status view.
2056 This is a usability improvement since we no longer perform
2057 different actions depending on where a row is clicked.
2059 * Added ability to create unsigned, annotated tags.
2063 * Updated documentation to use `cola.git` instead of `cola.gitcmd`.
2069 Usability, bells and whistles
2070 -----------------------------
2071 * Allow un/staging by right-clicking top-level items
2073 https://github.com/git-cola/git-cola/issues/57
2075 * Running 'commit' with no staged changes prompts to allow
2078 https://github.com/git-cola/git-cola/issues/55
2080 * Fetch, Push, and Pull are now available via the menus
2082 https://github.com/git-cola/git-cola/issues/58
2086 * Simplified the actions widget to work around a regression
2089 https://github.com/git-cola/git-cola/issues/62
2095 Usability, bells and whistles
2096 -----------------------------
2097 * `git dag` interaction was made faster.
2101 * Added '...' indicators to the buttons for
2102 'Fetch...', 'Push...', 'Pull...', and 'Stash...'.
2104 https://github.com/git-cola/git-cola/issues/51
2106 * Fixed a hang-on-exit bug in the cola-provided
2107 'ssh-askpass' implementation.
2113 Usability, bells and whistles
2114 -----------------------------
2115 * Staging and unstaging is faster.
2117 https://github.com/git-cola/git-cola/issues/48
2119 * `git dag` reads history in a background thread.
2123 * Added :data:`cola.compat.hashlib` for `Python 2.4` compatibility
2124 * Improved `PyQt 4.1.x` compatibility.
2128 * Configured menu actions use ``sh -c`` for Windows portability.
2135 Usability, bells and whistles
2136 -----------------------------
2137 * Added support for the configurable ``guitool.<tool>.*``
2138 actions as described in ``git-config(1)``.
2140 https://github.com/git-cola/git-cola/issues/44
2142 http://schacon.github.com/git/git-config.html
2144 This makes it possible to add new actions to `git cola`
2145 by simply editing ``~/.gitconfig``. This implements the
2146 same guitool support as `git gui`.
2147 * Introduced a stat cache to speed up `git config` and
2148 repository status checks.
2149 * Added Alt-key shortcuts to the main `git cola` interface.
2150 * The `Actions` dock widget switches between a horizontal
2151 and vertical layout when resized.
2152 * We now use ``git diff --submodule`` for submodules
2153 (used when git >= 1.6.6).
2154 * The context menu for modified submodules includes an option
2155 to launch `git cola`.
2157 https://github.com/git-cola/git-cola/issues/17
2159 * Prefer ``$VISUAL`` over ``$EDITOR`` when both are defined.
2160 These are used to set a default editor in lieu of `core.editor`
2162 * Force the editor to be ``gvim`` when we see ``vim``.
2163 This prevents us from launching an editor in the (typically
2164 unattached) parent terminal and creating zombie editors
2165 that cannot be easily killed.
2166 * Selections are remembered and restored across updates.
2167 This makes the `partial-staging` workflow easier since the
2168 diff view will show the updated diff after staging.
2169 * Show the path to the current repository in a tooltip
2170 over the commit message editor.
2172 https://github.com/git-cola/git-cola/issues/45
2174 * Log internal ``git`` commands when ``GIT_COLA_TRACE`` is defined.
2176 https://github.com/git-cola/git-cola/issues/39
2180 * Improved backwards compatibility for Python 2.4.
2181 * `Review mode` can now review the current branch; it no longer
2182 requires you to checkout the branch into which the reviewed
2183 branch will be merged.
2184 * Guard against `color.ui = always` configuration when using
2185 `git log` by passing ``--no-color``.
2186 * ``yes`` and ``no`` are now supported as valid booleans
2187 by the `git config` parser.
2188 * Better defaults are used for `fetch`, `push`, and `pull`..
2190 https://github.com/git-cola/git-cola/issues/43
2194 * Removed colon (`:`) from the applilcation name on Windows
2196 https://github.com/git-cola/git-cola/issues/41
2198 * Fixed bugs with the Windows installer
2200 https://github.com/git-cola/git-cola/issues/40
2202 * Added a more standard i18n infrastructure. The install
2203 tree now has the common ``share/locale/$lang/LC_MESSAGES/git-cola.mo``
2204 layout in use by several projects.
2206 * Started trying to accommodate Mac OSX 10.6 (Snow Leopard)
2207 in the ``darwin/`` build scripts but our tester is yet to
2208 report success building a `.app` bundle.
2210 * Replaced use of ``perl`` in Sphinx/documentation Makefile
2211 with more-portable ``sed`` constructs. Thanks to
2212 Stefan Naewe for discovering the portability issues and
2213 providing msysgit-friendly patches.
2219 Usability, bells and whistles
2220 -----------------------------
2221 * It is now possible to checkout from the index as well
2222 as from `HEAD`. This corresponds to the
2223 `Removed Unstaged Changes` action in the `Repository Status` tool.
2224 * The `remote` dialogs (fetch, push, pull) are now slightly
2226 * Bookmarks can be selected when `git cola` is run outside of a git repository.
2227 * Added more user documentation. We now include many links to
2228 external git resources.
2229 * Added `git dag` to the available tools.
2230 `git dag` is a node-based DAG history browser.
2231 It doesn't do much yet, but it's been merged so that we can start
2232 building and improving upon it.
2236 * Fixed a missing ``import`` when showing `right-click` actions
2237 for unmerged files in the `Repository Status` tool.
2238 * ``git update-index --refresh`` is no longer run every time
2239 ``git cola version`` is run.
2240 * Don't try to watch non-existent directories when using `inotify`.
2241 * Use ``git rev-parse --symbolic-full-name`` plumbing to find
2242 the name of the current branch.
2246 * The ``Makefile`` will now conditionally include a ``config.mak``
2247 file located at the root of the project. This allows for user
2248 customizations such as changes to the `prefix` variable
2249 to be stored in a file so that custom settings do not need to
2250 be specified every time on the command-line.
2251 * The build scripts no longer require a ``.git`` directory to
2252 generate the ``builtin_version.py`` module. The release tarballs
2253 now include a ``version`` file at the root of the project which
2254 is used in lieu of having the git repository available.
2255 This allows for ``make clean && make`` to function outside of
2257 * Added maintainer's ``make dist`` target to the ``Makefile``.
2258 * The built-in `simplejson` and `jsonpickle` libraries can be
2259 excluded from ``make install`` by specifying the ``standalone=true``
2260 `make` variable. For example, ``make standalone=true install``.
2261 This corresponds to the ``--standalone`` option to ``setup.py``.
2268 Usability, bells and whistles
2269 -----------------------------
2270 * We now use patience diff by default when it is available via
2271 `git diff --patience`.
2272 * Allow closing the `cola classic` tool with `Ctrl+W`.
2276 * Fixed an unbound variable error in the `push` dialog.
2280 * Don't include `simplejson` in MANIFEST.in.
2281 * Update desktop entry to read `Cola Git GUI`.
2288 This feature release adds two new features directly from
2289 `git cola`'s github issues backlog. On the developer
2290 front, further work was done towards modularizing the code base.
2292 Usability, bells and whistles
2293 -----------------------------
2294 * Dragging and dropping patches invokes `git am`
2296 https://github.com/git-cola/git-cola/issues/3
2298 * A dialog to allow opening or cloning a repository
2299 is presented when `git cola` is launched outside of a git repository.
2301 https://github.com/git-cola/git-cola/issues/22
2303 * Warn when `push` is used to create a new branch
2305 https://github.com/git-cola/git-cola/issues/35
2307 * Optimized startup time by removing several calls to `git`.
2312 * `git cola` is once again compatible with PyQt 4.3.x.
2316 * `cola.gitcmds` was added to factor out git command-line utilities
2317 * `cola.gitcfg` was added for interacting with `git config`
2318 * `cola.models.browser` was added to factor out repobrowser data
2328 * Fix launching external applications on Windows
2329 * Ensure that the `amend` checkbox is unchecked when switching modes
2330 * Update the status tree when amending commits
2339 * Fix Lintian warnings
2348 * Fix X11 warnings on application startup
2357 * Added missing 'Exit Diff Mode' button for 'Diff Expression' mode
2359 https://github.com/git-cola/git-cola/issues/31
2361 * Fix a bug when initializing fonts on Windows
2363 https://github.com/git-cola/git-cola/issues/32
2372 * Keep entries in sorted order in the `cola classic` tool
2373 * Fix staging untracked files
2375 https://github.com/git-cola/git-cola/issues/27
2377 * Fix the `show` command in the Stash dialog
2379 https://github.com/git-cola/git-cola/issues/29
2381 * Fix a typo when loading merge commit messages
2383 https://github.com/git-cola/git-cola/issues/30
2390 This release focuses on a redesign of the git-cola user interface,
2391 a tags interface, and better integration of the `cola classic` tool.
2392 A flexible interface based on configurable docks is used to manage the
2393 various cola widgets.
2395 Usability, bells and whistles
2396 -----------------------------
2397 * New GUI is flexible and user-configurable
2398 * Individual widgets can be detached and rearranged arbitrarily
2399 * Add an interface for creating tags
2400 * Provide a fallback `SSH_ASKPASS` implementation to prompt for
2401 SSH passwords on fetch/push/pull
2402 * The commit message editor displays the current row/column and
2403 warns when lines get too long
2404 * The `cola classic` tool displays upstream changes
2405 * `git cola --classic` launches `cola classic` in standalone mode
2406 * Provide more information in log messages
2410 * Inherit the window manager's font settings
2411 * Miscellaneous PyQt4 bug fixes and workarounds
2415 * Removed all usage of Qt Designer `.ui` files
2416 * Simpler model/view architecture
2417 * Selection is now shared across tools
2418 * Centralized notifications are used to keep views in sync
2419 * The `cola.git` command class was made thread-safe
2420 * Less coupling between model and view actions
2421 * The status view was rewritten to use the MVC architecture
2422 * Added more documentation and tests
2429 Usability, bells and whistles
2430 -----------------------------
2431 * Added a `cola classic` tool for browsing the entire repository
2432 * Handle diff expressions with spaces
2433 * Handle renamed files
2437 * Handle carat `^` characters in diff expressions on Windows
2438 * Worked around a PyQt 4.5/4.6 QThreadPool bug
2442 * Added a keyboard shortcuts reference page
2443 * Added developer API documentation
2447 * Fix the diff expression used when reviewing branches
2448 * Fix a bug when pushing branches
2449 * Fix X11 warnings at startup
2450 * Fix more interrupted system calls on Mac OS X
2457 Usability, bells and whistles
2458 -----------------------------
2459 * Fresh and tasty SVG logos
2460 * Added `Branch Review` mode for reviewing topic branches
2461 * Added diff modes for diffing between tags, branches,
2462 or arbitrary `git diff` expressions
2463 * The push dialog selects the current branch by default.
2464 This is in preparation for `git 1.7.0` where unconfigured `git push`
2465 will refuse to push when run without specifying the remote name
2466 and branch. See the `git` release notes for more information
2467 * Support `open` and `clone` commands on Windows
2468 * Allow saving cola UI layouts
2469 * Re-enabled `double-click-to-stage` for unmerged entries.
2470 Disabling it for unmerged items was inconsistent, though safer.
2471 * Show diffs when navigating the status tree with the keyboard
2475 * Worked around `pyuic4` bugs in the `setup.py` build script
2476 * Added Mac OSX application bundles to the download page
2485 * `git difftool` became an official git command in `git 1.6.3`.
2486 * `git difftool` learned `--no-prompt` / `-y` and a corresponding
2487 `difftool.prompt` configuration variable
2489 Usability, bells and whistles
2490 -----------------------------
2491 * Warn when `non-fast-forward` is used with fetch, push or pull
2492 * Allow `Ctrl+C` to exit cola when run from the command line
2496 * Support Unicode font names
2497 * Handle interrupted system calls
2501 * `PEP-8`-ified more of the cola code base
2506 * All resources are now installed into `$prefix/share/git-cola`.
2507 Closed Debian bug #519972
2509 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=519972
2518 * Added support for Kompare in `git difftool`
2519 * Added a separate configuration namespace for `git difftool`
2520 * Added the `diff.tool` configuration variable to define the default diff tool
2522 Usability, bells and whistles
2523 -----------------------------
2524 * The stash dialog allows passing the `--keep-index` option to `git stash`
2525 * Amending a published commit warns at commit time
2526 * Simplified the file-across-revisions comparison dialog
2527 * `origin` is selected by default in fetch/push/pull
2528 * Removed the search field from the log widget
2529 * The log window moved into a drawer widget at the bottom of the UI
2530 * Log window display can be configured with
2531 `cola.showoutput` = `{never, always, errors}`. `errors` is the default.
2532 * `NOTE` -- `cola.showoutput` was removed with the GUI rewrite in 1.4.0.
2536 * Improved nose unittest usage
2540 * Added a Windows/msysGit installer
2541 * Included private versions of `simplejson` and `jsonpickle`
2542 for ease of installation and development