14 :ref:`v2.7 <v2.7>` is the latest stable release.
19 Clone the git-cola repo to get the latest development version:
21 ``git clone git://github.com/git-cola/git-cola.git``
28 Usability, bells and whistles
29 -----------------------------
30 * `git cola push` learned to configure upstream branches.
32 https://github.com/git-cola/git-cola/issues/563
36 * The diffstat view is now properly updated when notifications are
37 received via inotify filesystem monitoring.
39 https://github.com/git-cola/git-cola/issues/577
49 * When repositories stored in non-ASCII, UTF-8-encoded filesystem paths
50 were operated upon with `LC_ALL=C` set in the environment, unicode errors
51 would occur when using `python2`. `git cola` was made more robust and will
52 now operate correctly within this environment.
54 https://github.com/git-cola/git-cola/issues/581
56 * Support for the `GIT_WORK_TREE` environment variable was fixed.
58 https://github.com/git-cola/git-cola/pull/582
63 * The `unittest.mock` module is now used instead of the original `mock` module
64 when running the `git cola` test suite using Python3.
66 https://github.com/git-cola/git-cola/issues/569
71 * `git cola` is now compatible with *PyQt5*, *PyQt4*, and *Pyside*.
72 `git cola` previously supported *PyQt4* only, but will now use whichever
73 library is available. Users are not required to upgrade at this time,
74 but *PyQt5* support can be enabled anytime by making its python
77 https://github.com/git-cola/git-cola/issues/232
79 *NOTE*: We do not yet recommend using *PyQt5* because there are known
80 exit-on-segfault bugs in *Qt5* that have not yet been addressed.
81 `git cola` is sensitive to this bug and is known to crash on exit
82 when using `git dag` or the interactive rebase feature on *PyQt5*.
84 https://bugreports.qt.io/browse/QTBUG-52988
86 *PyQt4* is stable and there are no known issues when using it so
87 we recommend using it until the Qt5 bugs have been resolved.
89 * `git cola` now depends on *QtPy* and includes a bundled copy of the
90 `qtpy` library. If you are packaging `git cola` and would prefer to use
91 `qtpy` from your distribution instead of the built-in version then use
92 `make NO_VENDOR_LIBS=1` when building `git cola`. This will prevent
93 vendored libraries from being installed.
100 Usability, bells and whistles
101 -----------------------------
103 * A new "Reset" sub-menu provides access to running "git reset --mixed"
104 when resetting branch heads and "git reset --merge" when resetting
107 https://github.com/git-cola/git-cola/issues/542
109 * `git cola` now supports linked worktrees, i.e. worktrees created by
112 https://github.com/git-cola/git-cola/issues/554
117 * Diff highlighting is now robust to the user having
118 diff.supressBlankEmpty=true in their git config.
120 https://github.com/git-cola/git-cola/issues/541
122 * The filesystem monitor now properly handles repositories that use
123 `.git`-files, e.g. when using submodules.
125 https://github.com/git-cola/git-cola/issues/545
127 https://github.com/git-cola/git-cola/pulls/546
129 * Per-repository git configuration is now properly detected when launching
130 `git cola` from an application launcher.
132 https://github.com/git-cola/git-cola/issues/548
134 * `git cola` now cleans up after itself immediately to avoid leaving behind
135 empty `/tmp/git-cola-XXXXXX` directories when the user uses `Ctrl+C`
138 https://github.com/git-cola/git-cola/issues/566
143 * It is now possible to install `git cola` to and from utf8-encoded filesystem
144 paths. Previously, Python's stdlib would throw an encoding error during
145 installation. We workaround the stdlib by forcing python2 to use utf-8,
146 thus fixing assumptions in the stdlib library code.
148 https://github.com/git-cola/git-cola/issues/551
155 Usability, bells and whistles
156 -----------------------------
158 * The icon for untracked files was adjusted to better differentiate
159 between files and the "Untracked" header.
161 https://github.com/git-cola/git-cola/issues/509
163 * Ctrl+O was added as a hotkey for opening repositories.
165 https://github.com/git-cola/git-cola/pull/507
167 * `git dag` now uses consistent edge colors across updates.
169 https://github.com/git-cola/git-cola/issues/512
171 * `git cola`'s Bookmarks widget can now be used to set a "Default Repository".
172 Under the hood, we set the `cola.defaultrepo` configuration variable.
173 The default repository is used whenever `git cola` is launched outside of
174 a Git repostiory. When unset, or when set to a bogus value, `git cola`
175 will prompt for a repository, as it previously did.
177 https://github.com/git-cola/git-cola/issues/513
179 * `git cola`'s Russian and Spanish translations were improved
180 thanks to Vaiz and Zeioth.
182 https://github.com/git-cola/git-cola/pull/514
184 https://github.com/git-cola/git-cola/pull/515
186 https://github.com/git-cola/git-cola/pull/523
188 * `git cola` was translated to Turkish thanks to Barış ÇELİK.
190 https://github.com/git-cola/git-cola/pull/520
192 * The status view now supports launching `git gui blame`. It can be
193 configured to use a different command by setting `cola.blameviewer`.
195 https://github.com/git-cola/git-cola/pull/521
197 * `git dag` now allows selecting non-contiguous ranges in the log widget.
199 https://github.com/git-cola/git-cola/issues/468
201 * Any font can now be chosen for the diff editor, not just monospace fonts.
203 https://github.com/git-cola/git-cola/issues/525
208 * `xfce4-terminal` and `gnome-terminal` are now supported when launching
209 `git mergetool` to resolve merges. These terminals require that the command
210 to execute is shell-quoted and passed as a single string argument to `-e`
211 rather than as additional command line arguments.
213 https://github.com/git-cola/git-cola/issues/524
215 * Fixed a unicode problem when formatting the error message that is shown
216 when `gitk` is not installed. We now handle unicode data in tracebacks
217 generated by python itself.
219 https://github.com/git-cola/git-cola/issues/528
221 * The `New repository` feature was fixed.
223 https://github.com/git-cola/git-cola/pull/533
225 * We now use omit the extended description when creating "fixup!" commits,
226 for consistency with the Git CLI. We now include only the one-line summary
227 in the final commit message.
229 https://github.com/git-cola/git-cola/issues/522
236 Usability, bells and whistles
237 -----------------------------
239 * The user interface is now HiDPI-capable. git-cola now uses SVG
240 icons, and its interface can be scaled by setting the `GIT_COLA_SCALE`
241 environment variable.
243 * `git dag` now supports the standard editor, difftool, and history hotkeys.
244 It is now possible to invoke these actions from file widget's context
245 menu and through the standard hotkeys.
247 https://github.com/git-cola/git-cola/pull/473
249 * The `Status` tool also learned about the history hotkey.
250 Additionally, the `Alt-{j,k}` aliases are also supported in the `Status`
251 tool for consistency with the other tools where the non-Alt hotkeys are not
254 https://github.com/git-cola/git-cola/pull/488
256 * The `File Browser` tool now has better default column sizes,
257 and remembers its window size and placement.
259 * The `File Browser` now supports the refresh hotkey, and has better
260 behavior when refreshing. The selection is now retained, and new and
261 removed files are found when refreshing.
263 * A new `git-cola-completion.bash` completion script is provided in the
264 `contrib/` directory. It must be used alongside Git's completion script.
265 Source it from your `~/.bashrc` (or `~/.zshrc`, etc) after sourcing
266 the `git-completion.bash` script and you will have command-line completion
267 support for the `git cola` and `git dag` sub-commands.
269 * The "checkout" dialog now offers completion for remote branches and other
270 git refs. This makes it easier to checkout remote branches in a detached
271 head state. Additionally, the checkout dialog also offers completion for
272 remote branches that have not yet been checked out, which makes it easier to
273 create a local tracking branch by just completing for that potential name.
275 https://github.com/git-cola/git-cola/issues/390
277 * The "create branch" and "create tag" dialogs now save and restore their
280 * The "status" widget can now be configured to use a bold font with a darker
281 background for the header items.
283 https://github.com/git-cola/git-cola/pull/506
285 * The "status" widget now remembers its horizontol scrollbar position across
286 updates. This is helpful when working on projects with long paths.
288 https://github.com/git-cola/git-cola/issues/494
293 * When using *Git for Windows*, a `git` window would appear
294 when running *Windows 8*. We now pass additional flags to
295 `subprocess.Popen` to prevent a `git` window from appearing.
297 https://github.com/git-cola/git-cola/issues/477
299 https://github.com/git-cola/git-cola/pull/486
301 * Launching difftool with `.PY` in `$PATHEXT` on Windows was fixed.
303 https://github.com/git-cola/git-cola/issues/492
305 * Creating a local branch tracking a remote branch that contains
306 slashes in its name is now properly handled.
308 https://github.com/git-cola/git-cola/issues/496
310 * The "Browse Other Branch" feature was broken by Python3, and is now fixed.
312 https://github.com/git-cola/git-cola/issues/501
314 * We now avoid `long` for better Python3 compatibility.
316 https://github.com/git-cola/git-cola/issues/502
318 * We now use Git's default merge message when merging branches.
320 https://github.com/git-cola/git-cola/issues/508
322 * Miscellaneous fixes
324 https://github.com/git-cola/git-cola/pull/485
329 * git-cola's documentation no longer uses an intersphinx link mapping
330 to docs.python.org. This fixes warnings when building rpms using koji,
331 where network access is prevented.
333 https://bugzilla.redhat.com/show_bug.cgi?id=1231812
340 Usability, bells and whistles
341 -----------------------------
343 * The Interactive Rebase feature now works on Windows!
345 https://github.com/git-cola/git-cola/issues/463
347 * The `diff` editor now understands vim-style `hjkl` navigation hotkeys.
349 https://github.com/git-cola/git-cola/issues/476
351 * `Alt-{j,k}` navigation hotkeys were added to allow changing to the
352 next/previous file from the diff and commit editors.
354 * The `Rename branch` menu action is now disabled in empty repositories.
356 https://github.com/git-cola/git-cola/pull/475
358 https://github.com/git-cola/git-cola/issues/459
360 * `git cola` now checks unmerged files for conflict markers before
361 staging them. This feature can be disabled in the preferences.
363 https://github.com/git-cola/git-cola/issues/464
365 * `git dag` now remembers which commits were selected when refreshing
366 so that it can restore the selection afterwards.
368 https://github.com/git-cola/git-cola/issues/480
370 * "Launch Editor", "Launch Difftool", "Stage/Unstage",
371 and "Move Up/Down" hotkeys now work when the commit message
374 https://github.com/git-cola/git-cola/issues/453
376 * The diff editor now supports the `Ctrl+u` hotkey for reverting
377 diff hunks and selected lines.
379 * The `core.commentChar` Git configuration value is now honored.
380 Commit messages and rebase instruction sheets will now use
381 the configured character for comments. This allows having
382 commit messages that start with `#` when `core.commentChar`
383 is configured to its non-default value.
385 https://github.com/git-cola/git-cola/issues/446
390 * Diff syntax highlighting was improved to handle more edge cases
393 https://github.com/git-cola/git-cola/pull/467
395 * Setting commands in the interactive rebase editor was fixed.
397 https://github.com/git-cola/git-cola/issues/472
399 * git-cola no longer clobbers the Ctrl+Backspace text editing shortcut
400 in the commit message editor.
402 https://github.com/git-cola/git-cola/issues/453
404 * The copy/paste clipboard now persists after `git cola` exits.
406 https://github.com/git-cola/git-cola/issues/484
415 * Fixed the "Sign off" feature in the commit message editor.
422 Usability, bells and whistles
423 -----------------------------
424 * Double-click will now choose a commit in the "Select commit" dialog.
426 * `git cola` has a feature that reads `.git/MERGE_MSG` and friends for the
427 commit message when a merge is in-progress. Upon refresh, `git cola` will
428 now detect when a merge has completed and reset the commit message back to
429 its previous state. It is only reset if the editor contains a message
430 that was read from the file and has not been manually edited by the user.
432 * The commit message editor's context menu now has a "Clear..." action for
433 clearing the message across both the summary and description fields.
435 * Traditional Chinese (Taiwan) translation updates.
437 * The system theme's icons are now used whereever possible.
439 https://github.com/git-cola/git-cola/pull/458
443 * The stash viewer now uses ``git show --no-ext-diff`` to avoid running
444 user-configured diff tools.
446 * `git cola` now uses the `setsid()` system call to ensure that the
447 `GIT_ASKPASS` and `SSH_ASKPASS` helper programs are used when pushing
448 changes using `git`. The askpass helpers will now be used even when
449 `git cola` is launched from a terminal.
451 The behavior without `setsid()` is that `git cola` can appear to hang while
452 pushing changes. The hang happens when `git` prompts the user for a
453 password using the terminal, but the user never sees the prompt. `setsid()`
454 detaches the terminal, which ensures that the askpass helpers are used.
456 https://github.com/git-cola/git-cola/issues/218
458 https://github.com/git-cola/git-cola/issues/262
460 https://github.com/git-cola/git-cola/issues/377
462 * `git dag`'s file list tool was updated to properly handle unicode paths.
464 * `gnome-terminal` is no longer used by default when `cola.terminal` is unset.
465 It is broken, as was detailed in #456.
467 https://github.com/git-cola/git-cola/issues/456
469 * The interactive rebase feature was not always setting `$GIT_EDITOR`
470 to the value of `gui.editor`, thus there could be instances where rebase
471 will seem to not stop, or hang, when performing "reword" actions.
473 We now set the `$GIT_EDITOR` environment variable when performing the
474 "Continue", "Skip", and "Edit Todo" rebase actions so that the correct
475 editor is used during the rebase.
477 https://github.com/git-cola/git-cola/issues/445
481 * `git cola` moved from a 3-part version number to a simpler 2-part "vX.Y"
482 version number. Most of our releases tend to contain new features.
489 Usability, bells and whistles
490 -----------------------------
491 * Updated zh_TW translations.
493 * `git cola rebase` now defaults to `@{upstream}`, and generally uses the same
494 CLI syntax as `git rebase`.
496 * The commit message editor now allows you to bypass commit hooks by selecting
497 the "Bypass Commit Hooks" option. This is equivalent to passing the
498 `--no-verify` option to `git commit`.
500 https://github.com/git-cola/git-cola/issues/357
502 * We now prevent the "Delete Files" action from creating a dialog that does
505 https://github.com/git-cola/git-cola/issues/378
507 * `git xbase` learned to edit rebase instruction sheets that contain
510 * The diff colors are now configurable. `cola.color.{text,add,remove,header}`
511 can now be set with 6-digit hexadecimal colors.
512 See the `git cola manual <https://git-cola.readthedocs.io/en/latest/git-cola.html#configuration-variables>_`
515 * Improved hotkey documentation.
519 * `git cola` will now allow starting an interactive rebase with a dirty
520 worktree when `rebase.autostash` is set.
522 https://github.com/git-cola/git-cola/issues/360
529 Usability, bells and whistles
530 -----------------------------
531 * A new "Find files" widget was added, and can be activated by
532 using the `Ctrl+t` or `t` hotkeys.
534 * A new `git cola find` sub-command was added for finding files.
536 * `git cola` now remembers the text cursor's position when staging
537 interactively with the keyboard. This makes it easier to use the keyboard
538 arrows to select and stage lines.
540 * The completion widgets will now select the top completion item
541 when `Enter` or `Return` are pressed.
543 * You can now refresh using `F5` in addition to the existing `Ctrl+R` hotkey.
547 * `git cola` now passes `--no-abbrev-commit` to `git log` to override
548 having `log.abbrevCommit = true` set in `.gitconfig`.
554 Usability, bells and whistles
555 -----------------------------
556 * `git dag` now forwards all unknown arguments along to `git log`.
558 https://github.com/git-cola/git-cola/issues/389
560 * Line-by-line interactive staging was made more robust.
562 https://github.com/git-cola/git-cola/pull/399
564 * "Bookmarks" was renamed to "Favorites".
566 https://github.com/git-cola/git-cola/issues/392
568 * Untracked files are now displayed using a unique icon.
570 https://github.com/git-cola/git-cola/pull/388
574 * `git dag` was triggering a traceback on Fedora when parsing Git logs.
576 https://bugzilla.redhat.com/show_bug.cgi?id=1181686
578 * inotify expects unicode paths on Python3.
580 https://github.com/git-cola/git-cola/pull/393
582 * Untracked files are now assumed to be utf-8 encoded.
584 https://github.com/git-cola/git-cola/issues/401
590 Usability, bells and whistles
591 -----------------------------
592 * `git cola` can now create GPG-signed commits and merges.
594 https://github.com/git-cola/git-cola/issues/149
596 See the documentation for details about setting up a GPG agent.
598 * The status widget learned to copy relative paths when `Ctrl+x` is pressed.
600 https://github.com/git-cola/git-cola/issues/358
602 * Custom GUI actions can now define their own keyboard shortcuts by
603 setting `guitool.$name.shortcut` to a string understood by Qt's
604 `QAction::setShortcut()` API, e.g. `Alt+X`.
606 See http://qt-project.org/doc/qt-4.8/qkeysequence.html#QKeySequence-2
607 for more details about the supported values.
609 * `git cola` learned to rename branches.
611 https://github.com/git-cola/git-cola/pull/364
613 https://github.com/git-cola/git-cola/issues/278
615 * `git dag` now has a "Show history" context menu which can be used to filter
616 history using the selected paths.
620 * `sphinxtogithub.py` was fixed for Python3.
622 https://github.com/git-cola/git-cola/pull/353
624 * The commit that changed how we read remotes from `git remote`
625 to parsing `git config` was reverted since it created problems
628 * Fixed a crash when using the `rebase edit` feature.
630 https://github.com/git-cola/git-cola/issues/351
632 * Better drag-and-drop behavior when dropping into gnome-terminal.
634 https://github.com/git-cola/git-cola/issues/373
638 * The `git-cola-folder-handler.desktop` file handler was fixed
639 to pass validation by `desktop-file-validate`.
641 https://github.com/git-cola/git-cola/issues/356
643 * The `git.svg` icon was renamed to `git-cola.svg`, and `git cola` was taught
644 to prefer icons from the desktop theme when available.
650 Usability, bells and whistles
651 -----------------------------
652 * New hotkey: `Ctrl+Shift+M` merges branches.
654 * New hotkey: `Ctrl+R` refreshes the DAG viewer.
656 https://github.com/git-cola/git-cola/issues/347
660 * We now use `git config` to parse the list of remotes
661 instead of parsing the output of `git remote`, which
662 is a Git porcelain and should not be used by scripts.
664 * Avoid "C++ object has been deleted" errors from PyQt4.
666 https://github.com/git-cola/git-cola/issues/346
670 * The `make install` target now uses `install` instead of `cp`.
676 Usability, bells and whistles
677 -----------------------------
678 * Updated Brazillian Portuguese translation.
680 * The status and browse widgets now allow drag-and-drop into
681 external applications.
683 https://github.com/git-cola/git-cola/issues/335
685 * We now show a progress bar when cloning repositories.
687 https://github.com/git-cola/git-cola/issues/312
689 * The bookmarks widget was simplified to not need a
692 https://github.com/git-cola/git-cola/issues/289
694 * Updated Traditional Chinese translation.
696 * We now display a warning when trying to rebase with uncommitted changes.
698 https://github.com/git-cola/git-cola/issues/338
700 * The status widget learned to filter paths.
701 `Ctrl+Shift+S` toggles the filter widget.
703 https://github.com/git-cola/git-cola/issues/337
705 https://github.com/git-cola/git-cola/pull/339
707 * The status widget learned to move files to the trash
708 when the `send2trash <https://github.com/hsoft/send2trash>`_
711 https://github.com/git-cola/git-cola/issues/341
713 * "Recent repositories" is now a dedicated widget.
715 https://github.com/git-cola/git-cola/issues/342
717 * New Spanish translation thanks to Pilar Molina Lopez.
719 https://github.com/git-cola/git-cola/pull/344
723 * Newly added remotes are now properly seen by the fetch/push/pull dialogs.
725 https://github.com/git-cola/git-cola/issues/343
731 Usability, bells and whistles
732 -----------------------------
733 * New Brazillian Portuguese translation thanks to Vitor Lobo.
735 * New Indonesian translation thanks to Samsul Ma'arif.
737 * Updated Simplified Chinese translation thanks to Zhang Han.
739 * `Ctrl+Backspace` is now a hotkey for "delete untracked files" in
742 * Fetch/Push/Pull dialogs now use the configured remote of the current
745 https://github.com/git-cola/git-cola/pull/324
749 * We now use `os.getcwd()` on Python3.
751 https://github.com/git-cola/git-cola/pull/316
753 https://github.com/git-cola/git-cola/pull/326
755 * The `Ctrl+P` hotkey was overloaded to both "push" and "cherry-pick",
756 so "cherry-pick" was moved to `Ctrl+Shift+C`.
758 * Custom GUI tools with mixed-case names are now properly supported.
760 * "Diff Region" is now referred to as "Diff Hunk" for consistency
761 with common terminology from diff/patch tools.
763 https://github.com/git-cola/git-cola/issues/328
765 * git-cola's test suite is now portable to MS Windows.
767 https://github.com/git-cola/git-cola/pull/332
773 Usability, bells and whistles
774 -----------------------------
775 * We now handle the case when inotify `add_watch()` fails
776 and display instructions on how to increase the number of watches.
778 https://github.com/git-cola/git-cola/issues/263
780 * New and improved zh_TW localization thanks to V字龍(Vdragon).
782 https://github.com/git-cola/git-cola/pull/265
784 https://github.com/git-cola/git-cola/pull/267
786 https://github.com/git-cola/git-cola/pull/268
788 https://github.com/git-cola/git-cola/issues/269
790 https://github.com/git-cola/git-cola/pull/270
792 https://github.com/git-cola/git-cola/pull/271
794 https://github.com/git-cola/git-cola/pull/272
796 * New hotkeys: `Ctrl+F` for fetch, `Ctrl+P` for push,
797 and `Ctrl+Shift+P` for pull.
799 * The bookmarks widget's context menu actions were made clearer.
801 https://github.com/git-cola/git-cola/issues/281
803 * The term "Staging Area" is used consistently in the UI
804 to allow for better localization.
806 https://github.com/git-cola/git-cola/issues/283
808 * The "Section" term is now referred to as "Diff Region"
811 https://github.com/git-cola/git-cola/issues/297
813 * The localization documentation related to the LANGUAGE
814 environment variable was improved.
816 https://github.com/git-cola/git-cola/pull/293
818 * The "Actions" panel now contains tooltips for each button
819 in case the button labels gets truncated by Qt.
821 https://github.com/git-cola/git-cola/issues/292
823 * Custom `git config`-defined actions can now be run in the
824 background by setting `guitool.<name>.background` to `true`.
828 * We now use bold fonts instead of SmallCaps to avoid
829 artifacts on several configurations.
831 * We now pickup `user.email`, `cola.tabwidth`, and similar settings
832 when defined in /etc/gitconfig.
834 https://github.com/git-cola/git-cola/issues/259
836 * Better support for unicode paths when using inotify.
838 https://bugzilla.redhat.com/show_bug.cgi?id=1104181
840 * Unicode fixes for non-ascii locales.
842 https://github.com/git-cola/git-cola/issues/266
844 https://github.com/git-cola/git-cola/issues/273
846 https://github.com/git-cola/git-cola/issues/276
848 https://github.com/git-cola/git-cola/issues/282
850 https://github.com/git-cola/git-cola/issues/298
852 https://github.com/git-cola/git-cola/issues/302
854 https://github.com/git-cola/git-cola/issues/303
856 https://github.com/git-cola/git-cola/issues/305
858 * Viewing history from the file browser was fixed for Python3.
860 https://github.com/git-cola/git-cola/issues/274
862 * setup.py was fixed to install the `*.rst` documentation.
864 https://github.com/git-cola/git-cola/issues/279
866 * Patch export was fixed for Python3.
868 https://github.com/git-cola/git-cola/issues/290
870 * Fixed adding a bookmark with trailing slashes.
872 https://github.com/git-cola/git-cola/pull/295
874 * The default `git dag` layout is now setup so that its widgets
875 can be freely resized on Linux.
877 https://github.com/git-cola/git-cola/issues/299
879 * Invalid tag names are now reported when creating tags.
881 https://github.com/git-cola/git-cola/pull/296
887 Usability, bells and whistles
888 -----------------------------
889 * `git cola` no longer prompts after successfully creating a new branch.
891 https://github.com/git-cola/git-cola/pull/251
893 * Hitting enter on simple dialogs now accepts them.
895 https://github.com/git-cola/git-cola/pull/255
899 * `git dag` no longer relies on `sys.maxint`, which is
900 not available in Python3.
902 https://github.com/git-cola/git-cola/issues/249
904 * Python3-related fixes.
906 https://github.com/git-cola/git-cola/pull/254
908 * Python3-on-Windows-related fixes.
910 https://github.com/git-cola/git-cola/pull/250
912 https://github.com/git-cola/git-cola/pull/252
914 https://github.com/git-cola/git-cola/pull/253
916 * Switching repositories using the bookmarks widget was not
917 refreshing the inotify watcher.
919 https://github.com/git-cola/git-cola/pull/256
921 * Special commit messages trailers (e.g. "Acked-by:") are now special-cased to
922 fix word wrapping lines that start with "foo:".
924 https://github.com/git-cola/git-cola/issues/257
926 * `git dag` sometimes left behind selection artifacts.
927 We now refresh the view to avoid them.
929 https://github.com/git-cola/git-cola/issues/204
935 Usability, bells and whistles
936 -----------------------------
937 * Better inotify support for file creation and deletion.
939 https://github.com/git-cola/git-cola/issues/240
941 * `git cola` now supports the X11 Session Management Protocol
942 and remembers its state across logout/reboot.
944 https://github.com/git-cola/git-cola/issues/164
946 * `git cola` has a new icon.
948 https://github.com/git-cola/git-cola/issues/190
952 * Building the documentation no longer requires `asciidoc`.
953 We now use `Sphinx <http://sphinx-doc.org/>`_ for building
954 html documentation and man pages.
958 * Reworked the git-dag gravatar icon code to avoid a unicode
961 * Commit message line-wrapping was made to better match the GUI editor.
963 https://github.com/git-cola/git-cola/issues/242
965 * Better support for Python3 on Windows
967 https://github.com/git-cola/git-cola/issues/246
971 * git-cola no longer depends on Asciidoc for building its documentation
972 and man-pages. We now depend on [Sphinx](http://sphinx-doc.org/) only.
978 Usability, bells and whistles
979 -----------------------------
980 * Some context menu actions are now hidden when selected
983 https://github.com/git-cola/git-cola/issues/238
987 * The build-git-cola.sh contrib script was improved.
989 https://github.com/git-cola/git-cola/pull/235
991 * Non-ascii worktrees work properly again.
993 https://github.com/git-cola/git-cola/issues/234
995 * The browser now guards itself against missing files.
997 https://bugzilla.redhat.com/show_bug.cgi?id=1071378
999 * Saving widget state now works under Python3.
1001 https://github.com/git-cola/git-cola/pull/236
1009 * git-cola now runs on Python 3 thanks to Virgil Dupras.
1011 https://github.com/git-cola/git-cola/pull/233
1013 * Python 2.6, 2.7, and 3.2+ are now supported.
1014 Python 2.5 is no longer supported.
1018 * i18n test fixes thanks to Virgil Dupras.
1020 https://github.com/git-cola/git-cola/pull/231
1022 * git-cola.app build fixes thanks to Maicon D. Filippsen.
1024 https://github.com/git-cola/git-cola/pull/230
1026 * Lots of pylint improvements thanks to Alex Chernetz.
1028 https://github.com/git-cola/git-cola/pull/229
1034 Usability, bells and whistles
1035 -----------------------------
1036 * The new `Bookmarks` tool makes it really easy to switch between repositories.
1038 * There is now a dedicated dialog for applying patches.
1039 See the ``File -> Apply Patches`` menu item.
1041 https://github.com/git-cola/git-cola/issues/215
1043 * A new `git cola am` sub-command was added for applying patches.
1047 * Fixed a typo that caused inotify events to be silently ignored.
1049 * Fixed the sys.path setup for Mac OS X (Homebrew).
1051 https://github.com/git-cola/git-cola/issues/221
1053 * Lots of pylint fixes thanks to Alex Chernetz.
1059 Usability, bells and whistles
1060 -----------------------------
1061 * `git cola --amend` now starts the editor in `amend` mode.
1063 https://github.com/git-cola/git-cola/issues/187
1065 * Multiple lines of text can now be pasted into the `summary` field.
1066 All text beyond the first newline will be automatically moved to the
1067 `extended description` field.
1069 https://github.com/git-cola/git-cola/issues/212
1073 * Stray whitespace in `.git` files is now ignored.
1075 https://github.com/git-cola/git-cola/issues/213
1077 * Fix "known incorrect sRGB profile" in `staged-item.png`.
1079 http://comments.gmane.org/gmane.linux.gentoo.devel/85066
1087 * Fix a traceback when `git push` fails.
1089 https://bugzilla.redhat.com/show_bug.cgi?id=1034778
1093 * Most of the git-cola sub-packages have been removed.
1094 The only remaining packages are `cola`, `cola.models`,
1097 * The translation file for Simplified Chinese was renamed
1100 https://github.com/git-cola/git-cola/issues/209
1108 * `git cola version --brief` now prints the brief version number.
1112 * Resurrected the "make dist" target, for those that prefer to create
1115 * Fixed the typo that broke the preferences dialog.
1121 Usability, bells and whistles
1122 -----------------------------
1123 * We now ship a full-featured interactive `git rebase` editor.
1124 The rebase todo file is edited using the `git xbase` script which
1125 is provided at `$prefix/share/git-cola/bin/git-xbase`.
1126 This script can be used standalone by setting the `$GIT_SEQUENCE_EDITOR`
1127 before running `git rebase --interactive`.
1129 https://github.com/git-cola/git-cola/issues/1
1131 * Fixup commit messages can now be loaded from the commit message editor.
1133 * Tool widgets can be locked in place by using the "Tools/Lock Layout"
1136 https://github.com/git-cola/git-cola/issues/202
1138 * You can now push to several remotes simultaneously by selecting
1139 multiple remotes in the "Push" dialog.
1141 https://github.com/git-cola/git-cola/issues/148
1143 * The `grep` tool learned to search using three different modes:
1144 basic regular expressions (default), extended regular expressions,
1149 * `git cola` now depends on the `argparse` Python module.
1150 This module is part of the stdlib in Python 2.7 and must
1151 be installed separately when using Python 2.6 and below.
1155 * Support unicode in the output from `fetch`, `push`, and `pull`.
1161 Usability, bells and whistles
1162 -----------------------------
1163 * We now detect when the editor or history browser are misconfigured.
1165 https://github.com/git-cola/git-cola/issues/197
1167 https://bugzilla.redhat.com/show_bug.cgi?id=886826
1169 * Display of untracked files can be disabled from the Preferences dialog
1170 or by setting the `gui.displayuntracked` configuration variable to `false`.
1172 http://thread.gmane.org/gmane.comp.version-control.git/232683
1176 * Unicode stash names are now supported
1178 https://github.com/git-cola/git-cola/issues/198
1180 * The diffs produced when reverting workspace changes were made more robust.
1185 =======================
1186 Usability, bells and whistles
1187 -----------------------------
1188 * Brand new German translation thanks to Sven Claussner.
1190 * The "File" menu now provides a "New Repository..." menu action.
1192 * `git dag` now uses a dock-widget interface so that its widgets can
1193 be layed-out and arranged. Customizations are saved and restored
1194 the next time `git dag` is launched.
1196 * `git dag` now has a "Zoom Best Fit" button next alongside the
1197 "Zoom In" and "Zoom Out" buttons.
1199 * `Ctrl+L` now focuses the "Search" field in the `git dag` tool.
1201 * Right-clicking in the "diff" viewer now updates the cursor position
1202 before performing actions, which makes it much easier to click around
1203 and selectively stage sections. Previously, the current cursor position
1204 was used which meant that it required two clicks (left-click to update
1205 the position followed by right-click to get the context menu) for the
1206 desired section to be used. This is now a single right-click operation.
1208 * The `Ctrl+D` "Launch Diff Tool" action learned to automatically choose
1209 between `git difftool` and `git mergetool`. If the file is unmerged then
1210 we automatically launch `git mergetool` on the path, otherwise we use
1211 `git difftool`. We do this because `git difftool` is not intended to
1212 be used on unmerged paths. Automatically using `git mergetool` when
1213 appropriate is the most intuitive and muscle-memory-friendly thing to do.
1215 * You can now right-click on folders in your standard file browser
1216 and choose "Open With -> Git Cola" (Linux-only).
1220 * Python 2.6 on Mac OS X Snow Leopard does not provide a namedtuple
1221 at `sys.version_info`. We now avoid using that variable for better
1224 * We now read the user's Git configuration from `~/.config/git/config`
1225 if that file is available, otherwise we use the traditional `~/.gitconfig`
1226 path, just like Git itself.
1228 * Some edge cases were fixed when applying partial/selected diffs.
1230 * The diff viewer is now properly cleared when refreshing.
1232 https://github.com/git-cola/git-cola/issues/194
1238 Usability, bells and whistles
1239 -----------------------------
1240 * The diff viewer now has an "Options" menu which can be
1241 used to set "git diff" options. This can be used to
1242 ignore whitespace changes or to show a change with its
1243 surrounding function as context.
1245 https://github.com/git-cola/git-cola/issues/150
1247 * `git cola` now remembers your commit message and will restore it
1248 when `git cola` is restarted.
1250 https://github.com/git-cola/git-cola/pull/175
1252 * `Ctrl+M` can now be used to toggle the "Amend last commit"
1253 checkbox in the commit message editor.
1255 https://github.com/git-cola/git-cola/pull/161
1257 * Deleting remote branches can now be done from the "Branch" menu.
1259 https://github.com/git-cola/git-cola/issues/152
1261 * The commit message editor now has a built-in spell checker.
1265 * We now avoid invoking external diffs when showing diffstats.
1267 https://github.com/git-cola/git-cola/pull/163
1269 * The `Status` tool learned to reselect files when refreshing.
1271 https://github.com/git-cola/git-cola/issues/165
1273 * `git cola` now remembers whether it has been maximized and will restore the
1274 maximized state when `git cola` is restarted.
1276 https://github.com/git-cola/git-cola/issues/172
1278 * Performance is now vastly improved when staging hundreds or
1281 * `git cola` was not correctly saving repo-specific configuration.
1283 https://github.com/git-cola/git-cola/issues/174
1285 * Fix a UnicodeDecode in sphinxtogithub when building from source.
1291 Usability, bells and whistles
1292 -----------------------------
1293 * We now automatically remove missing repositories from the
1294 "Select Repository" dialog.
1296 https://github.com/git-cola/git-cola/issues/145
1298 * A new `git cola diff` sub-command was added for diffing changed files.
1302 * The inotify auto-refresh feature makes it difficult to select text in
1303 the "diff" editor when files are being continually modified by another
1304 process. The auto-refresh causes it to lose the currently selected text,
1305 which is not wanted. We now avoid this problem by saving and restoring
1306 the selection when refreshing the editor.
1308 https://github.com/git-cola/git-cola/issues/155
1310 * More strings have been marked for l10n.
1312 https://github.com/git-cola/git-cola/issues/157
1314 * Fixed the Alt+D Diffstat shortcut.
1316 https://github.com/git-cola/git-cola/issues/159
1320 * Better error handling when cloning repositories.
1322 We were not handling the case where a git URL has
1323 no basename, e.g. `https://git.example.com/`.
1324 `git cola` originally rejected these URLs instead of
1325 allowing users to clone them. It now allows these URLs
1326 when they point to valid git repositories.
1328 Additionally, `git cola` learned to echo the errors
1329 reported by `git clone` when it fails.
1331 https://github.com/git-cola/git-cola/issues/156
1337 Usability, bells and whistles
1338 -----------------------------
1339 * `git dag` got a big visual upgrade.
1341 * `Ctrl+G` now launches the "Grep" tool.
1343 * `Ctrl+D` launches difftool and `Ctrl+E` launches your editor
1344 when in the diff panel.
1346 * git-cola can now be told to use an alternative language.
1347 For example, if the native language is German and we want git-cola to
1348 use English then we can create a `~/.config/git-cola/language` file with
1349 "en" as its contents:
1351 $ echo en >~/.config/git-cola/language
1353 https://github.com/git-cola/git-cola/issues/140
1355 * A new `git cola merge` sub-command was added for merging branches.
1357 * Less blocking in the main UI
1361 * Autocomplete issues on KDE
1363 https://github.com/git-cola/git-cola/issues/144
1365 * The "recently opened repositories" startup dialog did not
1366 display itself in the absence of bookmarks.
1368 https://github.com/git-cola/git-cola/issues/139
1374 Usability, bells and whistles
1375 -----------------------------
1376 * `git cola` learned to honor `.gitattributes` when showing and
1377 interactively applying diffs. This makes it possible to store
1378 files in git using a non-utf-8 encoding and `git cola` will
1379 properly accept them. This must be enabled by settings
1380 `cola.fileattributes` to true, as it incurs a small performance
1383 https://github.com/git-cola/git-cola/issues/96
1385 * `git cola` now wraps commit messages at 72 columns automatically.
1386 This is configurable using the `cola.linebreak` variable to enable/disable
1387 the feature, and `cola.textwidth` to configure the limit.
1389 https://github.com/git-cola/git-cola/issues/133
1391 * A new "Open Recent" sub-menu was added to the "File" menu.
1392 This makes it easy to open a recently-edited repository.
1394 https://github.com/git-cola/git-cola/issues/135
1396 * We now show a preview for untracked files when they are clicked
1397 using the `Status` tool.
1398 * A new "Open Using Default Application" action was added to the
1399 `Status` tool. It is activated using either `Spacebar` or through
1400 the context menu. This action uses `xdg-open` on Linux and
1402 * A new "Open Parent Directory" action was added to the `Status` tool.
1403 It is activated using either `Shift+Spacebar` or through the
1405 * `git dag` learned to honor the `log.date` git configuration variable.
1406 This makes the date display follow whatever format the user has
1408 * A new `git cola config` sub-command was added for quickly
1409 tweaking `git cola`'s git configuration settings.
1410 * Some small usability tweaks -- some user confirmation prompts
1411 were defaulting to "Cancel" when they should have been defaulting
1412 to the affirmative option instead.
1416 * Properly handle arbitrarily-named branches.
1417 * We went back to launching `git mergetool` using an xterm.
1418 The reason is that there are a couple of places where `git mergetool`
1419 requires a terminal for user interaction not covered by `--no-prompt`.
1420 * We now properly handle an edge case when applying short diffs at
1421 the start of a file.
1427 Usability, bells and whistles
1428 -----------------------------
1429 * New and improved `grep` mode lets you instantly find and edit files.
1430 * New `git cola grep` standalone mode.
1431 * Support for passing arguments to the configured editors, e.g. `gvim -p`
1432 This makes it possible to select multiple files in the status
1433 window and use `Ctrl-e` to edit them all at once.
1434 * Remote operations now prompt on errors only.
1435 * The `Tab` key now jumps to the extended description when editing the summary.
1436 * More shortcut key labels and misc. UX improvements.
1440 * Selecting an item no longer copies its filename to the copy/paste buffer.
1441 `Ctrl-c` or the "Copy" context-menu action can be used instead.
1442 * The repository monitoring feature on Windows learned to ignore
1443 changes within the ".git" directory. Thanks to Andreas Sommer.
1445 https://github.com/git-cola/git-cola/issues/120
1451 Usability, bells and whistles
1452 -----------------------------
1453 * `git dag` learned to color-code branchy edges.
1454 The edge colors change when a new branch is detected,
1455 which makes the history much easier to follow.
1456 A huge thanks to Uri Okrent for making it happen.
1458 * New GUI for editing remote repositories.
1460 * New `git cola archive` and `git cola remote` sub-commands.
1462 * `git cola browser` learned an 'Untrack' command.
1464 * The diff editor learned to staged/unstaged while amending.
1466 * The status tool can now scroll horizontally.
1468 * New git repositories can be created by clicking 'New' on the
1469 `git cola --prompt` startup screen.
1475 Usability, bells and whistles
1476 -----------------------------
1477 * Auto-completion was added to more tools.
1479 * `git dag` is easier to use on smaller displays -- the author
1480 field elides its text which allows for a more compact display.
1482 * Selected commits in `git dag` were made more prominent and
1485 * 'Create Branch' learned to fetch remote branches and uses a
1486 background thread to do so.
1488 * User-configured GUI tools are listed alphabetically in the 'Actions' menu.
1490 * The 'Pull' dialog remembers the value of the 'Rebase' checkbox
1491 between invocations.
1499 * Detect Homebrew so that OS X users do not need to set PYTHONPATH.
1501 * `git dag` can export patches again.
1507 Usability, bells and whistles
1508 -----------------------------
1509 * The 'Classic' tool was renamed to 'Browser' and learned to
1510 limit history to the current branch.
1512 * `git dag` learned about gravatar and uses it to show images
1515 * `git dag` learned to use OpenGL for rendering resulting in
1516 much faster rendering.
1518 * More dialogs learned vim-style keyboard shortcuts.
1520 * The commit message editor learned better arrow key navigation.
1526 Usability, bells and whistles
1527 -----------------------------
1528 * `git cola` learned a few new sub commands:
1536 * `Return` in the summary field jumps to the extended description.
1538 * `Ctrl+Return` is now a shortcut for 'Commit'.
1540 * Better French translation for 'Sign-off'.
1542 * The 'Search' widget now has a much simpler and streamlined
1545 * vim-style `h,j,k,l` navigation shortcuts were added to the DAG widget.
1547 * `git dag` no longer prompts for files when diffing commits if the
1548 text field contains paths.
1550 * General user interface and performance improvements.
1554 * The diff viewer no longer changes font size when holding `Control`
1555 while scrolling with the mouse wheel.
1557 * Files with a typechange (e.g. symlinks that become files, etc.)
1558 are now correctly identified as being modified.
1562 * The `cola.controllers` and `cola.views` packages were removed.
1568 Usability, bells and whistles
1569 -----------------------------
1570 * `git cola` can now launch sub commands, e.g.:
1581 * `git dag` is more responsive when gathering auto-completions.
1583 * Keyboard shortcuts are displayed when the '?' key is pressed.
1585 * Various keyboard shortcuts were added for improved usability.
1587 * The status widget now lists unmerged files before modified files.
1589 * vim-style `h,j,k,l` navigation shortcuts were added to the status widget.
1591 * A 'Recently Modified Files...' tool was added.
1593 * Tools can now be hidden with `Alt + #` (where `#` is a keyboard number)
1594 and focused with `Alt + Shift + #`.
1596 * The syntax highlighting colors for diffs was made less intrusive.
1598 * The commit message editor was redesigned to have a more compact
1599 and keyboard-convenient user interface.
1601 * Keyboard shortcuts for adding a Signed-off-by (`Ctrl + i`)
1602 and creating a commit (`Ctrl + m`) were added.
1604 * The status widget was adjusted to use less screen real-estate.
1608 * Avoid updating the index when responding to inotify events.
1609 This avoids interfering with operations such as `git rebase --interactive`.
1611 https://github.com/git-cola/git-cola/issues/99
1615 * Create `git-dag.pyw` in the win32 installer.
1617 * win32 shortcuts now contain explicit calls to `pythonw.exe` instead of
1618 calling the `.pyw` file directly.
1622 * The 'Apply Changes from Branch...' feature was removed.
1623 `git dag`'s 'Grab File...' feature used alongside the index/worktree editor
1624 is a simpler alternative.
1632 * Further enhanced the staging/unstaging behavior in the status widget.
1634 https://github.com/git-cola/git-cola/issues/97
1636 * Unmerged files are no longer listed as modified.
1640 The `cola-$version` tarballs on github were originally setup to
1641 have the same contents as the old tarballs hosted on tuxfamily.
1642 The `make dist` target was changed to write files to a
1643 `git-cola-$version` subdirectory and tarball.
1645 This makes the filenames consistent for the source tarball,
1646 the darwin .app tarball, and the win32 .exe installer.
1652 Usability, bells and whistles
1653 -----------------------------
1654 * Refined the staging/unstaging behavior for code reviews.
1656 https://github.com/git-cola/git-cola/issues/97
1658 * Added more styling and icons to menus and buttons.
1660 * Adjusted some terminology to more closely match the git CLI.
1664 * Boolean `git config` settings with no value are now supported
1665 (these are not created by git these days but exist in legacy repositories).
1667 * Unicode branches and tags are supported in the "branch diff" tool.
1669 * Guard against low-memory conditions and more interrupted system calls.
1673 * Added desktop launchers for git-cola.desktop and git-dag.desktop.
1674 This replaces the old cola.desktop, so some adjustments to RPM .spec
1675 and debian/ files will be needed.
1677 * Fixed the darwin app-tarball Makefile target to create relative paths.
1681 * The `--style` option was removed. `git cola` follows the system theme
1682 so there's no need for this option these days.
1688 Usability, bells and whistles
1689 -----------------------------
1690 * Export a patch series from `git dag` into a `patches/` directory.
1692 * `git dag` learned to diff commits, slice history along paths, etc.
1694 * Added instant-preview to the `git stash` widget.
1696 * A simpler preferences editor is used to edit `git config` values.
1698 https://github.com/git-cola/git-cola/issues/90
1700 https://github.com/git-cola/git-cola/issues/89
1702 * Previous commit messages can be re-loaded from the message editor.
1704 https://github.com/git-cola/git-cola/issues/33
1708 * Display commits with no file changes.
1710 https://github.com/git-cola/git-cola/issues/82
1712 * Improved the diff editor's copy/paste behavior
1714 https://github.com/git-cola/git-cola/issues/90
1718 * Bumped version number to ceil(minimum git version).
1719 `git cola` now requires `git` >= 1.6.3.
1721 * Simplified git-cola's versioning when building from tarballs
1722 outside of git. We no longer check for a 'version' file at
1723 the root of the repository. We instead keep a default version
1724 in `cola/version.py` and use it when `git cola`'s `.git` repository
1731 Usability, bells and whistles
1732 -----------------------------
1733 * inotify is much snappier and available on Windows
1734 thanks to Karl Bielefeldt.
1736 * New right-click command to add untracked files to .gitignore
1737 thanks to Audrius Karabanovas.
1739 * Stash, fetch, push, and pull usability improvements
1741 * General usability improvements
1743 * stderr is logged when applying partial diffs.
1747 * Files can be unstaged when amending.
1749 https://github.com/git-cola/git-cola/issues/82
1751 * Show the configured remote.$remote.pushurl in the GUI
1753 https://github.com/git-cola/git-cola/issues/83
1755 * Removed usage of the "user" module.
1757 https://github.com/git-cola/git-cola/issues/86
1759 * Avoids an extra `git update-index` call during startup.
1766 Usability, bells and whistles
1767 -----------------------------
1768 * We now provide better feedback when `git push` fails.
1770 https://github.com/git-cola/git-cola/issues/69
1772 * The Fetch, Push, and Pull dialogs now give better feedback
1773 when interacting with remotes. The dialogs are modal and
1774 a progress dialog is used.
1778 * More unicode fixes, again. It is now possible to have
1779 unicode branch names, repository paths, home directories, etc.
1780 This continued the work initiated by Redhat's bugzilla #694806.
1782 https://bugzilla.redhat.com/show_bug.cgi?id=694806
1788 Usability, bells and whistles
1789 -----------------------------
1790 * The `git cola` desktop launchers now prompt for a repo
1791 by default. This is done by using the new `--prompt`
1792 flag which tells `git cola` to ignore any git repositories
1793 in the current directory and prompt for one instead.
1797 * More Unicode fixes for repositories and home directories with
1798 embedded unicode characters. Thanks to Christian Jann for
1799 patience and helpful bug reports.
1801 * Fix the 'Clone' button in the startup dialog.
1807 Usability, bells and whistles
1808 -----------------------------
1809 * Faster startup time! `git cola` now offloads initialization
1810 to a background thread so that the GUI appears almost instantly.
1812 * Specialized diff options for p4merge, vimdiff, araxis, emerge,
1813 and ecmerge in difftool (backported from git.git).
1817 * Fix launching commands in the background on Windows
1818 (e.g. when launching `git difftool`).
1820 * Fix unicode errors when home or repository directories contain
1823 https://github.com/git-cola/git-cola/issues/74
1825 Redhat's bugzilla #694806
1827 https://bugzilla.redhat.com/show_bug.cgi?id=694806
1833 Usability, bells and whistles
1834 -----------------------------
1835 * The `cola classic` tool can be now configured to be dockable.
1837 https://github.com/git-cola/git-cola/issues/56
1839 * The `cola classic` tool now uses visual sigils to indicate a file's status.
1840 The idea and icons were provided by Uri Okrent.
1842 * Include the 'Rescan' button in the 'Actions' widget regardless
1843 of whether inotify is installed.
1847 * Fix installation of translations per Fedora
1848 This incorporates Fedora's fix for the translations path
1849 which originally appeared in cola-1.4.3-translations.patch.
1851 * Mac OS X git-cola developers can now generate git-cola.app
1852 application bundles using 'make app-bundle'.
1856 * Fixed a stacktrace when trying to use "Get Commit Message Template"
1857 with an unconfigured "commit.template" git config variable.
1859 https://github.com/git-cola/git-cola/issues/72
1861 This bug originated in Redhat's bugzilla #675721 via a Fedora user.
1863 https://bugzilla.redhat.com/show_bug.cgi?id=675721
1865 * Properly raise the main window on Mac OS X.
1867 * Properly handle staging a huge numbers of files at once.
1869 * Speed up 'git config' usage by fixing cola's caching proxy.
1871 * Guard against damaged ~/.cola files.
1877 Usability, bells and whistles
1878 -----------------------------
1879 * `git dag` now has a separate display area
1880 for displaying commit metadata. This area will soon
1881 grow additional functionality such as cherry-picking,
1886 * Fixed tests from a previous refactoring.
1888 * Guard against 'diff.external' configuration by always
1889 calling 'git diff' with the '--no-ext-diff' option.
1891 https://github.com/git-cola/git-cola/issues/67
1893 * Respect 'gui.diffcontext' so that cola's diff display
1894 shows the correct number of context lines.
1896 * Raise the GUI so that it is in the foreground on OS X.
1900 * We now allow distutils to rewrite cola's shebang line.
1901 This allows us to run on systems where "which python"
1902 is Python3k. This is exposed by setting the `PYTHON`
1903 Makefile variable to the location of python2.x.
1905 * git-cola.app is now a tiny download because it no longer
1906 contains Qt and PyQt. These libraries are provided as a
1909 http://code.google.com/p/git-cola/downloads/list
1915 Usability, bells and whistles
1916 -----------------------------
1917 * Clicking on paths in the status widget copies them into the
1918 copy/paste buffer for easy middle-clicking into terminals.
1920 * `Ctrl+C` in diff viewer copies the selected diff to the clipboard.
1924 * Fixed the disappearing actions buttons on PyQt 4.7.4
1925 as reported by Arch and Ubuntu 10.10.
1927 https://github.com/git-cola/git-cola/issues/62
1929 * Fixed mouse interaction with the status widget where some
1930 items could not be de-selected.
1934 * Removed hard-coded reference to lib/ when calculating Python's
1935 site-packages directory.
1941 Usability, bells and whistles
1942 -----------------------------
1943 * Removed "single-click to (un)stage" in the status view.
1944 This is a usability improvement since we no longer perform
1945 different actions depending on where a row is clicked.
1947 * Added ability to create unsigned, annotated tags.
1951 * Updated documentation to use `cola.git` instead of `cola.gitcmd`.
1957 Usability, bells and whistles
1958 -----------------------------
1959 * Allow un/staging by right-clicking top-level items
1961 https://github.com/git-cola/git-cola/issues/57
1963 * Running 'commit' with no staged changes prompts to allow
1966 https://github.com/git-cola/git-cola/issues/55
1968 * Fetch, Push, and Pull are now available via the menus
1970 https://github.com/git-cola/git-cola/issues/58
1974 * Simplified the actions widget to work around a regression
1977 https://github.com/git-cola/git-cola/issues/62
1983 Usability, bells and whistles
1984 -----------------------------
1985 * `git dag` interaction was made faster.
1989 * Added '...' indicators to the buttons for
1990 'Fetch...', 'Push...', 'Pull...', and 'Stash...'.
1992 https://github.com/git-cola/git-cola/issues/51
1994 * Fixed a hang-on-exit bug in the cola-provided
1995 'ssh-askpass' implementation.
2001 Usability, bells and whistles
2002 -----------------------------
2003 * Staging and unstaging is faster.
2005 https://github.com/git-cola/git-cola/issues/48
2007 * `git dag` reads history in a background thread.
2011 * Added :data:`cola.compat.hashlib` for `Python 2.4` compatibility
2012 * Improved `PyQt 4.1.x` compatibility.
2016 * Configured menu actions use ``sh -c`` for Windows portability.
2023 Usability, bells and whistles
2024 -----------------------------
2025 * Added support for the configurable ``guitool.<tool>.*``
2026 actions as described in ``git-config(1)``.
2028 https://github.com/git-cola/git-cola/issues/44
2030 http://schacon.github.com/git/git-config.html
2032 This makes it possible to add new actions to `git cola`
2033 by simply editing ``~/.gitconfig``. This implements the
2034 same guitool support as `git gui`.
2035 * Introduced a stat cache to speed up `git config` and
2036 repository status checks.
2037 * Added Alt-key shortcuts to the main `git cola` interface.
2038 * The `Actions` dock widget switches between a horizontal
2039 and vertical layout when resized.
2040 * We now use ``git diff --submodule`` for submodules
2041 (used when git >= 1.6.6).
2042 * The context menu for modified submodules includes an option
2043 to launch `git cola`.
2045 https://github.com/git-cola/git-cola/issues/17
2047 * Prefer ``$VISUAL`` over ``$EDITOR`` when both are defined.
2048 These are used to set a default editor in lieu of `core.editor`
2050 * Force the editor to be ``gvim`` when we see ``vim``.
2051 This prevents us from launching an editor in the (typically
2052 unattached) parent terminal and creating zombie editors
2053 that cannot be easily killed.
2054 * Selections are remembered and restored across updates.
2055 This makes the `partial-staging` workflow easier since the
2056 diff view will show the updated diff after staging.
2057 * Show the path to the current repository in a tooltip
2058 over the commit message editor.
2060 https://github.com/git-cola/git-cola/issues/45
2062 * Log internal ``git`` commands when ``GIT_COLA_TRACE`` is defined.
2064 https://github.com/git-cola/git-cola/issues/39
2068 * Improved backwards compatibility for Python 2.4.
2069 * `Review mode` can now review the current branch; it no longer
2070 requires you to checkout the branch into which the reviewed
2071 branch will be merged.
2072 * Guard against `color.ui = always` configuration when using
2073 `git log` by passing ``--no-color``.
2074 * ``yes`` and ``no`` are now supported as valid booleans
2075 by the `git config` parser.
2076 * Better defaults are used for `fetch`, `push`, and `pull`..
2078 https://github.com/git-cola/git-cola/issues/43
2082 * Removed colon (`:`) from the applilcation name on Windows
2084 https://github.com/git-cola/git-cola/issues/41
2086 * Fixed bugs with the Windows installer
2088 https://github.com/git-cola/git-cola/issues/40
2090 * Added a more standard i18n infrastructure. The install
2091 tree now has the common ``share/locale/$lang/LC_MESSAGES/git-cola.mo``
2092 layout in use by several projects.
2094 * Started trying to accommodate Mac OSX 10.6 (Snow Leopard)
2095 in the ``darwin/`` build scripts but our tester is yet to
2096 report success building a `.app` bundle.
2098 * Replaced use of ``perl`` in Sphinx/documentation Makefile
2099 with more-portable ``sed`` constructs. Thanks to
2100 Stefan Naewe for discovering the portability issues and
2101 providing msysgit-friendly patches.
2107 Usability, bells and whistles
2108 -----------------------------
2109 * It is now possible to checkout from the index as well
2110 as from `HEAD`. This corresponds to the
2111 `Removed Unstaged Changes` action in the `Repository Status` tool.
2112 * The `remote` dialogs (fetch, push, pull) are now slightly
2114 * Bookmarks can be selected when `git cola` is run outside of a git repository.
2115 * Added more user documentation. We now include many links to
2116 external git resources.
2117 * Added `git dag` to the available tools.
2118 `git dag` is a node-based DAG history browser.
2119 It doesn't do much yet, but it's been merged so that we can start
2120 building and improving upon it.
2124 * Fixed a missing ``import`` when showing `right-click` actions
2125 for unmerged files in the `Repository Status` tool.
2126 * ``git update-index --refresh`` is no longer run every time
2127 ``git cola version`` is run.
2128 * Don't try to watch non-existent directories when using `inotify`.
2129 * Use ``git rev-parse --symbolic-full-name`` plumbing to find
2130 the name of the current branch.
2134 * The ``Makefile`` will now conditionally include a ``config.mak``
2135 file located at the root of the project. This allows for user
2136 customizations such as changes to the `prefix` variable
2137 to be stored in a file so that custom settings do not need to
2138 be specified every time on the command-line.
2139 * The build scripts no longer require a ``.git`` directory to
2140 generate the ``builtin_version.py`` module. The release tarballs
2141 now include a ``version`` file at the root of the project which
2142 is used in lieu of having the git repository available.
2143 This allows for ``make clean && make`` to function outside of
2145 * Added maintainer's ``make dist`` target to the ``Makefile``.
2146 * The built-in `simplejson` and `jsonpickle` libraries can be
2147 excluded from ``make install`` by specifying the ``standalone=true``
2148 `make` variable. For example, ``make standalone=true install``.
2149 This corresponds to the ``--standalone`` option to ``setup.py``.
2156 Usability, bells and whistles
2157 -----------------------------
2158 * We now use patience diff by default when it is available via
2159 `git diff --patience`.
2160 * Allow closing the `cola classic` tool with `Ctrl+W`.
2164 * Fixed an unbound variable error in the `push` dialog.
2168 * Don't include `simplejson` in MANIFEST.in.
2169 * Update desktop entry to read `Cola Git GUI`.
2176 This feature release adds two new features directly from
2177 `git cola`'s github issues backlog. On the developer
2178 front, further work was done towards modularizing the code base.
2180 Usability, bells and whistles
2181 -----------------------------
2182 * Dragging and dropping patches invokes `git am`
2184 https://github.com/git-cola/git-cola/issues/3
2186 * A dialog to allow opening or cloning a repository
2187 is presented when `git cola` is launched outside of a git repository.
2189 https://github.com/git-cola/git-cola/issues/22
2191 * Warn when `push` is used to create a new branch
2193 https://github.com/git-cola/git-cola/issues/35
2195 * Optimized startup time by removing several calls to `git`.
2200 * `git cola` is once again compatible with PyQt 4.3.x.
2204 * `cola.gitcmds` was added to factor out git command-line utilities
2205 * `cola.gitcfg` was added for interacting with `git config`
2206 * `cola.models.browser` was added to factor out repobrowser data
2216 * Fix launching external applications on Windows
2217 * Ensure that the `amend` checkbox is unchecked when switching modes
2218 * Update the status tree when amending commits
2227 * Fix Lintian warnings
2236 * Fix X11 warnings on application startup
2245 * Added missing 'Exit Diff Mode' button for 'Diff Expression' mode
2247 https://github.com/git-cola/git-cola/issues/31
2249 * Fix a bug when initializing fonts on Windows
2251 https://github.com/git-cola/git-cola/issues/32
2260 * Keep entries in sorted order in the `cola classic` tool
2261 * Fix staging untracked files
2263 https://github.com/git-cola/git-cola/issues/27
2265 * Fix the `show` command in the Stash dialog
2267 https://github.com/git-cola/git-cola/issues/29
2269 * Fix a typo when loading merge commit messages
2271 https://github.com/git-cola/git-cola/issues/30
2278 This release focuses on a redesign of the git-cola user interface,
2279 a tags interface, and better integration of the `cola classic` tool.
2280 A flexible interface based on configurable docks is used to manage the
2281 various cola widgets.
2283 Usability, bells and whistles
2284 -----------------------------
2285 * New GUI is flexible and user-configurable
2286 * Individual widgets can be detached and rearranged arbitrarily
2287 * Add an interface for creating tags
2288 * Provide a fallback `SSH_ASKPASS` implementation to prompt for
2289 SSH passwords on fetch/push/pull
2290 * The commit message editor displays the current row/column and
2291 warns when lines get too long
2292 * The `cola classic` tool displays upstream changes
2293 * `git cola --classic` launches `cola classic` in standalone mode
2294 * Provide more information in log messages
2298 * Inherit the window manager's font settings
2299 * Miscellaneous PyQt4 bug fixes and workarounds
2303 * Removed all usage of Qt Designer `.ui` files
2304 * Simpler model/view architecture
2305 * Selection is now shared across tools
2306 * Centralized notifications are used to keep views in sync
2307 * The `cola.git` command class was made thread-safe
2308 * Less coupling between model and view actions
2309 * The status view was rewritten to use the MVC architecture
2310 * Added more documentation and tests
2317 Usability, bells and whistles
2318 -----------------------------
2319 * Added a `cola classic` tool for browsing the entire repository
2320 * Handle diff expressions with spaces
2321 * Handle renamed files
2325 * Handle carat `^` characters in diff expressions on Windows
2326 * Worked around a PyQt 4.5/4.6 QThreadPool bug
2330 * Added a keyboard shortcuts reference page
2331 * Added developer API documentation
2335 * Fix the diff expression used when reviewing branches
2336 * Fix a bug when pushing branches
2337 * Fix X11 warnings at startup
2338 * Fix more interrupted system calls on Mac OS X
2345 Usability, bells and whistles
2346 -----------------------------
2347 * Fresh and tasty SVG logos
2348 * Added `Branch Review` mode for reviewing topic branches
2349 * Added diff modes for diffing between tags, branches,
2350 or arbitrary `git diff` expressions
2351 * The push dialog selects the current branch by default.
2352 This is in preparation for `git 1.7.0` where unconfigured `git push`
2353 will refuse to push when run without specifying the remote name
2354 and branch. See the `git` release notes for more information
2355 * Support `open` and `clone` commands on Windows
2356 * Allow saving cola UI layouts
2357 * Re-enabled `double-click-to-stage` for unmerged entries.
2358 Disabling it for unmerged items was inconsistent, though safer.
2359 * Show diffs when navigating the status tree with the keyboard
2363 * Worked around `pyuic4` bugs in the `setup.py` build script
2364 * Added Mac OSX application bundles to the download page
2373 * `git difftool` became an official git command in `git 1.6.3`.
2374 * `git difftool` learned `--no-prompt` / `-y` and a corresponding
2375 `difftool.prompt` configuration variable
2377 Usability, bells and whistles
2378 -----------------------------
2379 * Warn when `non-fast-forward` is used with fetch, push or pull
2380 * Allow `Ctrl+C` to exit cola when run from the command line
2384 * Support Unicode font names
2385 * Handle interrupted system calls
2389 * `PEP-8`-ified more of the cola code base
2394 * All resources are now installed into `$prefix/share/git-cola`.
2395 Closed Debian bug #519972
2397 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=519972
2406 * Added support for Kompare in `git difftool`
2407 * Added a separate configuration namespace for `git difftool`
2408 * Added the `diff.tool` configuration variable to define the default diff tool
2410 Usability, bells and whistles
2411 -----------------------------
2412 * The stash dialog allows passing the `--keep-index` option to `git stash`
2413 * Amending a published commit warns at commit time
2414 * Simplified the file-across-revisions comparison dialog
2415 * `origin` is selected by default in fetch/push/pull
2416 * Removed the search field from the log widget
2417 * The log window moved into a drawer widget at the bottom of the UI
2418 * Log window display can be configured with
2419 `cola.showoutput` = `{never, always, errors}`. `errors` is the default.
2420 * `NOTE` -- `cola.showoutput` was removed with the GUI rewrite in 1.4.0.
2424 * Improved nose unittest usage
2428 * Added a Windows/msysGit installer
2429 * Included private versions of `simplejson` and `jsonpickle`
2430 for ease of installation and development