8 :ref:`v3.1 <v3.1>` 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 * The "Browser" widget learned to rename files using "git mv".
26 https://github.com/git-cola/git-cola/issues/239
28 * The "Diff" widget learned to diff images. Side-by-side and pixel diff
29 modes allow you to inspect changes to common images formats.
31 https://github.com/git-cola/git-cola/issues/444
33 https://github.com/git-cola/git-cola/pull/803
35 * Git LFS and Git Annex are natively supported by the image diff viewer.
37 * Git Annex operations are now included. `git annex init` can be performed on
38 repositories, and `git annex add` can be run on untracked files from the
39 status widget. Install `git-annex` to activate this feature.
41 * Git LFS operations are now included. `git lfs install` can be performed on
42 repositories, and `git lfs track` can be run on untracked files from the
43 status widget. Install `git-lfs` to activate this feature.
45 * The "Stash" tool learned to stash staged changes only. Select the
46 "Stage Index" option and only staged changes will be stashed away.
48 https://github.com/git-cola/git-cola/issues/413
50 * The "Stash" tool learned to use vim-like navigation keyboard shortcuts,
51 shows error messages when things go wrong, and now saves the "Stash Index"
52 and "Keep Index" options across sessions.
54 * The Edit menu's "Copy" and "Select All" actions now forward to either the
55 diff, status, recent, or favorites widgets, based on which widget has focus.
57 * The "File" and "Edit" menu can now be activated using `Alt-{f,e}` hotkeys.
59 https://github.com/git-cola/git-cola/issues/759
61 * It was easy to accidentally trigger the first action in the `Status` tool's
62 context menu when using a quick right-click to bring up the menu.
63 A short sub-second delay was added to ensure that the top-most action is not
64 triggered unless enough time has passed. This prevents accidental
65 activation of the first item (typically "Stage" or "Unstage") without
66 burdening common use cases.
68 https://github.com/git-cola/git-cola/pull/755
70 https://github.com/git-cola/git-cola/issues/643
72 * The "Ctrl+S" hotkey now works for the header items in the Status tool.
73 Selected the "Modified" header item and activating the "Stage" hotkey,
74 for example, will stage all modified files. This works for the "Staged",
75 "Modified", and "Untracked" headers. This is not enabled for the
76 "Unmerged" header by design.
78 https://github.com/git-cola/git-cola/issues/772
80 * The list of "Recent" repositories previously capped the number of
81 repositories shown to 8 repositories. This can be set to a higher
82 value by setting the `cola.maxrecent` configuration variable.
84 https://github.com/git-cola/git-cola/issues/752
86 * The "Create Branch" dialog now prevents invalid branch names.
88 https://github.com/git-cola/git-cola/issues/765
90 * Updated Turkish translation.
92 https://github.com/git-cola/git-cola/pull/756
94 * Updated Ukrainian translation.
96 https://github.com/git-cola/git-cola/pull/753
98 * Updated German translation.
100 https://github.com/git-cola/git-cola/pull/802
102 * Updated Czech translation
104 https://github.com/git-cola/git-cola/pull/792
106 https://github.com/git-cola/git-cola/pull/806
108 * The window title can be configured to not display the absolute path of the
111 https://github.com/git-cola/git-cola/issues/775
113 * The "Edit Remotes" editor learned to edit remote URLS.
115 * Bare repositories can now be created by selecting the
116 "New Bare Repository..." action from the `File` menu.
118 * The "Branches" widget learned to configure upstream branches.
120 * A new `git cola clone` sub-command was added for cloning repositories.
124 * The vendored `qtpy` library was updated to `v1.3.1`.
126 * The macOS installation was made simpler for better compatibility with
129 https://github.com/git-cola/git-cola/issues/636
131 * The Windows installer is now much simpler. Git Cola now bundles
132 Python and PyQt5, so users need only install the "Git for Windows"
133 and "Git Cola" installers to get things working.
137 * Uninitialized difftool errors will now be displayed graphically.
138 They were previously going to the shell.
140 https://github.com/git-cola/git-cola/issues/457
142 * Translations marked "fuzzy" will no longer be used when translating strings.
144 https://github.com/git-cola/git-cola/issues/782
146 * Deleted unmerged files will now correctly use a deleted icon.
148 https://github.com/git-cola/git-cola/issues/479
150 * The `Ctrl+C` "Copy" hotkey on the diff viewer has been fixed.
152 https://github.com/git-cola/git-cola/issues/767
154 * The "Create Tag" dialog did not correctly handle the case when a signed
155 tag is requested, but no message is provided, and the user chooses to
156 create an unannotated tag instead. This convenience fallback will now
157 properly create an unsigned, unannotated tag.
159 https://github.com/git-cola/git-cola/issues/696
161 * `.gitconfig` and `.git/config` values editable by the Preferences dialog
162 (aka `git cola config`) will now get unset when set to an empty value.
163 For example, setting a different `user.email` in the current repository,
164 followed by a subsequent emptying of that field, would previously result in
165 an empty string getting stored in the config. This has been fixed so that
166 the value will now get unset in the config instead.
168 https://github.com/git-cola/git-cola/issues/406
170 * Spelling and typofixes.
172 https://github.com/git-cola/git-cola/pull/748
174 * `core.commentChar` is now honored when set in the local repository
177 https://github.com/git-cola/git-cola/issues/766
179 * The log window was using a format string that did not display
180 correctly in all locales. A locale-aware format is now used.
182 https://github.com/git-cola/git-cola/pull/800
184 * The dialog displayed when prompting for a reference could sometimes
187 https://github.com/git-cola/git-cola/pull/804
194 Usability, bells and whistles
195 -----------------------------
196 * Updated Simplified Chinese translation.
198 https://github.com/git-cola/git-cola/pull/726
200 * Updated Ukrainian translation.
202 https://github.com/git-cola/git-cola/pull/723
204 * New Czech translation.
206 https://github.com/git-cola/git-cola/pull/736
208 https://github.com/git-cola/git-cola/pull/737
210 https://github.com/git-cola/git-cola/pull/740
212 https://github.com/git-cola/git-cola/pull/743
214 * The "name" field in the "Create Tag" dialog now includes autocompletion,
215 which makes it easy to see which tags currently exist.
217 * `git cola` now has configurable toolbars. Use the `View -> Add toolbar`
218 menu item to add a toolbar.
220 * Setting `cola.expandtab` to `true` will now expand tabs into spaces
221 in the commit message editor. The number of spaces to insert is determined
222 by consulting `cola.tabwidth`, which defaults to `8`.
224 * The "Copy SHA-1" hotkey is now `Alt + Ctrl + C`, to avoid clobbering the
225 ability to copy text from the DAG window.
227 https://github.com/git-cola/git-cola/pull/705
229 * The "Prepare Commit Message" action can now be invoked via the
230 `Ctrl+Shift+Return` shortcut.
232 https://github.com/git-cola/git-cola/pull/707
234 * The `Branches` pane now has a filter field that highlights branches whose
235 names match the string entered into its text field.
237 https://github.com/git-cola/git-cola/pull/713
239 * Actions that are triggered in response to button presses were being
240 triggered when the button was pressed, rather than when it was released,
241 which was a usability flaw. All buttons now respond when clicked
242 rather than when pressed.
244 https://github.com/git-cola/git-cola/pull/715
246 * The DAG window will now only refresh when object IDs change.
247 Previously, the DAG would redraw itself in response to inotify events,
248 such as filesystem operations, which was disruptive when inspecting a large
249 diff in its diff viewer. The DAG will now only redraw when the object IDs
250 corresponding to its query input changes. Furthermore, when redrawing, the
251 scrollbar positions are retained to minimize disruption to the viewport
254 https://github.com/git-cola/git-cola/issues/620
256 https://github.com/git-cola/git-cola/issues/724
258 * The "About" dialog now includes the SHA-1 where Git Cola was built.
260 https://github.com/git-cola/git-cola/issues/530
262 * The "Status" widget now has "Copy Leading Path to Clipboard" and
263 "Copy Basename to Clipboard" actions.
265 https://github.com/git-cola/git-cola/issues/435
267 https://github.com/git-cola/git-cola/issues/436
269 * The "Status" widget now supports custom "Copy ... to Clipboard" actions.
271 https://github.com/git-cola/git-cola/issues/437
273 * The main menu now has an "Edit" menu.
275 https://github.com/git-cola/git-cola/issues/725
277 * `git dag` learned to checkout commits into a detached HEAD state.
279 https://github.com/git-cola/git-cola/issues/698
281 * The `status` widget's context menus now omit actions selection-dependent
282 actions when no file is selected.
284 https://github.com/git-cola/git-cola/pull/731
286 * The startup dialog now focuses the repository list so that repositories
287 can be selected with the keyboard without mouse intervention.
289 https://github.com/git-cola/git-cola/issues/741
293 * `git dag` now prevents nodes from overlapping in more situations.
295 https://github.com/git-cola/git-cola/pull/689
297 * Adding untracked Git submodule repo directories previously ran
298 `git add submodule/` but we now call `git add submodule` without
299 the trailing slash (`/`) to avoid staging files that belong to the
300 submodule (which is possibly a `git` bug). By working around the
301 buggy behavior we allow users to recover by issuing the appropriate
302 `git submodule add` command to properly register the submodule.
304 https://github.com/git-cola/git-cola/pull/681
306 * We now avoid `git for-each-ref --sort=version:refname` on versions
307 of `git` older than `v2.7.0`. Previously we only avoided it for
308 versions older than `v2.0.0`, which was a mistake.
310 https://github.com/git-cola/git-cola/pull/686
312 * The error message displayed when `git` is not installed has been fixed.
314 https://github.com/git-cola/git-cola/pull/686
316 * Adding new remotes was silently broken.
318 https://github.com/git-cola/git-cola/issues/684
320 https://github.com/git-cola/git-cola/pull/685
322 * The repo selection dialog had errors during startup when the
323 `cola.refreshonfocus` feature was enabled, as reported on Ubuntu 16.04.
325 https://github.com/git-cola/git-cola/issues/690
327 * Restored support for PyQt 4.6 (Centos 6.8)
329 https://github.com/git-cola/git-cola/issues/692
331 * Switching repositories now resets the "Amend Mode" and other settings
334 https://github.com/git-cola/git-cola/issues/710
336 * `git rebase` error messages now displayed when rebasing fails or stops
337 via the standalone `git cola rebase` front-end.
339 https://github.com/git-cola/git-cola/issues/721
341 * `git cola` learned to stage broken symlinks.
343 https://github.com/git-cola/git-cola/issues/727
345 * The "View History" feature in the `Browser` tool was fixed, and now
346 disambiguates between refs and paths.
348 https://github.com/git-cola/git-cola/issues/732
350 * The diff editor now has better support for files with CRLF `\r\n`
353 https://github.com/git-cola/git-cola/issues/730
355 * `cola.inotify` in a repo-local config is now honored
356 when `git cola` is launched from a desktop entry (`git cola --prompt`).
358 https://github.com/git-cola/git-cola/issues/695
365 Usability, bells and whistles
366 -----------------------------
367 * New Ukrainian translation.
369 https://github.com/git-cola/git-cola/pull/670
371 https://github.com/git-cola/git-cola/pull/672
373 * New and improved French translations.
375 * The new `Branches` widget makes it easier to checkout, merge, push,
376 and pull branches from a single interface.
378 * `git cola` now includes a dark icon theme. The dark icon theme can be
379 activated either by setting the `GIT_COLA_ICON_THEME` environment variable
380 to `dark`, by configuring `cola.icontheme` to `dark`, or by specifying
381 `--icon-theme=dark` on the command line.
383 https://github.com/git-cola/git-cola/pull/638
385 * Autocompletion was added to the `Fetch`, `Push`, and `Pull` dialogs.
387 * The commit message editor now remembers the "Spellcheck" setting
390 https://github.com/git-cola/git-cola/pull/645
392 * `git dag` now uses an improved algorithm for laying out the graph,
393 which avoids collisions under certain graph configurations, and
394 avoids overlapping tag with commits.
396 https://github.com/git-cola/git-cola/pull/648
398 https://github.com/git-cola/git-cola/pull/651
400 https://github.com/git-cola/git-cola/pull/654
402 https://github.com/git-cola/git-cola/pull/656
404 https://github.com/git-cola/git-cola/pull/659
406 * `git dag` now remembers its column sizes across sessions.
408 https://github.com/git-cola/git-cola/issues/674
410 * `Grep` now shows a preview of the selected file's content in a split window
411 below the grep results.
413 * `Grep` now includes line numbers in the preview pane's output.
415 * `Edit Remotes` now remembers its window settings after exiting.
417 * `Diff` now has an option to display line numbers in the editor.
419 https://github.com/git-cola/git-cola/issues/136
421 * `Amend Last Commit` can now be triggered via the `Commit` menu in addition
422 to the commit message editor's options.
424 https://github.com/git-cola/git-cola/issues/640
426 * The `File Browser` tool was made much faster and can now operate on
427 much larger repositories.
429 https://github.com/git-cola/git-cola/issues/499
431 * A new "turbo" mode was added that allows you to opt-out of operations
432 that can slow `git cola` on large repositories. The turbo mode is
433 enabled by configuring `git config cola.turbo true`. Turbo mode
434 disables the background loading of Git commit messages and other
435 details in the `File Browser` widget.
437 * A new GitIgnore dialog allows adding custom gitignore patterns.
439 https://github.com/git-cola/git-cola/pull/653
441 * The spellchecker in `git cola` can now use an additional dictionary
442 by configuring `cola.dictionary` to the path to a file containing
443 a newline-separated list of words.
445 https://github.com/git-cola/git-cola/issues/663
447 * The stash, export patches, diff, and gitignore dialogs now remember
450 * A new `git cola recent` sub-command was added for finding recently
453 * The `Fetch` dialog now allows pruning remote branches.
455 https://github.com/git-cola/git-cola/issues/639
457 https://github.com/git-cola/git-cola/pull/680
461 * `git cola`'s spellchecker now supports the new `dict-common` filesystem
462 layout, and prefers the `/usr/share/dict/cracklib-small` file over the
463 `/usr/share/dict/words` provided on older distributions.
464 This makes the spellchecker compatible with Arch, which does not provide
465 a `words` symlink like Debian.
467 https://github.com/git-cola/git-cola/issues/663
469 * Properly handle the case where an existing file is untracked using
472 * Fix a quirk where the "Create Branch" dialog sometimes required clicking
473 twice on the radio buttons.
475 https://github.com/git-cola/git-cola/pull/662
477 * Fixed a focus issue to ensure that "Push", "Fetch", and "Pull" can
478 be executed with the press of a single enter key after being shown.
480 https://github.com/git-cola/git-cola/issues/661
482 * Committing is now allowed in when resolving a merge results in no
483 changes. This state was previously prevented by the commit message editor,
484 which prevented users from resolving merges that result in no changes.
486 https://github.com/git-cola/git-cola/pull/679
488 * The filesystem monitor would sometimes emit backtraces when directories
489 are modified. This has been fixed.
491 https://bugzilla.redhat.com/show_bug.cgi?id=1438522
493 * Absolute paths are now returned when querying for `.git`-relative paths
494 from within a submodule, which uses `.git`-files.
495 This fixes launching `git cola` from within a subdirectory of a submodule.
497 https://github.com/git-cola/git-cola/pull/675
504 Usability, bells and whistles
505 -----------------------------
506 * `git cola` can now invoke the `.git/hooks/cola-prepare-commit-msg`
507 hook to update the commit message. This hook takes the same parameters
508 as Git's `prepare-commit-message` hook. The default path to this hook
509 can be overridden by setting the `cola.prepareCommitMessageHook`
510 configuration variable.
512 http://git-cola.readthedocs.io/en/latest/git-cola.html#prepare-commit-message
514 * `git cola diff` (and the corresponding `Diff` menu actions) can now
515 launch difftool with the standard `Ctrl+D` hotkey. The `Ctrl+E` hotkey was
516 also added for launching an editor.
518 * Traditional Chinese (Taiwan) translation updates.
522 * `git cola` now works when installed in non-ascii, utf8-encoded paths.
524 https://github.com/git-cola/git-cola/issues/629
526 * Styling issues that caused black backgrounds in various widgets when using
527 PyQ5 on Mac OS X have been fixed.
529 https://github.com/git-cola/git-cola/issues/624
531 * The "Open Recent" menu action was broken and has been fixed.
533 https://github.com/git-cola/git-cola/issues/634
535 * Exiting `git cola` with a maximized main window would hang when reopened
538 https://github.com/git-cola/git-cola/issues/641
542 * `appdata.xml` files are now provided at
543 `share/appdata/git-cola.xml` and `share/appdata/git-dag.xml`
544 for use by the Linux software gallery.
546 https://people.freedesktop.org/~hughsient/appdata/
548 https://github.com/git-cola/git-cola/pull/627
557 * The "Open Recent" menu was updated to new bookmarks format.
559 https://github.com/git-cola/git-cola/issues/628
566 Usability, bells and whistles
567 -----------------------------
568 * New Polish translation thanks to Łukasz Wojniłowicz
570 https://github.com/git-cola/git-cola/pull/598
572 * The `Bypass Commit Hooks` feature now disables itself automatically
573 when a new commit is created. The new behavior turns the option into a
574 single-use flag, which helps prevent users from accidentally leaving it
575 active longer than intended.
577 https://github.com/git-cola/git-cola/pull/595
579 * `git dag` learned to launch an external diff viewer on selected commits.
580 The standard `Ctrl+D` shortcut can be used to view diffs.
582 https://github.com/git-cola/git-cola/issues/468
584 * `git dag` learned to launch directory diffs via `git difftool --dir-diff`.
585 The `Ctrl+Shift+D` shortcut launches difftool in directory-diff mode.
587 https://github.com/git-cola/git-cola/issues/468
589 * Items in the "Favorites" list can now be renamed, which makes it
590 easier to differentiate between several checkouts of the same repository.
592 https://github.com/git-cola/git-cola/issues/599
594 https://github.com/git-cola/git-cola/pull/601
596 * The startup screen now includes a logo and `git cola` version information.
598 https://github.com/git-cola/git-cola/issues/526
600 * The `About` page was revamped to contain multiple tabs. A new tab was added
601 that provides details about `git cola`''s dependencies. New tabs were also
602 added for giving credit to `git cola`'s authors and translators.
604 * The `About` page can now be accessed via `git cola about`.
606 * The "Fast-forward only" and "No fast-forward" options supported by
607 `git pull` are now accessible via `git cola pull`.
609 * Doing a forced push no longer requires selecting the remote branch.
611 https://github.com/git-cola/git-cola/pull/618
613 * `git cola push` now has an option to suppress the prompt that is shown
614 when pushing would create new remote branches.
616 https://github.com/git-cola/git-cola/issues/605
618 * `git dag` now shows commit messages in a more readable color.
620 https://github.com/git-cola/git-cola/issues/574
622 * `git cola browse` and the `status` widget learned to launch the OS-specified
623 default action for a file. When used on directories via `git cola browse`,
624 or when "Open Parent Directory" is used on files, the OS-specified
625 file browser will typically be used.
627 * `git cola browse` and the `status` widget learned to launch terminals.
631 * `git cola browse` was not updating when expanding items.
633 https://github.com/git-cola/git-cola/issues/588
635 * Typofixes in comments, naming, and strings have been applied.
637 https://github.com/git-cola/git-cola/pull/593
639 * The inotify and win32 filesystem monitoring no longer refreshes
640 when updates are made to ignored files.
642 https://github.com/git-cola/git-cola/issues/517
644 https://github.com/git-cola/git-cola/issues/516
646 * The `Refresh` button on the actions panel no longer raises an
647 exception when using PyQt5.
649 https://github.com/git-cola/git-cola/issues/604
651 * Fixed a typo in the inotify backend that is triggered when files are removed.
653 https://github.com/git-cola/git-cola/issues/607
655 * Fixed a typo when recovering from a failed attempt to open a repository.
657 https://github.com/git-cola/git-cola/issues/606
659 * `git dag` now properly updates itself when launched from the menubar.
661 https://github.com/git-cola/git-cola/pull/613
663 * If git-cola is invoked on Windows using `start pythonw git-cola`,
664 a console window will briefly flash on the screen each time
665 `git cola` invokes `git`. The console window is now suppressed.
667 * We now avoid some problematic Popen flags on Windows which were
668 breaking the `git rebase` feature on Windows.
670 * The `Save` button in `git dag`'s "Grab File..." feature now properly
671 prompts for a filename when saving files.
673 https://github.com/git-cola/git-cola/pull/617
677 * The `qtpy` symlink in the source tree has been removed to allow for easier
678 development on Windows.
680 https://github.com/git-cola/git-cola/issues/626
687 Usability, bells and whistles
688 -----------------------------
689 * `git cola push` learned to configure upstream branches.
691 https://github.com/git-cola/git-cola/issues/563
695 * The diffstat view is now properly updated when notifications are
696 received via inotify filesystem monitoring.
698 https://github.com/git-cola/git-cola/issues/577
700 * Python3 with PyQt5 had a bug that prevented `git cola` from starting.
702 https://github.com/git-cola/git-cola/pull/589
712 * When repositories stored in non-ASCII, UTF-8-encoded filesystem paths
713 were operated upon with `LC_ALL=C` set in the environment, unicode errors
714 would occur when using `python2`. `git cola` was made more robust and will
715 now operate correctly within this environment.
717 https://github.com/git-cola/git-cola/issues/581
719 * Support for the `GIT_WORK_TREE` environment variable was fixed.
721 https://github.com/git-cola/git-cola/pull/582
726 * The `unittest.mock` module is now used instead of the original `mock` module
727 when running the `git cola` test suite using Python3.
729 https://github.com/git-cola/git-cola/issues/569
734 * `git cola` is now compatible with *PyQt5*, *PyQt4*, and *Pyside*.
735 `git cola` previously supported *PyQt4* only, but will now use whichever
736 library is available. Users are not required to upgrade at this time,
737 but *PyQt5* support can be enabled anytime by making its python
740 https://github.com/git-cola/git-cola/issues/232
742 *NOTE*: We do not yet recommend using *PyQt5* because there are known
743 exit-on-segfault bugs in *Qt5* that have not yet been addressed.
744 `git cola` is sensitive to this bug and is known to crash on exit
745 when using `git dag` or the interactive rebase feature on *PyQt5*.
747 https://bugreports.qt.io/browse/QTBUG-52988
749 *PyQt4* is stable and there are no known issues when using it so
750 we recommend using it until the Qt5 bugs have been resolved.
752 * `git cola` now depends on *QtPy* and includes a bundled copy of the
753 `qtpy` library. If you are packaging `git cola` and would prefer to use
754 `qtpy` from your distribution instead of the built-in version then use
755 `make NO_VENDOR_LIBS=1` when building `git cola`. This will prevent
756 vendored libraries from being installed.
763 Usability, bells and whistles
764 -----------------------------
766 * A new "Reset" sub-menu provides access to running "git reset --mixed"
767 when resetting branch heads and "git reset --merge" when resetting
770 https://github.com/git-cola/git-cola/issues/542
772 * `git cola` now supports linked worktrees, i.e. worktrees created by
775 https://github.com/git-cola/git-cola/issues/554
780 * Diff highlighting is now robust to the user having
781 diff.supressBlankEmpty=true in their git config.
783 https://github.com/git-cola/git-cola/issues/541
785 * The filesystem monitor now properly handles repositories that use
786 `.git`-files, e.g. when using submodules.
788 https://github.com/git-cola/git-cola/issues/545
790 https://github.com/git-cola/git-cola/pulls/546
792 * Per-repository git configuration is now properly detected when launching
793 `git cola` from an application launcher.
795 https://github.com/git-cola/git-cola/issues/548
797 * `git cola` now cleans up after itself immediately to avoid leaving behind
798 empty `/tmp/git-cola-XXXXXX` directories when the user uses `Ctrl+C`
801 https://github.com/git-cola/git-cola/issues/566
806 * It is now possible to install `git cola` to and from utf8-encoded filesystem
807 paths. Previously, Python's stdlib would throw an encoding error during
808 installation. We workaround the stdlib by forcing python2 to use utf-8,
809 thus fixing assumptions in the stdlib library code.
811 https://github.com/git-cola/git-cola/issues/551
818 Usability, bells and whistles
819 -----------------------------
821 * The icon for untracked files was adjusted to better differentiate
822 between files and the "Untracked" header.
824 https://github.com/git-cola/git-cola/issues/509
826 * Ctrl+O was added as a hotkey for opening repositories.
828 https://github.com/git-cola/git-cola/pull/507
830 * `git dag` now uses consistent edge colors across updates.
832 https://github.com/git-cola/git-cola/issues/512
834 * `git cola`'s Bookmarks widget can now be used to set a "Default Repository".
835 Under the hood, we set the `cola.defaultrepo` configuration variable.
836 The default repository is used whenever `git cola` is launched outside of
837 a Git repository. When unset, or when set to a bogus value, `git cola`
838 will prompt for a repository, as it previously did.
840 https://github.com/git-cola/git-cola/issues/513
842 * `git cola`'s Russian and Spanish translations were improved
843 thanks to Vaiz and Zeioth.
845 https://github.com/git-cola/git-cola/pull/514
847 https://github.com/git-cola/git-cola/pull/515
849 https://github.com/git-cola/git-cola/pull/523
851 * `git cola` was translated to Turkish thanks to Barış ÇELİK.
853 https://github.com/git-cola/git-cola/pull/520
855 * The status view now supports launching `git gui blame`. It can be
856 configured to use a different command by setting `cola.blameviewer`.
858 https://github.com/git-cola/git-cola/pull/521
860 * `git dag` now allows selecting non-contiguous ranges in the log widget.
862 https://github.com/git-cola/git-cola/issues/468
864 * Any font can now be chosen for the diff editor, not just monospace fonts.
866 https://github.com/git-cola/git-cola/issues/525
871 * `xfce4-terminal` and `gnome-terminal` are now supported when launching
872 `git mergetool` to resolve merges. These terminals require that the command
873 to execute is shell-quoted and passed as a single string argument to `-e`
874 rather than as additional command line arguments.
876 https://github.com/git-cola/git-cola/issues/524
878 * Fixed a unicode problem when formatting the error message that is shown
879 when `gitk` is not installed. We now handle unicode data in tracebacks
880 generated by python itself.
882 https://github.com/git-cola/git-cola/issues/528
884 * The `New repository` feature was fixed.
886 https://github.com/git-cola/git-cola/pull/533
888 * We now use omit the extended description when creating "fixup!" commits,
889 for consistency with the Git CLI. We now include only the one-line summary
890 in the final commit message.
892 https://github.com/git-cola/git-cola/issues/522
899 Usability, bells and whistles
900 -----------------------------
902 * The user interface is now HiDPI-capable. git-cola now uses SVG
903 icons, and its interface can be scaled by setting the `GIT_COLA_SCALE`
904 environment variable.
906 * `git dag` now supports the standard editor, difftool, and history hotkeys.
907 It is now possible to invoke these actions from file widget's context
908 menu and through the standard hotkeys.
910 https://github.com/git-cola/git-cola/pull/473
912 * The `Status` tool also learned about the history hotkey.
913 Additionally, the `Alt-{j,k}` aliases are also supported in the `Status`
914 tool for consistency with the other tools where the non-Alt hotkeys are not
917 https://github.com/git-cola/git-cola/pull/488
919 * The `File Browser` tool now has better default column sizes,
920 and remembers its window size and placement.
922 * The `File Browser` now supports the refresh hotkey, and has better
923 behavior when refreshing. The selection is now retained, and new and
924 removed files are found when refreshing.
926 * A new `git-cola-completion.bash` completion script is provided in the
927 `contrib/` directory. It must be used alongside Git's completion script.
928 Source it from your `~/.bashrc` (or `~/.zshrc`, etc) after sourcing
929 the `git-completion.bash` script and you will have command-line completion
930 support for the `git cola` and `git dag` sub-commands.
932 * The "checkout" dialog now offers completion for remote branches and other
933 git refs. This makes it easier to checkout remote branches in a detached
934 head state. Additionally, the checkout dialog also offers completion for
935 remote branches that have not yet been checked out, which makes it easier to
936 create a local tracking branch by just completing for that potential name.
938 https://github.com/git-cola/git-cola/issues/390
940 * The "create branch" and "create tag" dialogs now save and restore their
943 * The "status" widget can now be configured to use a bold font with a darker
944 background for the header items.
946 https://github.com/git-cola/git-cola/pull/506
948 * The "status" widget now remembers its horizontol scrollbar position across
949 updates. This is helpful when working on projects with long paths.
951 https://github.com/git-cola/git-cola/issues/494
956 * When using *Git for Windows*, a `git` window would appear
957 when running *Windows 8*. We now pass additional flags to
958 `subprocess.Popen` to prevent a `git` window from appearing.
960 https://github.com/git-cola/git-cola/issues/477
962 https://github.com/git-cola/git-cola/pull/486
964 * Launching difftool with `.PY` in `$PATHEXT` on Windows was fixed.
966 https://github.com/git-cola/git-cola/issues/492
968 * Creating a local branch tracking a remote branch that contains
969 slashes in its name is now properly handled.
971 https://github.com/git-cola/git-cola/issues/496
973 * The "Browse Other Branch" feature was broken by Python3, and is now fixed.
975 https://github.com/git-cola/git-cola/issues/501
977 * We now avoid `long` for better Python3 compatibility.
979 https://github.com/git-cola/git-cola/issues/502
981 * We now use Git's default merge message when merging branches.
983 https://github.com/git-cola/git-cola/issues/508
985 * Miscellaneous fixes
987 https://github.com/git-cola/git-cola/pull/485
992 * git-cola's documentation no longer uses an intersphinx link mapping
993 to docs.python.org. This fixes warnings when building rpms using koji,
994 where network access is prevented.
996 https://bugzilla.redhat.com/show_bug.cgi?id=1231812
1003 Usability, bells and whistles
1004 -----------------------------
1006 * The Interactive Rebase feature now works on Windows!
1008 https://github.com/git-cola/git-cola/issues/463
1010 * The `diff` editor now understands vim-style `hjkl` navigation hotkeys.
1012 https://github.com/git-cola/git-cola/issues/476
1014 * `Alt-{j,k}` navigation hotkeys were added to allow changing to the
1015 next/previous file from the diff and commit editors.
1017 * The `Rename branch` menu action is now disabled in empty repositories.
1019 https://github.com/git-cola/git-cola/pull/475
1021 https://github.com/git-cola/git-cola/issues/459
1023 * `git cola` now checks unmerged files for conflict markers before
1024 staging them. This feature can be disabled in the preferences.
1026 https://github.com/git-cola/git-cola/issues/464
1028 * `git dag` now remembers which commits were selected when refreshing
1029 so that it can restore the selection afterwards.
1031 https://github.com/git-cola/git-cola/issues/480
1033 * "Launch Editor", "Launch Difftool", "Stage/Unstage",
1034 and "Move Up/Down" hotkeys now work when the commit message
1037 https://github.com/git-cola/git-cola/issues/453
1039 * The diff editor now supports the `Ctrl+u` hotkey for reverting
1040 diff hunks and selected lines.
1042 * The `core.commentChar` Git configuration value is now honored.
1043 Commit messages and rebase instruction sheets will now use
1044 the configured character for comments. This allows having
1045 commit messages that start with `#` when `core.commentChar`
1046 is configured to its non-default value.
1048 https://github.com/git-cola/git-cola/issues/446
1053 * Diff syntax highlighting was improved to handle more edge cases
1054 and false positives.
1056 https://github.com/git-cola/git-cola/pull/467
1058 * Setting commands in the interactive rebase editor was fixed.
1060 https://github.com/git-cola/git-cola/issues/472
1062 * git-cola no longer clobbers the Ctrl+Backspace text editing shortcut
1063 in the commit message editor.
1065 https://github.com/git-cola/git-cola/issues/453
1067 * The copy/paste clipboard now persists after `git cola` exits.
1069 https://github.com/git-cola/git-cola/issues/484
1078 * Fixed the "Sign off" feature in the commit message editor.
1085 Usability, bells and whistles
1086 -----------------------------
1087 * Double-click will now choose a commit in the "Select commit" dialog.
1089 * `git cola` has a feature that reads `.git/MERGE_MSG` and friends for the
1090 commit message when a merge is in-progress. Upon refresh, `git cola` will
1091 now detect when a merge has completed and reset the commit message back to
1092 its previous state. It is only reset if the editor contains a message
1093 that was read from the file and has not been manually edited by the user.
1095 * The commit message editor's context menu now has a "Clear..." action for
1096 clearing the message across both the summary and description fields.
1098 * Traditional Chinese (Taiwan) translation updates.
1100 * The system theme's icons are now used wherever possible.
1102 https://github.com/git-cola/git-cola/pull/458
1106 * The stash viewer now uses ``git show --no-ext-diff`` to avoid running
1107 user-configured diff tools.
1109 * `git cola` now uses the `setsid()` system call to ensure that the
1110 `GIT_ASKPASS` and `SSH_ASKPASS` helper programs are used when pushing
1111 changes using `git`. The askpass helpers will now be used even when
1112 `git cola` is launched from a terminal.
1114 The behavior without `setsid()` is that `git cola` can appear to hang while
1115 pushing changes. The hang happens when `git` prompts the user for a
1116 password using the terminal, but the user never sees the prompt. `setsid()`
1117 detaches the terminal, which ensures that the askpass helpers are used.
1119 https://github.com/git-cola/git-cola/issues/218
1121 https://github.com/git-cola/git-cola/issues/262
1123 https://github.com/git-cola/git-cola/issues/377
1125 * `git dag`'s file list tool was updated to properly handle unicode paths.
1127 * `gnome-terminal` is no longer used by default when `cola.terminal` is unset.
1128 It is broken, as was detailed in #456.
1130 https://github.com/git-cola/git-cola/issues/456
1132 * The interactive rebase feature was not always setting `$GIT_EDITOR`
1133 to the value of `gui.editor`, thus there could be instances where rebase
1134 will seem to not stop, or hang, when performing "reword" actions.
1136 We now set the `$GIT_EDITOR` environment variable when performing the
1137 "Continue", "Skip", and "Edit Todo" rebase actions so that the correct
1138 editor is used during the rebase.
1140 https://github.com/git-cola/git-cola/issues/445
1144 * `git cola` moved from a 3-part version number to a simpler 2-part "vX.Y"
1145 version number. Most of our releases tend to contain new features.
1152 Usability, bells and whistles
1153 -----------------------------
1154 * Updated zh_TW translations.
1156 * `git cola rebase` now defaults to `@{upstream}`, and generally uses the same
1157 CLI syntax as `git rebase`.
1159 * The commit message editor now allows you to bypass commit hooks by selecting
1160 the "Bypass Commit Hooks" option. This is equivalent to passing the
1161 `--no-verify` option to `git commit`.
1163 https://github.com/git-cola/git-cola/issues/357
1165 * We now prevent the "Delete Files" action from creating a dialog that does
1168 https://github.com/git-cola/git-cola/issues/378
1170 * `git xbase` learned to edit rebase instruction sheets that contain
1173 * The diff colors are now configurable. `cola.color.{text,add,remove,header}`
1174 can now be set with 6-digit hexadecimal colors.
1175 See the `git cola manual <https://git-cola.readthedocs.io/en/latest/git-cola.html#configuration-variables>_`
1178 * Improved hotkey documentation.
1182 * `git cola` will now allow starting an interactive rebase with a dirty
1183 worktree when `rebase.autostash` is set.
1185 https://github.com/git-cola/git-cola/issues/360
1192 Usability, bells and whistles
1193 -----------------------------
1194 * A new "Find files" widget was added, and can be activated by
1195 using the `Ctrl+t` or `t` hotkeys.
1197 * A new `git cola find` sub-command was added for finding files.
1199 * `git cola` now remembers the text cursor's position when staging
1200 interactively with the keyboard. This makes it easier to use the keyboard
1201 arrows to select and stage lines.
1203 * The completion widgets will now select the top completion item
1204 when `Enter` or `Return` are pressed.
1206 * You can now refresh using `F5` in addition to the existing `Ctrl+R` hotkey.
1210 * `git cola` now passes `--no-abbrev-commit` to `git log` to override
1211 having `log.abbrevCommit = true` set in `.gitconfig`.
1217 Usability, bells and whistles
1218 -----------------------------
1219 * `git dag` now forwards all unknown arguments along to `git log`.
1221 https://github.com/git-cola/git-cola/issues/389
1223 * Line-by-line interactive staging was made more robust.
1225 https://github.com/git-cola/git-cola/pull/399
1227 * "Bookmarks" was renamed to "Favorites".
1229 https://github.com/git-cola/git-cola/issues/392
1231 * Untracked files are now displayed using a unique icon.
1233 https://github.com/git-cola/git-cola/pull/388
1237 * `git dag` was triggering a traceback on Fedora when parsing Git logs.
1239 https://bugzilla.redhat.com/show_bug.cgi?id=1181686
1241 * inotify expects unicode paths on Python3.
1243 https://github.com/git-cola/git-cola/pull/393
1245 * Untracked files are now assumed to be utf-8 encoded.
1247 https://github.com/git-cola/git-cola/issues/401
1253 Usability, bells and whistles
1254 -----------------------------
1255 * `git cola` can now create GPG-signed commits and merges.
1257 https://github.com/git-cola/git-cola/issues/149
1259 See the documentation for details about setting up a GPG agent.
1261 * The status widget learned to copy relative paths when `Ctrl+x` is pressed.
1263 https://github.com/git-cola/git-cola/issues/358
1265 * Custom GUI actions can now define their own keyboard shortcuts by
1266 setting `guitool.$name.shortcut` to a string understood by Qt's
1267 `QAction::setShortcut()` API, e.g. `Alt+X`.
1269 See http://qt-project.org/doc/qt-4.8/qkeysequence.html#QKeySequence-2
1270 for more details about the supported values.
1272 * `git cola` learned to rename branches.
1274 https://github.com/git-cola/git-cola/pull/364
1276 https://github.com/git-cola/git-cola/issues/278
1278 * `git dag` now has a "Show history" context menu which can be used to filter
1279 history using the selected paths.
1283 * `sphinxtogithub.py` was fixed for Python3.
1285 https://github.com/git-cola/git-cola/pull/353
1287 * The commit that changed how we read remotes from `git remote`
1288 to parsing `git config` was reverted since it created problems
1291 * Fixed a crash when using the `rebase edit` feature.
1293 https://github.com/git-cola/git-cola/issues/351
1295 * Better drag-and-drop behavior when dropping into gnome-terminal.
1297 https://github.com/git-cola/git-cola/issues/373
1301 * The `git-cola-folder-handler.desktop` file handler was fixed
1302 to pass validation by `desktop-file-validate`.
1304 https://github.com/git-cola/git-cola/issues/356
1306 * The `git.svg` icon was renamed to `git-cola.svg`, and `git cola` was taught
1307 to prefer icons from the desktop theme when available.
1313 Usability, bells and whistles
1314 -----------------------------
1315 * New hotkey: `Ctrl+Shift+M` merges branches.
1317 * New hotkey: `Ctrl+R` refreshes the DAG viewer.
1319 https://github.com/git-cola/git-cola/issues/347
1323 * We now use `git config` to parse the list of remotes
1324 instead of parsing the output of `git remote`, which
1325 is a Git porcelain and should not be used by scripts.
1327 * Avoid "C++ object has been deleted" errors from PyQt4.
1329 https://github.com/git-cola/git-cola/issues/346
1333 * The `make install` target now uses `install` instead of `cp`.
1339 Usability, bells and whistles
1340 -----------------------------
1341 * Updated Brazillian Portuguese translation.
1343 * The status and browse widgets now allow drag-and-drop into
1344 external applications.
1346 https://github.com/git-cola/git-cola/issues/335
1348 * We now show a progress bar when cloning repositories.
1350 https://github.com/git-cola/git-cola/issues/312
1352 * The bookmarks widget was simplified to not need a
1355 https://github.com/git-cola/git-cola/issues/289
1357 * Updated Traditional Chinese translation.
1359 * We now display a warning when trying to rebase with uncommitted changes.
1361 https://github.com/git-cola/git-cola/issues/338
1363 * The status widget learned to filter paths.
1364 `Ctrl+Shift+S` toggles the filter widget.
1366 https://github.com/git-cola/git-cola/issues/337
1368 https://github.com/git-cola/git-cola/pull/339
1370 * The status widget learned to move files to the trash
1371 when the `send2trash <https://github.com/hsoft/send2trash>`_
1372 module is installed.
1374 https://github.com/git-cola/git-cola/issues/341
1376 * "Recent repositories" is now a dedicated widget.
1378 https://github.com/git-cola/git-cola/issues/342
1380 * New Spanish translation thanks to Pilar Molina Lopez.
1382 https://github.com/git-cola/git-cola/pull/344
1386 * Newly added remotes are now properly seen by the fetch/push/pull dialogs.
1388 https://github.com/git-cola/git-cola/issues/343
1394 Usability, bells and whistles
1395 -----------------------------
1396 * New Brazillian Portuguese translation thanks to Vitor Lobo.
1398 * New Indonesian translation thanks to Samsul Ma'arif.
1400 * Updated Simplified Chinese translation thanks to Zhang Han.
1402 * `Ctrl+Backspace` is now a hotkey for "delete untracked files" in
1405 * Fetch/Push/Pull dialogs now use the configured remote of the current
1408 https://github.com/git-cola/git-cola/pull/324
1412 * We now use `os.getcwd()` on Python3.
1414 https://github.com/git-cola/git-cola/pull/316
1416 https://github.com/git-cola/git-cola/pull/326
1418 * The `Ctrl+P` hotkey was overloaded to both "push" and "cherry-pick",
1419 so "cherry-pick" was moved to `Ctrl+Shift+C`.
1421 * Custom GUI tools with mixed-case names are now properly supported.
1423 * "Diff Region" is now referred to as "Diff Hunk" for consistency
1424 with common terminology from diff/patch tools.
1426 https://github.com/git-cola/git-cola/issues/328
1428 * git-cola's test suite is now portable to MS Windows.
1430 https://github.com/git-cola/git-cola/pull/332
1436 Usability, bells and whistles
1437 -----------------------------
1438 * We now handle the case when inotify `add_watch()` fails
1439 and display instructions on how to increase the number of watches.
1441 https://github.com/git-cola/git-cola/issues/263
1443 * New and improved zh_TW localization thanks to V字龍(Vdragon).
1445 https://github.com/git-cola/git-cola/pull/265
1447 https://github.com/git-cola/git-cola/pull/267
1449 https://github.com/git-cola/git-cola/pull/268
1451 https://github.com/git-cola/git-cola/issues/269
1453 https://github.com/git-cola/git-cola/pull/270
1455 https://github.com/git-cola/git-cola/pull/271
1457 https://github.com/git-cola/git-cola/pull/272
1459 * New hotkeys: `Ctrl+F` for fetch, `Ctrl+P` for push,
1460 and `Ctrl+Shift+P` for pull.
1462 * The bookmarks widget's context menu actions were made clearer.
1464 https://github.com/git-cola/git-cola/issues/281
1466 * The term "Staging Area" is used consistently in the UI
1467 to allow for better localization.
1469 https://github.com/git-cola/git-cola/issues/283
1471 * The "Section" term is now referred to as "Diff Region"
1474 https://github.com/git-cola/git-cola/issues/297
1476 * The localization documentation related to the LANGUAGE
1477 environment variable was improved.
1479 https://github.com/git-cola/git-cola/pull/293
1481 * The "Actions" panel now contains tooltips for each button
1482 in case the button labels gets truncated by Qt.
1484 https://github.com/git-cola/git-cola/issues/292
1486 * Custom `git config`-defined actions can now be run in the
1487 background by setting `guitool.<name>.background` to `true`.
1491 * We now use bold fonts instead of SmallCaps to avoid
1492 artifacts on several configurations.
1494 * We now pickup `user.email`, `cola.tabwidth`, and similar settings
1495 when defined in /etc/gitconfig.
1497 https://github.com/git-cola/git-cola/issues/259
1499 * Better support for unicode paths when using inotify.
1501 https://bugzilla.redhat.com/show_bug.cgi?id=1104181
1503 * Unicode fixes for non-ascii locales.
1505 https://github.com/git-cola/git-cola/issues/266
1507 https://github.com/git-cola/git-cola/issues/273
1509 https://github.com/git-cola/git-cola/issues/276
1511 https://github.com/git-cola/git-cola/issues/282
1513 https://github.com/git-cola/git-cola/issues/298
1515 https://github.com/git-cola/git-cola/issues/302
1517 https://github.com/git-cola/git-cola/issues/303
1519 https://github.com/git-cola/git-cola/issues/305
1521 * Viewing history from the file browser was fixed for Python3.
1523 https://github.com/git-cola/git-cola/issues/274
1525 * setup.py was fixed to install the `*.rst` documentation.
1527 https://github.com/git-cola/git-cola/issues/279
1529 * Patch export was fixed for Python3.
1531 https://github.com/git-cola/git-cola/issues/290
1533 * Fixed adding a bookmark with trailing slashes.
1535 https://github.com/git-cola/git-cola/pull/295
1537 * The default `git dag` layout is now setup so that its widgets
1538 can be freely resized on Linux.
1540 https://github.com/git-cola/git-cola/issues/299
1542 * Invalid tag names are now reported when creating tags.
1544 https://github.com/git-cola/git-cola/pull/296
1550 Usability, bells and whistles
1551 -----------------------------
1552 * `git cola` no longer prompts after successfully creating a new branch.
1554 https://github.com/git-cola/git-cola/pull/251
1556 * Hitting enter on simple dialogs now accepts them.
1558 https://github.com/git-cola/git-cola/pull/255
1562 * `git dag` no longer relies on `sys.maxint`, which is
1563 not available in Python3.
1565 https://github.com/git-cola/git-cola/issues/249
1567 * Python3-related fixes.
1569 https://github.com/git-cola/git-cola/pull/254
1571 * Python3-on-Windows-related fixes.
1573 https://github.com/git-cola/git-cola/pull/250
1575 https://github.com/git-cola/git-cola/pull/252
1577 https://github.com/git-cola/git-cola/pull/253
1579 * Switching repositories using the bookmarks widget was not
1580 refreshing the inotify watcher.
1582 https://github.com/git-cola/git-cola/pull/256
1584 * Special commit messages trailers (e.g. "Acked-by:") are now special-cased to
1585 fix word wrapping lines that start with "foo:".
1587 https://github.com/git-cola/git-cola/issues/257
1589 * `git dag` sometimes left behind selection artifacts.
1590 We now refresh the view to avoid them.
1592 https://github.com/git-cola/git-cola/issues/204
1598 Usability, bells and whistles
1599 -----------------------------
1600 * Better inotify support for file creation and deletion.
1602 https://github.com/git-cola/git-cola/issues/240
1604 * `git cola` now supports the X11 Session Management Protocol
1605 and remembers its state across logout/reboot.
1607 https://github.com/git-cola/git-cola/issues/164
1609 * `git cola` has a new icon.
1611 https://github.com/git-cola/git-cola/issues/190
1615 * Building the documentation no longer requires `asciidoc`.
1616 We now use `Sphinx <http://sphinx-doc.org/>`_ for building
1617 html documentation and man pages.
1621 * Reworked the git-dag gravatar icon code to avoid a unicode
1624 * Commit message line-wrapping was made to better match the GUI editor.
1626 https://github.com/git-cola/git-cola/issues/242
1628 * Better support for Python3 on Windows
1630 https://github.com/git-cola/git-cola/issues/246
1634 * git-cola no longer depends on Asciidoc for building its documentation
1635 and man-pages. We now depend on [Sphinx](http://sphinx-doc.org/) only.
1641 Usability, bells and whistles
1642 -----------------------------
1643 * Some context menu actions are now hidden when selected
1646 https://github.com/git-cola/git-cola/issues/238
1650 * The build-git-cola.sh contrib script was improved.
1652 https://github.com/git-cola/git-cola/pull/235
1654 * Non-ascii worktrees work properly again.
1656 https://github.com/git-cola/git-cola/issues/234
1658 * The browser now guards itself against missing files.
1660 https://bugzilla.redhat.com/show_bug.cgi?id=1071378
1662 * Saving widget state now works under Python3.
1664 https://github.com/git-cola/git-cola/pull/236
1672 * git-cola now runs on Python 3 thanks to Virgil Dupras.
1674 https://github.com/git-cola/git-cola/pull/233
1676 * Python 2.6, 2.7, and 3.2+ are now supported.
1677 Python 2.5 is no longer supported.
1681 * i18n test fixes thanks to Virgil Dupras.
1683 https://github.com/git-cola/git-cola/pull/231
1685 * git-cola.app build fixes thanks to Maicon D. Filippsen.
1687 https://github.com/git-cola/git-cola/pull/230
1689 * Lots of pylint improvements thanks to Alex Chernetz.
1691 https://github.com/git-cola/git-cola/pull/229
1697 Usability, bells and whistles
1698 -----------------------------
1699 * The new `Bookmarks` tool makes it really easy to switch between repositories.
1701 * There is now a dedicated dialog for applying patches.
1702 See the ``File -> Apply Patches`` menu item.
1704 https://github.com/git-cola/git-cola/issues/215
1706 * A new `git cola am` sub-command was added for applying patches.
1710 * Fixed a typo that caused inotify events to be silently ignored.
1712 * Fixed the sys.path setup for Mac OS X (Homebrew).
1714 https://github.com/git-cola/git-cola/issues/221
1716 * Lots of pylint fixes thanks to Alex Chernetz.
1722 Usability, bells and whistles
1723 -----------------------------
1724 * `git cola --amend` now starts the editor in `amend` mode.
1726 https://github.com/git-cola/git-cola/issues/187
1728 * Multiple lines of text can now be pasted into the `summary` field.
1729 All text beyond the first newline will be automatically moved to the
1730 `extended description` field.
1732 https://github.com/git-cola/git-cola/issues/212
1736 * Stray whitespace in `.git` files is now ignored.
1738 https://github.com/git-cola/git-cola/issues/213
1740 * Fix "known incorrect sRGB profile" in `staged-item.png`.
1742 http://comments.gmane.org/gmane.linux.gentoo.devel/85066
1750 * Fix a traceback when `git push` fails.
1752 https://bugzilla.redhat.com/show_bug.cgi?id=1034778
1756 * Most of the git-cola sub-packages have been removed.
1757 The only remaining packages are `cola`, `cola.models`,
1760 * The translation file for Simplified Chinese was renamed
1763 https://github.com/git-cola/git-cola/issues/209
1771 * `git cola version --brief` now prints the brief version number.
1775 * Resurrected the "make dist" target, for those that prefer to create
1778 * Fixed the typo that broke the preferences dialog.
1784 Usability, bells and whistles
1785 -----------------------------
1786 * We now ship a full-featured interactive `git rebase` editor.
1787 The rebase todo file is edited using the `git xbase` script which
1788 is provided at `$prefix/share/git-cola/bin/git-xbase`.
1789 This script can be used standalone by setting the `$GIT_SEQUENCE_EDITOR`
1790 before running `git rebase --interactive`.
1792 https://github.com/git-cola/git-cola/issues/1
1794 * Fixup commit messages can now be loaded from the commit message editor.
1796 * Tool widgets can be locked in place by using the "Tools/Lock Layout"
1799 https://github.com/git-cola/git-cola/issues/202
1801 * You can now push to several remotes simultaneously by selecting
1802 multiple remotes in the "Push" dialog.
1804 https://github.com/git-cola/git-cola/issues/148
1806 * The `grep` tool learned to search using three different modes:
1807 basic regular expressions (default), extended regular expressions,
1812 * `git cola` now depends on the `argparse` Python module.
1813 This module is part of the stdlib in Python 2.7 and must
1814 be installed separately when using Python 2.6 and below.
1818 * Support unicode in the output from `fetch`, `push`, and `pull`.
1824 Usability, bells and whistles
1825 -----------------------------
1826 * We now detect when the editor or history browser are misconfigured.
1828 https://github.com/git-cola/git-cola/issues/197
1830 https://bugzilla.redhat.com/show_bug.cgi?id=886826
1832 * Display of untracked files can be disabled from the Preferences dialog
1833 or by setting the `gui.displayuntracked` configuration variable to `false`.
1835 http://thread.gmane.org/gmane.comp.version-control.git/232683
1839 * Unicode stash names are now supported
1841 https://github.com/git-cola/git-cola/issues/198
1843 * The diffs produced when reverting workspace changes were made more robust.
1848 =======================
1849 Usability, bells and whistles
1850 -----------------------------
1851 * Brand new German translation thanks to Sven Claussner.
1853 * The "File" menu now provides a "New Repository..." menu action.
1855 * `git dag` now uses a dock-widget interface so that its widgets can
1856 be laid-out and arranged. Customizations are saved and restored
1857 the next time `git dag` is launched.
1859 * `git dag` now has a "Zoom Best Fit" button next alongside the
1860 "Zoom In" and "Zoom Out" buttons.
1862 * `Ctrl+L` now focuses the "Search" field in the `git dag` tool.
1864 * Right-clicking in the "diff" viewer now updates the cursor position
1865 before performing actions, which makes it much easier to click around
1866 and selectively stage sections. Previously, the current cursor position
1867 was used which meant that it required two clicks (left-click to update
1868 the position followed by right-click to get the context menu) for the
1869 desired section to be used. This is now a single right-click operation.
1871 * The `Ctrl+D` "Launch Diff Tool" action learned to automatically choose
1872 between `git difftool` and `git mergetool`. If the file is unmerged then
1873 we automatically launch `git mergetool` on the path, otherwise we use
1874 `git difftool`. We do this because `git difftool` is not intended to
1875 be used on unmerged paths. Automatically using `git mergetool` when
1876 appropriate is the most intuitive and muscle-memory-friendly thing to do.
1878 * You can now right-click on folders in your standard file browser
1879 and choose "Open With -> Git Cola" (Linux-only).
1883 * Python 2.6 on Mac OS X Snow Leopard does not provide a namedtuple
1884 at `sys.version_info`. We now avoid using that variable for better
1887 * We now read the user's Git configuration from `~/.config/git/config`
1888 if that file is available, otherwise we use the traditional `~/.gitconfig`
1889 path, just like Git itself.
1891 * Some edge cases were fixed when applying partial/selected diffs.
1893 * The diff viewer is now properly cleared when refreshing.
1895 https://github.com/git-cola/git-cola/issues/194
1901 Usability, bells and whistles
1902 -----------------------------
1903 * The diff viewer now has an "Options" menu which can be
1904 used to set "git diff" options. This can be used to
1905 ignore whitespace changes or to show a change with its
1906 surrounding function as context.
1908 https://github.com/git-cola/git-cola/issues/150
1910 * `git cola` now remembers your commit message and will restore it
1911 when `git cola` is restarted.
1913 https://github.com/git-cola/git-cola/pull/175
1915 * `Ctrl+M` can now be used to toggle the "Amend last commit"
1916 checkbox in the commit message editor.
1918 https://github.com/git-cola/git-cola/pull/161
1920 * Deleting remote branches can now be done from the "Branch" menu.
1922 https://github.com/git-cola/git-cola/issues/152
1924 * The commit message editor now has a built-in spell checker.
1928 * We now avoid invoking external diffs when showing diffstats.
1930 https://github.com/git-cola/git-cola/pull/163
1932 * The `Status` tool learned to reselect files when refreshing.
1934 https://github.com/git-cola/git-cola/issues/165
1936 * `git cola` now remembers whether it has been maximized and will restore the
1937 maximized state when `git cola` is restarted.
1939 https://github.com/git-cola/git-cola/issues/172
1941 * Performance is now vastly improved when staging hundreds or
1944 * `git cola` was not correctly saving repo-specific configuration.
1946 https://github.com/git-cola/git-cola/issues/174
1948 * Fix a UnicodeDecode in sphinxtogithub when building from source.
1954 Usability, bells and whistles
1955 -----------------------------
1956 * We now automatically remove missing repositories from the
1957 "Select Repository" dialog.
1959 https://github.com/git-cola/git-cola/issues/145
1961 * A new `git cola diff` sub-command was added for diffing changed files.
1965 * The inotify auto-refresh feature makes it difficult to select text in
1966 the "diff" editor when files are being continually modified by another
1967 process. The auto-refresh causes it to lose the currently selected text,
1968 which is not wanted. We now avoid this problem by saving and restoring
1969 the selection when refreshing the editor.
1971 https://github.com/git-cola/git-cola/issues/155
1973 * More strings have been marked for l10n.
1975 https://github.com/git-cola/git-cola/issues/157
1977 * Fixed the Alt+D Diffstat shortcut.
1979 https://github.com/git-cola/git-cola/issues/159
1983 * Better error handling when cloning repositories.
1985 We were not handling the case where a git URL has
1986 no basename, e.g. `https://git.example.com/`.
1987 `git cola` originally rejected these URLs instead of
1988 allowing users to clone them. It now allows these URLs
1989 when they point to valid git repositories.
1991 Additionally, `git cola` learned to echo the errors
1992 reported by `git clone` when it fails.
1994 https://github.com/git-cola/git-cola/issues/156
2000 Usability, bells and whistles
2001 -----------------------------
2002 * `git dag` got a big visual upgrade.
2004 * `Ctrl+G` now launches the "Grep" tool.
2006 * `Ctrl+D` launches difftool and `Ctrl+E` launches your editor
2007 when in the diff panel.
2009 * git-cola can now be told to use an alternative language.
2010 For example, if the native language is German and we want git-cola to
2011 use English then we can create a `~/.config/git-cola/language` file with
2012 "en" as its contents:
2014 $ echo en >~/.config/git-cola/language
2016 https://github.com/git-cola/git-cola/issues/140
2018 * A new `git cola merge` sub-command was added for merging branches.
2020 * Less blocking in the main UI
2024 * Autocomplete issues on KDE
2026 https://github.com/git-cola/git-cola/issues/144
2028 * The "recently opened repositories" startup dialog did not
2029 display itself in the absence of bookmarks.
2031 https://github.com/git-cola/git-cola/issues/139
2037 Usability, bells and whistles
2038 -----------------------------
2039 * `git cola` learned to honor `.gitattributes` when showing and
2040 interactively applying diffs. This makes it possible to store
2041 files in git using a non-utf-8 encoding and `git cola` will
2042 properly accept them. This must be enabled by settings
2043 `cola.fileattributes` to true, as it incurs a small performance
2046 https://github.com/git-cola/git-cola/issues/96
2048 * `git cola` now wraps commit messages at 72 columns automatically.
2049 This is configurable using the `cola.linebreak` variable to enable/disable
2050 the feature, and `cola.textwidth` to configure the limit.
2052 https://github.com/git-cola/git-cola/issues/133
2054 * A new "Open Recent" sub-menu was added to the "File" menu.
2055 This makes it easy to open a recently-edited repository.
2057 https://github.com/git-cola/git-cola/issues/135
2059 * We now show a preview for untracked files when they are clicked
2060 using the `Status` tool.
2061 * A new "Open Using Default Application" action was added to the
2062 `Status` tool. It is activated using either `Spacebar` or through
2063 the context menu. This action uses `xdg-open` on Linux and
2065 * A new "Open Parent Directory" action was added to the `Status` tool.
2066 It is activated using either `Shift+Spacebar` or through the
2068 * `git dag` learned to honor the `log.date` git configuration variable.
2069 This makes the date display follow whatever format the user has
2071 * A new `git cola config` sub-command was added for quickly
2072 tweaking `git cola`'s git configuration settings.
2073 * Some small usability tweaks -- some user confirmation prompts
2074 were defaulting to "Cancel" when they should have been defaulting
2075 to the affirmative option instead.
2079 * Properly handle arbitrarily-named branches.
2080 * We went back to launching `git mergetool` using an xterm.
2081 The reason is that there are a couple of places where `git mergetool`
2082 requires a terminal for user interaction not covered by `--no-prompt`.
2083 * We now properly handle an edge case when applying short diffs at
2084 the start of a file.
2090 Usability, bells and whistles
2091 -----------------------------
2092 * New and improved `grep` mode lets you instantly find and edit files.
2093 * New `git cola grep` standalone mode.
2094 * Support for passing arguments to the configured editors, e.g. `gvim -p`
2095 This makes it possible to select multiple files in the status
2096 window and use `Ctrl-e` to edit them all at once.
2097 * Remote operations now prompt on errors only.
2098 * The `Tab` key now jumps to the extended description when editing the summary.
2099 * More shortcut key labels and misc. UX improvements.
2103 * Selecting an item no longer copies its filename to the copy/paste buffer.
2104 `Ctrl-c` or the "Copy" context-menu action can be used instead.
2105 * The repository monitoring feature on Windows learned to ignore
2106 changes within the ".git" directory. Thanks to Andreas Sommer.
2108 https://github.com/git-cola/git-cola/issues/120
2114 Usability, bells and whistles
2115 -----------------------------
2116 * `git dag` learned to color-code branchy edges.
2117 The edge colors change when a new branch is detected,
2118 which makes the history much easier to follow.
2119 A huge thanks to Uri Okrent for making it happen.
2121 * New GUI for editing remote repositories.
2123 * New `git cola archive` and `git cola remote` sub-commands.
2125 * `git cola browser` learned an 'Untrack' command.
2127 * The diff editor learned to staged/unstaged while amending.
2129 * The status tool can now scroll horizontally.
2131 * New git repositories can be created by clicking 'New' on the
2132 `git cola --prompt` startup screen.
2138 Usability, bells and whistles
2139 -----------------------------
2140 * Auto-completion was added to more tools.
2142 * `git dag` is easier to use on smaller displays -- the author
2143 field elides its text which allows for a more compact display.
2145 * Selected commits in `git dag` were made more prominent and
2148 * 'Create Branch' learned to fetch remote branches and uses a
2149 background thread to do so.
2151 * User-configured GUI tools are listed alphabetically in the 'Actions' menu.
2153 * The 'Pull' dialog remembers the value of the 'Rebase' checkbox
2154 between invocations.
2162 * Detect Homebrew so that OS X users do not need to set PYTHONPATH.
2164 * `git dag` can export patches again.
2170 Usability, bells and whistles
2171 -----------------------------
2172 * The 'Classic' tool was renamed to 'Browser' and learned to
2173 limit history to the current branch.
2175 * `git dag` learned about gravatar and uses it to show images
2178 * `git dag` learned to use OpenGL for rendering resulting in
2179 much faster rendering.
2181 * More dialogs learned vim-style keyboard shortcuts.
2183 * The commit message editor learned better arrow key navigation.
2189 Usability, bells and whistles
2190 -----------------------------
2191 * `git cola` learned a few new sub commands:
2199 * `Return` in the summary field jumps to the extended description.
2201 * `Ctrl+Return` is now a shortcut for 'Commit'.
2203 * Better French translation for 'Sign-off'.
2205 * The 'Search' widget now has a much simpler and streamlined
2208 * vim-style `h,j,k,l` navigation shortcuts were added to the DAG widget.
2210 * `git dag` no longer prompts for files when diffing commits if the
2211 text field contains paths.
2213 * General user interface and performance improvements.
2217 * The diff viewer no longer changes font size when holding `Control`
2218 while scrolling with the mouse wheel.
2220 * Files with a typechange (e.g. symlinks that become files, etc.)
2221 are now correctly identified as being modified.
2225 * The `cola.controllers` and `cola.views` packages were removed.
2231 Usability, bells and whistles
2232 -----------------------------
2233 * `git cola` can now launch sub commands, e.g.:
2244 * `git dag` is more responsive when gathering auto-completions.
2246 * Keyboard shortcuts are displayed when the '?' key is pressed.
2248 * Various keyboard shortcuts were added for improved usability.
2250 * The status widget now lists unmerged files before modified files.
2252 * vim-style `h,j,k,l` navigation shortcuts were added to the status widget.
2254 * A 'Recently Modified Files...' tool was added.
2256 * Tools can now be hidden with `Alt + #` (where `#` is a keyboard number)
2257 and focused with `Alt + Shift + #`.
2259 * The syntax highlighting colors for diffs was made less intrusive.
2261 * The commit message editor was redesigned to have a more compact
2262 and keyboard-convenient user interface.
2264 * Keyboard shortcuts for adding a Signed-off-by (`Ctrl + i`)
2265 and creating a commit (`Ctrl + m`) were added.
2267 * The status widget was adjusted to use less screen real-estate.
2271 * Avoid updating the index when responding to inotify events.
2272 This avoids interfering with operations such as `git rebase --interactive`.
2274 https://github.com/git-cola/git-cola/issues/99
2278 * Create `git-dag.pyw` in the win32 installer.
2280 * win32 shortcuts now contain explicit calls to `pythonw.exe` instead of
2281 calling the `.pyw` file directly.
2285 * The 'Apply Changes from Branch...' feature was removed.
2286 `git dag`'s 'Grab File...' feature used alongside the index/worktree editor
2287 is a simpler alternative.
2295 * Further enhanced the staging/unstaging behavior in the status widget.
2297 https://github.com/git-cola/git-cola/issues/97
2299 * Unmerged files are no longer listed as modified.
2303 The `cola-$version` tarballs on github were originally setup to
2304 have the same contents as the old tarballs hosted on tuxfamily.
2305 The `make dist` target was changed to write files to a
2306 `git-cola-$version` subdirectory and tarball.
2308 This makes the filenames consistent for the source tarball,
2309 the darwin .app tarball, and the win32 .exe installer.
2315 Usability, bells and whistles
2316 -----------------------------
2317 * Refined the staging/unstaging behavior for code reviews.
2319 https://github.com/git-cola/git-cola/issues/97
2321 * Added more styling and icons to menus and buttons.
2323 * Adjusted some terminology to more closely match the git CLI.
2327 * Boolean `git config` settings with no value are now supported
2328 (these are not created by git these days but exist in legacy repositories).
2330 * Unicode branches and tags are supported in the "branch diff" tool.
2332 * Guard against low-memory conditions and more interrupted system calls.
2336 * Added desktop launchers for git-cola.desktop and git-dag.desktop.
2337 This replaces the old cola.desktop, so some adjustments to RPM .spec
2338 and debian/ files will be needed.
2340 * Fixed the darwin app-tarball Makefile target to create relative paths.
2344 * The `--style` option was removed. `git cola` follows the system theme
2345 so there's no need for this option these days.
2351 Usability, bells and whistles
2352 -----------------------------
2353 * Export a patch series from `git dag` into a `patches/` directory.
2355 * `git dag` learned to diff commits, slice history along paths, etc.
2357 * Added instant-preview to the `git stash` widget.
2359 * A simpler preferences editor is used to edit `git config` values.
2361 https://github.com/git-cola/git-cola/issues/90
2363 https://github.com/git-cola/git-cola/issues/89
2365 * Previous commit messages can be re-loaded from the message editor.
2367 https://github.com/git-cola/git-cola/issues/33
2371 * Display commits with no file changes.
2373 https://github.com/git-cola/git-cola/issues/82
2375 * Improved the diff editor's copy/paste behavior
2377 https://github.com/git-cola/git-cola/issues/90
2381 * Bumped version number to ceil(minimum git version).
2382 `git cola` now requires `git` >= 1.6.3.
2384 * Simplified git-cola's versioning when building from tarballs
2385 outside of git. We no longer check for a 'version' file at
2386 the root of the repository. We instead keep a default version
2387 in `cola/version.py` and use it when `git cola`'s `.git` repository
2394 Usability, bells and whistles
2395 -----------------------------
2396 * inotify is much snappier and available on Windows
2397 thanks to Karl Bielefeldt.
2399 * New right-click command to add untracked files to .gitignore
2400 thanks to Audrius Karabanovas.
2402 * Stash, fetch, push, and pull usability improvements
2404 * General usability improvements
2406 * stderr is logged when applying partial diffs.
2410 * Files can be unstaged when amending.
2412 https://github.com/git-cola/git-cola/issues/82
2414 * Show the configured remote.$remote.pushurl in the GUI
2416 https://github.com/git-cola/git-cola/issues/83
2418 * Removed usage of the "user" module.
2420 https://github.com/git-cola/git-cola/issues/86
2422 * Avoids an extra `git update-index` call during startup.
2429 Usability, bells and whistles
2430 -----------------------------
2431 * We now provide better feedback when `git push` fails.
2433 https://github.com/git-cola/git-cola/issues/69
2435 * The Fetch, Push, and Pull dialogs now give better feedback
2436 when interacting with remotes. The dialogs are modal and
2437 a progress dialog is used.
2441 * More unicode fixes, again. It is now possible to have
2442 unicode branch names, repository paths, home directories, etc.
2443 This continued the work initiated by Redhat's bugzilla #694806.
2445 https://bugzilla.redhat.com/show_bug.cgi?id=694806
2451 Usability, bells and whistles
2452 -----------------------------
2453 * The `git cola` desktop launchers now prompt for a repo
2454 by default. This is done by using the new `--prompt`
2455 flag which tells `git cola` to ignore any git repositories
2456 in the current directory and prompt for one instead.
2460 * More Unicode fixes for repositories and home directories with
2461 embedded unicode characters. Thanks to Christian Jann for
2462 patience and helpful bug reports.
2464 * Fix the 'Clone' button in the startup dialog.
2470 Usability, bells and whistles
2471 -----------------------------
2472 * Faster startup time! `git cola` now offloads initialization
2473 to a background thread so that the GUI appears almost instantly.
2475 * Specialized diff options for p4merge, vimdiff, araxis, emerge,
2476 and ecmerge in difftool (backported from git.git).
2480 * Fix launching commands in the background on Windows
2481 (e.g. when launching `git difftool`).
2483 * Fix unicode errors when home or repository directories contain
2486 https://github.com/git-cola/git-cola/issues/74
2488 Redhat's bugzilla #694806
2490 https://bugzilla.redhat.com/show_bug.cgi?id=694806
2496 Usability, bells and whistles
2497 -----------------------------
2498 * The `cola classic` tool can be now configured to be dockable.
2500 https://github.com/git-cola/git-cola/issues/56
2502 * The `cola classic` tool now uses visual sigils to indicate a file's status.
2503 The idea and icons were provided by Uri Okrent.
2505 * Include the 'Rescan' button in the 'Actions' widget regardless
2506 of whether inotify is installed.
2510 * Fix installation of translations per Fedora
2511 This incorporates Fedora's fix for the translations path
2512 which originally appeared in cola-1.4.3-translations.patch.
2514 * Mac OS X git-cola developers can now generate git-cola.app
2515 application bundles using 'make app-bundle'.
2519 * Fixed a stacktrace when trying to use "Get Commit Message Template"
2520 with an unconfigured "commit.template" git config variable.
2522 https://github.com/git-cola/git-cola/issues/72
2524 This bug originated in Redhat's bugzilla #675721 via a Fedora user.
2526 https://bugzilla.redhat.com/show_bug.cgi?id=675721
2528 * Properly raise the main window on Mac OS X.
2530 * Properly handle staging a huge numbers of files at once.
2532 * Speed up 'git config' usage by fixing cola's caching proxy.
2534 * Guard against damaged ~/.cola files.
2540 Usability, bells and whistles
2541 -----------------------------
2542 * `git dag` now has a separate display area
2543 for displaying commit metadata. This area will soon
2544 grow additional functionality such as cherry-picking,
2549 * Fixed tests from a previous refactoring.
2551 * Guard against 'diff.external' configuration by always
2552 calling 'git diff' with the '--no-ext-diff' option.
2554 https://github.com/git-cola/git-cola/issues/67
2556 * Respect 'gui.diffcontext' so that cola's diff display
2557 shows the correct number of context lines.
2559 * Raise the GUI so that it is in the foreground on OS X.
2563 * We now allow distutils to rewrite cola's shebang line.
2564 This allows us to run on systems where "which python"
2565 is Python3k. This is exposed by setting the `PYTHON`
2566 Makefile variable to the location of python2.x.
2568 * git-cola.app is now a tiny download because it no longer
2569 contains Qt and PyQt. These libraries are provided as a
2572 http://code.google.com/p/git-cola/downloads/list
2578 Usability, bells and whistles
2579 -----------------------------
2580 * Clicking on paths in the status widget copies them into the
2581 copy/paste buffer for easy middle-clicking into terminals.
2583 * `Ctrl+C` in diff viewer copies the selected diff to the clipboard.
2587 * Fixed the disappearing actions buttons on PyQt 4.7.4
2588 as reported by Arch and Ubuntu 10.10.
2590 https://github.com/git-cola/git-cola/issues/62
2592 * Fixed mouse interaction with the status widget where some
2593 items could not be de-selected.
2597 * Removed hard-coded reference to lib/ when calculating Python's
2598 site-packages directory.
2604 Usability, bells and whistles
2605 -----------------------------
2606 * Removed "single-click to (un)stage" in the status view.
2607 This is a usability improvement since we no longer perform
2608 different actions depending on where a row is clicked.
2610 * Added ability to create unsigned, annotated tags.
2614 * Updated documentation to use `cola.git` instead of `cola.gitcmd`.
2620 Usability, bells and whistles
2621 -----------------------------
2622 * Allow un/staging by right-clicking top-level items
2624 https://github.com/git-cola/git-cola/issues/57
2626 * Running 'commit' with no staged changes prompts to allow
2629 https://github.com/git-cola/git-cola/issues/55
2631 * Fetch, Push, and Pull are now available via the menus
2633 https://github.com/git-cola/git-cola/issues/58
2637 * Simplified the actions widget to work around a regression
2640 https://github.com/git-cola/git-cola/issues/62
2646 Usability, bells and whistles
2647 -----------------------------
2648 * `git dag` interaction was made faster.
2652 * Added '...' indicators to the buttons for
2653 'Fetch...', 'Push...', 'Pull...', and 'Stash...'.
2655 https://github.com/git-cola/git-cola/issues/51
2657 * Fixed a hang-on-exit bug in the cola-provided
2658 'ssh-askpass' implementation.
2664 Usability, bells and whistles
2665 -----------------------------
2666 * Staging and unstaging is faster.
2668 https://github.com/git-cola/git-cola/issues/48
2670 * `git dag` reads history in a background thread.
2674 * Added :data:`cola.compat.hashlib` for `Python 2.4` compatibility
2675 * Improved `PyQt 4.1.x` compatibility.
2679 * Configured menu actions use ``sh -c`` for Windows portability.
2686 Usability, bells and whistles
2687 -----------------------------
2688 * Added support for the configurable ``guitool.<tool>.*``
2689 actions as described in ``git-config(1)``.
2691 https://github.com/git-cola/git-cola/issues/44
2693 http://schacon.github.com/git/git-config.html
2695 This makes it possible to add new actions to `git cola`
2696 by simply editing ``~/.gitconfig``. This implements the
2697 same guitool support as `git gui`.
2698 * Introduced a stat cache to speed up `git config` and
2699 repository status checks.
2700 * Added Alt-key shortcuts to the main `git cola` interface.
2701 * The `Actions` dock widget switches between a horizontal
2702 and vertical layout when resized.
2703 * We now use ``git diff --submodule`` for submodules
2704 (used when git >= 1.6.6).
2705 * The context menu for modified submodules includes an option
2706 to launch `git cola`.
2708 https://github.com/git-cola/git-cola/issues/17
2710 * Prefer ``$VISUAL`` over ``$EDITOR`` when both are defined.
2711 These are used to set a default editor in lieu of `core.editor`
2713 * Force the editor to be ``gvim`` when we see ``vim``.
2714 This prevents us from launching an editor in the (typically
2715 unattached) parent terminal and creating zombie editors
2716 that cannot be easily killed.
2717 * Selections are remembered and restored across updates.
2718 This makes the `partial-staging` workflow easier since the
2719 diff view will show the updated diff after staging.
2720 * Show the path to the current repository in a tooltip
2721 over the commit message editor.
2723 https://github.com/git-cola/git-cola/issues/45
2725 * Log internal ``git`` commands when ``GIT_COLA_TRACE`` is defined.
2727 https://github.com/git-cola/git-cola/issues/39
2731 * Improved backwards compatibility for Python 2.4.
2732 * `Review mode` can now review the current branch; it no longer
2733 requires you to checkout the branch into which the reviewed
2734 branch will be merged.
2735 * Guard against `color.ui = always` configuration when using
2736 `git log` by passing ``--no-color``.
2737 * ``yes`` and ``no`` are now supported as valid booleans
2738 by the `git config` parser.
2739 * Better defaults are used for `fetch`, `push`, and `pull`..
2741 https://github.com/git-cola/git-cola/issues/43
2745 * Removed colon (`:`) from the applilcation name on Windows
2747 https://github.com/git-cola/git-cola/issues/41
2749 * Fixed bugs with the Windows installer
2751 https://github.com/git-cola/git-cola/issues/40
2753 * Added a more standard i18n infrastructure. The install
2754 tree now has the common ``share/locale/$lang/LC_MESSAGES/git-cola.mo``
2755 layout in use by several projects.
2757 * Started trying to accommodate Mac OSX 10.6 (Snow Leopard)
2758 in the ``darwin/`` build scripts but our tester is yet to
2759 report success building a `.app` bundle.
2761 * Replaced use of ``perl`` in Sphinx/documentation Makefile
2762 with more-portable ``sed`` constructs. Thanks to
2763 Stefan Naewe for discovering the portability issues and
2764 providing msysgit-friendly patches.
2770 Usability, bells and whistles
2771 -----------------------------
2772 * It is now possible to checkout from the index as well
2773 as from `HEAD`. This corresponds to the
2774 `Removed Unstaged Changes` action in the `Repository Status` tool.
2775 * The `remote` dialogs (fetch, push, pull) are now slightly
2777 * Bookmarks can be selected when `git cola` is run outside of a git repository.
2778 * Added more user documentation. We now include many links to
2779 external git resources.
2780 * Added `git dag` to the available tools.
2781 `git dag` is a node-based DAG history browser.
2782 It doesn't do much yet, but it's been merged so that we can start
2783 building and improving upon it.
2787 * Fixed a missing ``import`` when showing `right-click` actions
2788 for unmerged files in the `Repository Status` tool.
2789 * ``git update-index --refresh`` is no longer run every time
2790 ``git cola version`` is run.
2791 * Don't try to watch non-existent directories when using `inotify`.
2792 * Use ``git rev-parse --symbolic-full-name`` plumbing to find
2793 the name of the current branch.
2797 * The ``Makefile`` will now conditionally include a ``config.mak``
2798 file located at the root of the project. This allows for user
2799 customizations such as changes to the `prefix` variable
2800 to be stored in a file so that custom settings do not need to
2801 be specified every time on the command-line.
2802 * The build scripts no longer require a ``.git`` directory to
2803 generate the ``builtin_version.py`` module. The release tarballs
2804 now include a ``version`` file at the root of the project which
2805 is used in lieu of having the git repository available.
2806 This allows for ``make clean && make`` to function outside of
2808 * Added maintainer's ``make dist`` target to the ``Makefile``.
2809 * The built-in `simplejson` and `jsonpickle` libraries can be
2810 excluded from ``make install`` by specifying the ``standalone=true``
2811 `make` variable. For example, ``make standalone=true install``.
2812 This corresponds to the ``--standalone`` option to ``setup.py``.
2819 Usability, bells and whistles
2820 -----------------------------
2821 * We now use patience diff by default when it is available via
2822 `git diff --patience`.
2823 * Allow closing the `cola classic` tool with `Ctrl+W`.
2827 * Fixed an unbound variable error in the `push` dialog.
2831 * Don't include `simplejson` in MANIFEST.in.
2832 * Update desktop entry to read `Cola Git GUI`.
2839 This feature release adds two new features directly from
2840 `git cola`'s github issues backlog. On the developer
2841 front, further work was done towards modularizing the code base.
2843 Usability, bells and whistles
2844 -----------------------------
2845 * Dragging and dropping patches invokes `git am`
2847 https://github.com/git-cola/git-cola/issues/3
2849 * A dialog to allow opening or cloning a repository
2850 is presented when `git cola` is launched outside of a git repository.
2852 https://github.com/git-cola/git-cola/issues/22
2854 * Warn when `push` is used to create a new branch
2856 https://github.com/git-cola/git-cola/issues/35
2858 * Optimized startup time by removing several calls to `git`.
2863 * `git cola` is once again compatible with PyQt 4.3.x.
2867 * `cola.gitcmds` was added to factor out git command-line utilities
2868 * `cola.gitcfg` was added for interacting with `git config`
2869 * `cola.models.browser` was added to factor out repobrowser data
2879 * Fix launching external applications on Windows
2880 * Ensure that the `amend` checkbox is unchecked when switching modes
2881 * Update the status tree when amending commits
2890 * Fix Lintian warnings
2899 * Fix X11 warnings on application startup
2908 * Added missing 'Exit Diff Mode' button for 'Diff Expression' mode
2910 https://github.com/git-cola/git-cola/issues/31
2912 * Fix a bug when initializing fonts on Windows
2914 https://github.com/git-cola/git-cola/issues/32
2923 * Keep entries in sorted order in the `cola classic` tool
2924 * Fix staging untracked files
2926 https://github.com/git-cola/git-cola/issues/27
2928 * Fix the `show` command in the Stash dialog
2930 https://github.com/git-cola/git-cola/issues/29
2932 * Fix a typo when loading merge commit messages
2934 https://github.com/git-cola/git-cola/issues/30
2941 This release focuses on a redesign of the git-cola user interface,
2942 a tags interface, and better integration of the `cola classic` tool.
2943 A flexible interface based on configurable docks is used to manage the
2944 various cola widgets.
2946 Usability, bells and whistles
2947 -----------------------------
2948 * New GUI is flexible and user-configurable
2949 * Individual widgets can be detached and rearranged arbitrarily
2950 * Add an interface for creating tags
2951 * Provide a fallback `SSH_ASKPASS` implementation to prompt for
2952 SSH passwords on fetch/push/pull
2953 * The commit message editor displays the current row/column and
2954 warns when lines get too long
2955 * The `cola classic` tool displays upstream changes
2956 * `git cola --classic` launches `cola classic` in standalone mode
2957 * Provide more information in log messages
2961 * Inherit the window manager's font settings
2962 * Miscellaneous PyQt4 bug fixes and workarounds
2966 * Removed all usage of Qt Designer `.ui` files
2967 * Simpler model/view architecture
2968 * Selection is now shared across tools
2969 * Centralized notifications are used to keep views in sync
2970 * The `cola.git` command class was made thread-safe
2971 * Less coupling between model and view actions
2972 * The status view was rewritten to use the MVC architecture
2973 * Added more documentation and tests
2980 Usability, bells and whistles
2981 -----------------------------
2982 * Added a `cola classic` tool for browsing the entire repository
2983 * Handle diff expressions with spaces
2984 * Handle renamed files
2988 * Handle carat `^` characters in diff expressions on Windows
2989 * Worked around a PyQt 4.5/4.6 QThreadPool bug
2993 * Added a keyboard shortcuts reference page
2994 * Added developer API documentation
2998 * Fix the diff expression used when reviewing branches
2999 * Fix a bug when pushing branches
3000 * Fix X11 warnings at startup
3001 * Fix more interrupted system calls on Mac OS X
3008 Usability, bells and whistles
3009 -----------------------------
3010 * Fresh and tasty SVG logos
3011 * Added `Branch Review` mode for reviewing topic branches
3012 * Added diff modes for diffing between tags, branches,
3013 or arbitrary `git diff` expressions
3014 * The push dialog selects the current branch by default.
3015 This is in preparation for `git 1.7.0` where unconfigured `git push`
3016 will refuse to push when run without specifying the remote name
3017 and branch. See the `git` release notes for more information
3018 * Support `open` and `clone` commands on Windows
3019 * Allow saving cola UI layouts
3020 * Re-enabled `double-click-to-stage` for unmerged entries.
3021 Disabling it for unmerged items was inconsistent, though safer.
3022 * Show diffs when navigating the status tree with the keyboard
3026 * Worked around `pyuic4` bugs in the `setup.py` build script
3027 * Added Mac OSX application bundles to the download page
3036 * `git difftool` became an official git command in `git 1.6.3`.
3037 * `git difftool` learned `--no-prompt` / `-y` and a corresponding
3038 `difftool.prompt` configuration variable
3040 Usability, bells and whistles
3041 -----------------------------
3042 * Warn when `non-fast-forward` is used with fetch, push or pull
3043 * Allow `Ctrl+C` to exit cola when run from the command line
3047 * Support Unicode font names
3048 * Handle interrupted system calls
3052 * `PEP-8`-ified more of the cola code base
3057 * All resources are now installed into `$prefix/share/git-cola`.
3058 Closed Debian bug #519972
3060 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=519972
3069 * Added support for Kompare in `git difftool`
3070 * Added a separate configuration namespace for `git difftool`
3071 * Added the `diff.tool` configuration variable to define the default diff tool
3073 Usability, bells and whistles
3074 -----------------------------
3075 * The stash dialog allows passing the `--keep-index` option to `git stash`
3076 * Amending a published commit warns at commit time
3077 * Simplified the file-across-revisions comparison dialog
3078 * `origin` is selected by default in fetch/push/pull
3079 * Removed the search field from the log widget
3080 * The log window moved into a drawer widget at the bottom of the UI
3081 * Log window display can be configured with
3082 `cola.showoutput` = `{never, always, errors}`. `errors` is the default.
3083 * `NOTE` -- `cola.showoutput` was removed with the GUI rewrite in 1.4.0.
3087 * Improved nose unittest usage
3091 * Added a Windows/msysGit installer
3092 * Included private versions of `simplejson` and `jsonpickle`
3093 for ease of installation and development