8 :ref:`v3.0 <v3.0>` 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 -----------------------------
25 * The "Browser" widget learned to rename files using "git mv".
27 https://github.com/git-cola/git-cola/issues/239
29 * The "Diff" widget learned to diff images. Side-by-side and pixel diff
30 modes allow you to inspect changes to common images formats.
32 https://github.com/git-cola/git-cola/issues/444
34 * Git LFS and Git Annex are natively supported by the image diff viewer.
36 * Git Annex operations are now included. `git annex init` can be performed on
37 repositories, and `git annex add` can be run on untracked files from the
38 status widget. Install `git-annex` to activate this feature.
40 * Git LFS operations are now included. `git lfs install` can be performed on
41 repositories, and `git lfs track` can be run on untracked files from the
42 status widget. Install `git-lfs` to activate this feature.
44 * The "Stash" tool learned to stash staged changes only. Select the
45 "Stage Index" option and only staged changes will be stashed away.
47 https://github.com/git-cola/git-cola/issues/413
49 * The "Stash" tool learned to use vim-like navigation keyboard shortcuts,
50 shows error messages when things go wrong, and now saves the "Stash Index"
51 and "Keep Index" options across sessions.
53 * The Edit menu's "Copy" and "Select All" actions now forward to either the
54 diff, status, recent, or favorites widgets, based on which widget has focus.
56 * The "File" and "Edit" menu can now be activated using `Alt-{f,e}` hotkeys.
58 https://github.com/git-cola/git-cola/issues/759
60 * It was easy to accidentally trigger the first action in the `Status` tool's
61 context menu when using a quick right-click to bring up the menu.
62 A short sub-second delay was added to ensure that the top-most action is not
63 triggered unless enough time has passed. This prevents accidental
64 activation of the first item (typically "Stage" or "Unstage") without
65 burdening common use cases.
67 https://github.com/git-cola/git-cola/pull/755
69 https://github.com/git-cola/git-cola/issues/643
71 * The "Ctrl+S" hotkey now works for the header items in the Status tool.
72 Selected the "Modified" header item and activating the "Stage" hotkey,
73 for example, will stage all modified files. This works for the "Staged",
74 "Modified", and "Untracked" headers. This is not enabled for the
75 "Unmerged" header by design.
77 https://github.com/git-cola/git-cola/issues/772
79 * The list of "Recent" repositories previously capped the number of
80 repositories shown to 8 repositories. This can be set to a higher
81 value by setting the `cola.maxrecent` configuration variable.
83 https://github.com/git-cola/git-cola/issues/752
85 * The "Create Branch" dialog now prevents invalid branch names.
87 https://github.com/git-cola/git-cola/issues/765
89 * Updated Turkish translation.
91 https://github.com/git-cola/git-cola/pull/756
93 * Updated Ukrainian translation.
95 https://github.com/git-cola/git-cola/pull/753
97 * The window title can be configured to not display the absolute path of the
100 https://github.com/git-cola/git-cola/issues/775
102 * The "Edit Remotes" editor learned to edit remote URLS.
104 * Bare repositories can now be created by selecting the
105 "New Bare Repository..." action from the `File` menu.
107 * The "Branches" widget learned to configure upstream branches.
109 * A new `git cola clone` sub-command was added for cloning repositories.
114 * The vendored `qtpy` library was updated to `v1.3.1`.
116 * The macOS installation was made simpler for better compatibility with
119 https://github.com/git-cola/git-cola/issues/636
121 * The Windows installer is now much simpler. Git Cola now bundles
122 Python and PyQt5, so users need only install the "Git for Windows"
123 and "Git Cola" installers to get things working.
128 * Uninitialized difftool errors will now be displayed graphically.
129 They were previously going to the shell.
131 https://github.com/git-cola/git-cola/issues/457
133 * Translations marked "fuzzy" will no longer be used when translating strings.
135 https://github.com/git-cola/git-cola/issues/782
137 * Deleted unmerged files will now correctly use a deleted icon.
139 https://github.com/git-cola/git-cola/issues/479
141 * The `Ctrl+C` "Copy" hotkey on the diff viewer has been fixed.
143 https://github.com/git-cola/git-cola/issues/767
145 * The "Create Tag" dialog did not correctly handle the case when a signed
146 tag is requested, but no message is provided, and the user chooses to
147 create an unannotated tag instead. This convenience fallback will now
148 properly create an unsigned, unannotated tag.
150 https://github.com/git-cola/git-cola/issues/696
152 * `.gitconfig` and `.git/config` values editable by the Preferences dialog
153 (aka `git cola config`) will now get unset when set to an empty value.
154 For example, setting a different `user.email` in the current repository,
155 followed by a subsequent emptying of that field, would previously result in
156 an empty string getting stored in the config. This has been fixed so that
157 the value will now get unset in the config instead.
159 https://github.com/git-cola/git-cola/issues/406
161 * Spelling and typofixes.
163 https://github.com/git-cola/git-cola/pull/748
165 * `core.commentChar` is now honored when set in the local repository
168 https://github.com/git-cola/git-cola/issues/766
175 Usability, bells and whistles
176 -----------------------------
177 * Updated Simplified Chinese translation.
179 https://github.com/git-cola/git-cola/pull/726
181 * Updated Ukrainian translation.
183 https://github.com/git-cola/git-cola/pull/723
185 * New Czech translation.
187 https://github.com/git-cola/git-cola/pull/736
189 https://github.com/git-cola/git-cola/pull/737
191 https://github.com/git-cola/git-cola/pull/740
193 https://github.com/git-cola/git-cola/pull/743
195 * The "name" field in the "Create Tag" dialog now includes autocompletion,
196 which makes it easy to see which tags currently exist.
198 * `git cola` now has configurable toolbars. Use the `View -> Add toolbar`
199 menu item to add a toolbar.
201 * Setting `cola.expandtab` to `true` will now expand tabs into spaces
202 in the commit message editor. The number of spaces to insert is determined
203 by consulting `cola.tabwidth`, which defaults to `8`.
205 * The "Copy SHA-1" hotkey is now `Alt + Ctrl + C`, to avoid clobbering the
206 ability to copy text from the DAG window.
208 https://github.com/git-cola/git-cola/pull/705
210 * The "Prepare Commit Message" action can now be invoked via the
211 `Ctrl+Shift+Return` shortcut.
213 https://github.com/git-cola/git-cola/pull/707
215 * The `Branches` pane now has a filter field that highlights branches whose
216 names match the string entered into its text field.
218 https://github.com/git-cola/git-cola/pull/713
220 * Actions that are triggered in response to button presses were being
221 triggered when the button was pressed, rather than when it was released,
222 which was a usability flaw. All buttons now respond when clicked
223 rather than when pressed.
225 https://github.com/git-cola/git-cola/pull/715
227 * The DAG window will now only refresh when object IDs change.
228 Previously, the DAG would redraw itself in response to inotify events,
229 such as filesystem operations, which was disruptive when inspecting a large
230 diff in its diff viewer. The DAG will now only redraw when the object IDs
231 corresponding to its query input changes. Furthermore, when redrawing, the
232 scrollbar positions are retained to minimize disruption to the viewport
235 https://github.com/git-cola/git-cola/issues/620
237 https://github.com/git-cola/git-cola/issues/724
239 * The "About" dialog now includes the SHA-1 where Git Cola was built.
241 https://github.com/git-cola/git-cola/issues/530
243 * The "Status" widget now has "Copy Leading Path to Clipboard" and
244 "Copy Basename to Clipboard" actions.
246 https://github.com/git-cola/git-cola/issues/435
248 https://github.com/git-cola/git-cola/issues/436
250 * The "Status" widget now supports custom "Copy ... to Clipboard" actions.
252 https://github.com/git-cola/git-cola/issues/437
254 * The main menu now has an "Edit" menu.
256 https://github.com/git-cola/git-cola/issues/725
258 * `git dag` learned to checkout commits into a detached HEAD state.
260 https://github.com/git-cola/git-cola/issues/698
262 * The `status` widget's context menus now omit actions selection-dependent
263 actions when no file is selected.
265 https://github.com/git-cola/git-cola/pull/731
267 * The startup dialog now focuses the repository list so that repositories
268 can be selected with the keyboard without mouse intervention.
270 https://github.com/git-cola/git-cola/issues/741
274 * `git dag` now prevents nodes from overlapping in more situations.
276 https://github.com/git-cola/git-cola/pull/689
278 * Adding untracked Git submodule repo directories previously ran
279 `git add submodule/` but we now call `git add submodule` without
280 the trailing slash (`/`) to avoid staging files that belong to the
281 submodule (which is possibly a `git` bug). By working around the
282 buggy behavior we allow users to recover by issuing the appropriate
283 `git submodule add` command to properly register the submodule.
285 https://github.com/git-cola/git-cola/pull/681
287 * We now avoid `git for-each-ref --sort=version:refname` on versions
288 of `git` older than `v2.7.0`. Previously we only avoided it for
289 versions older than `v2.0.0`, which was a mistake.
291 https://github.com/git-cola/git-cola/pull/686
293 * The error message displayed when `git` is not installed has been fixed.
295 https://github.com/git-cola/git-cola/pull/686
297 * Adding new remotes was silently broken.
299 https://github.com/git-cola/git-cola/issues/684
301 https://github.com/git-cola/git-cola/pull/685
303 * The repo selection dialog had errors during startup when the
304 `cola.refreshonfocus` feature was enabled, as reported on Ubuntu 16.04.
306 https://github.com/git-cola/git-cola/issues/690
308 * Restored support for PyQt 4.6 (Centos 6.8)
310 https://github.com/git-cola/git-cola/issues/692
312 * Switching repositories now resets the "Amend Mode" and other settings
315 https://github.com/git-cola/git-cola/issues/710
317 * `git rebase` error messages now displayed when rebasing fails or stops
318 via the standalone `git cola rebase` front-end.
320 https://github.com/git-cola/git-cola/issues/721
322 * `git cola` learned to stage broken symlinks.
324 https://github.com/git-cola/git-cola/issues/727
326 * The "View History" feature in the `Browser` tool was fixed, and now
327 disambiguates between refs and paths.
329 https://github.com/git-cola/git-cola/issues/732
331 * The diff editor now has better support for files with CRLF `\r\n`
334 https://github.com/git-cola/git-cola/issues/730
336 * `cola.inotify` in a repo-local config is now honored
337 when `git cola` is launched from a desktop entry (`git cola --prompt`).
339 https://github.com/git-cola/git-cola/issues/695
346 Usability, bells and whistles
347 -----------------------------
348 * New Ukrainian translation.
350 https://github.com/git-cola/git-cola/pull/670
352 https://github.com/git-cola/git-cola/pull/672
354 * New and improved French translations.
356 * The new `Branches` widget makes it easier to checkout, merge, push,
357 and pull branches from a single interface.
359 * `git cola` now includes a dark icon theme. The dark icon theme can be
360 activated either by setting the `GIT_COLA_ICON_THEME` environment variable
361 to `dark`, by configuring `cola.icontheme` to `dark`, or by specifying
362 `--icon-theme=dark` on the command line.
364 https://github.com/git-cola/git-cola/pull/638
366 * Autocompletion was added to the `Fetch`, `Push`, and `Pull` dialogs.
368 * The commit message editor now remembers the "Spellcheck" setting
371 https://github.com/git-cola/git-cola/pull/645
373 * `git dag` now uses an improved algorithm for laying out the graph,
374 which avoids collisions under certain graph configurations, and
375 avoids overlapping tag with commits.
377 https://github.com/git-cola/git-cola/pull/648
379 https://github.com/git-cola/git-cola/pull/651
381 https://github.com/git-cola/git-cola/pull/654
383 https://github.com/git-cola/git-cola/pull/656
385 https://github.com/git-cola/git-cola/pull/659
387 * `git dag` now remembers its column sizes across sessions.
389 https://github.com/git-cola/git-cola/issues/674
391 * `Grep` now shows a preview of the selected file's content in a split window
392 below the grep results.
394 * `Grep` now includes line numbers in the preview pane's output.
396 * `Edit Remotes` now remembers its window settings after exiting.
398 * `Diff` now has an option to display line numbers in the editor.
400 https://github.com/git-cola/git-cola/issues/136
402 * `Amend Last Commit` can now be triggered via the `Commit` menu in addition
403 to the commit message editor's options.
405 https://github.com/git-cola/git-cola/issues/640
407 * The `File Browser` tool was made much faster and can now operate on
408 much larger repositories.
410 https://github.com/git-cola/git-cola/issues/499
412 * A new "turbo" mode was added that allows you to opt-out of operations
413 that can slow `git cola` on large repositories. The turbo mode is
414 enabled by configuring `git config cola.turbo true`. Turbo mode
415 disables the background loading of Git commit messages and other
416 details in the `File Browser` widget.
418 * A new GitIgnore dialog allows adding custom gitignore patterns.
420 https://github.com/git-cola/git-cola/pull/653
422 * The spellchecker in `git cola` can now use an additional dictionary
423 by configuring `cola.dictionary` to the path to a file containing
424 a newline-separated list of words.
426 https://github.com/git-cola/git-cola/issues/663
428 * The stash, export patches, diff, and gitignore dialogs now remember
431 * A new `git cola recent` sub-command was added for finding recently
434 * The `Fetch` dialog now allows pruning remote branches.
436 https://github.com/git-cola/git-cola/issues/639
438 https://github.com/git-cola/git-cola/pull/680
442 * `git cola`'s spellchecker now supports the new `dict-common` filesystem
443 layout, and prefers the `/usr/share/dict/cracklib-small` file over the
444 `/usr/share/dict/words` provided on older distributions.
445 This makes the spellchecker compatible with Arch, which does not provide
446 a `words` symlink like Debian.
448 https://github.com/git-cola/git-cola/issues/663
450 * Properly handle the case where an existing file is untracked using
453 * Fix a quirk where the "Create Branch" dialog sometimes required clicking
454 twice on the radio buttons.
456 https://github.com/git-cola/git-cola/pull/662
458 * Fixed a focus issue to ensure that "Push", "Fetch", and "Pull" can
459 be executed with the press of a single enter key after being shown.
461 https://github.com/git-cola/git-cola/issues/661
463 * Committing is now allowed in when resolving a merge results in no
464 changes. This state was previously prevented by the commit message editor,
465 which prevented users from resolving merges that result in no changes.
467 https://github.com/git-cola/git-cola/pull/679
469 * The filesystem monitor would sometimes emit backtraces when directories
470 are modified. This has been fixed.
472 https://bugzilla.redhat.com/show_bug.cgi?id=1438522
474 * Absolute paths are now returned when querying for `.git`-relative paths
475 from within a submodule, which uses `.git`-files.
476 This fixes launching `git cola` from within a subdirectory of a submodule.
478 https://github.com/git-cola/git-cola/pull/675
485 Usability, bells and whistles
486 -----------------------------
487 * `git cola` can now invoke the `.git/hooks/cola-prepare-commit-msg`
488 hook to update the commit message. This hook takes the same parameters
489 as Git's `prepare-commit-message` hook. The default path to this hook
490 can be overridden by setting the `cola.prepareCommitMessageHook`
491 configuration variable.
493 http://git-cola.readthedocs.io/en/latest/git-cola.html#prepare-commit-message
495 * `git cola diff` (and the corresponding `Diff` menu actions) can now
496 launch difftool with the standard `Ctrl+D` hotkey. The `Ctrl+E` hotkey was
497 also added for launching an editor.
499 * Traditional Chinese (Taiwan) translation updates.
503 * `git cola` now works when installed in non-ascii, utf8-encoded paths.
505 https://github.com/git-cola/git-cola/issues/629
507 * Styling issues that caused black backgrounds in various widgets when using
508 PyQ5 on Mac OS X have been fixed.
510 https://github.com/git-cola/git-cola/issues/624
512 * The "Open Recent" menu action was broken and has been fixed.
514 https://github.com/git-cola/git-cola/issues/634
516 * Exiting `git cola` with a maximized main window would hang when reopened
519 https://github.com/git-cola/git-cola/issues/641
523 * `appdata.xml` files are now provided at
524 `share/appdata/git-cola.xml` and `share/appdata/git-dag.xml`
525 for use by the Linux software gallery.
527 https://people.freedesktop.org/~hughsient/appdata/
529 https://github.com/git-cola/git-cola/pull/627
538 * The "Open Recent" menu was updated to new bookmarks format.
540 https://github.com/git-cola/git-cola/issues/628
547 Usability, bells and whistles
548 -----------------------------
549 * New Polish translation thanks to Łukasz Wojniłowicz
551 https://github.com/git-cola/git-cola/pull/598
553 * The `Bypass Commit Hooks` feature now disables itself automatically
554 when a new commit is created. The new behavior turns the option into a
555 single-use flag, which helps prevent users from accidentally leaving it
556 active longer than intended.
558 https://github.com/git-cola/git-cola/pull/595
560 * `git dag` learned to launch an external diff viewer on selected commits.
561 The standard `Ctrl+D` shortcut can be used to view diffs.
563 https://github.com/git-cola/git-cola/issues/468
565 * `git dag` learned to launch directory diffs via `git difftool --dir-diff`.
566 The `Ctrl+Shift+D` shortcut launches difftool in directory-diff mode.
568 https://github.com/git-cola/git-cola/issues/468
570 * Items in the "Favorites" list can now be renamed, which makes it
571 easier to differentiate between several checkouts of the same repository.
573 https://github.com/git-cola/git-cola/issues/599
575 https://github.com/git-cola/git-cola/pull/601
577 * The startup screen now includes a logo and `git cola` version information.
579 https://github.com/git-cola/git-cola/issues/526
581 * The `About` page was revamped to contain multiple tabs. A new tab was added
582 that provides details about `git cola`''s dependencies. New tabs were also
583 added for giving credit to `git cola`'s authors and translators.
585 * The `About` page can now be accessed via `git cola about`.
587 * The "Fast-forward only" and "No fast-forward" options supported by
588 `git pull` are now accessible via `git cola pull`.
590 * Doing a forced push no longer requires selecting the remote branch.
592 https://github.com/git-cola/git-cola/pull/618
594 * `git cola push` now has an option to suppress the prompt that is shown
595 when pushing would create new remote branches.
597 https://github.com/git-cola/git-cola/issues/605
599 * `git dag` now shows commit messages in a more readable color.
601 https://github.com/git-cola/git-cola/issues/574
603 * `git cola browse` and the `status` widget learned to launch the OS-specified
604 default action for a file. When used on directories via `git cola browse`,
605 or when "Open Parent Directory" is used on files, the OS-specified
606 file browser will typically be used.
608 * `git cola browse` and the `status` widget learned to launch terminals.
612 * `git cola browse` was not updating when expanding items.
614 https://github.com/git-cola/git-cola/issues/588
616 * Typofixes in comments, naming, and strings have been applied.
618 https://github.com/git-cola/git-cola/pull/593
620 * The inotify and win32 filesystem monitoring no longer refreshes
621 when updates are made to ignored files.
623 https://github.com/git-cola/git-cola/issues/517
625 https://github.com/git-cola/git-cola/issues/516
627 * The `Refresh` button on the actions panel no longer raises an
628 exception when using PyQt5.
630 https://github.com/git-cola/git-cola/issues/604
632 * Fixed a typo in the inotify backend that is triggered when files are removed.
634 https://github.com/git-cola/git-cola/issues/607
636 * Fixed a typo when recovering from a failed attempt to open a repository.
638 https://github.com/git-cola/git-cola/issues/606
640 * `git dag` now properly updates itself when launched from the menubar.
642 https://github.com/git-cola/git-cola/pull/613
644 * If git-cola is invoked on Windows using `start pythonw git-cola`,
645 a console window will briefly flash on the screen each time
646 `git cola` invokes `git`. The console window is now suppressed.
648 * We now avoid some problematic Popen flags on Windows which were
649 breaking the `git rebase` feature on Windows.
651 * The `Save` button in `git dag`'s "Grab File..." feature now properly
652 prompts for a filename when saving files.
654 https://github.com/git-cola/git-cola/pull/617
658 * The `qtpy` symlink in the source tree has been removed to allow for easier
659 development on Windows.
661 https://github.com/git-cola/git-cola/issues/626
668 Usability, bells and whistles
669 -----------------------------
670 * `git cola push` learned to configure upstream branches.
672 https://github.com/git-cola/git-cola/issues/563
676 * The diffstat view is now properly updated when notifications are
677 received via inotify filesystem monitoring.
679 https://github.com/git-cola/git-cola/issues/577
681 * Python3 with PyQt5 had a bug that prevented `git cola` from starting.
683 https://github.com/git-cola/git-cola/pull/589
693 * When repositories stored in non-ASCII, UTF-8-encoded filesystem paths
694 were operated upon with `LC_ALL=C` set in the environment, unicode errors
695 would occur when using `python2`. `git cola` was made more robust and will
696 now operate correctly within this environment.
698 https://github.com/git-cola/git-cola/issues/581
700 * Support for the `GIT_WORK_TREE` environment variable was fixed.
702 https://github.com/git-cola/git-cola/pull/582
707 * The `unittest.mock` module is now used instead of the original `mock` module
708 when running the `git cola` test suite using Python3.
710 https://github.com/git-cola/git-cola/issues/569
715 * `git cola` is now compatible with *PyQt5*, *PyQt4*, and *Pyside*.
716 `git cola` previously supported *PyQt4* only, but will now use whichever
717 library is available. Users are not required to upgrade at this time,
718 but *PyQt5* support can be enabled anytime by making its python
721 https://github.com/git-cola/git-cola/issues/232
723 *NOTE*: We do not yet recommend using *PyQt5* because there are known
724 exit-on-segfault bugs in *Qt5* that have not yet been addressed.
725 `git cola` is sensitive to this bug and is known to crash on exit
726 when using `git dag` or the interactive rebase feature on *PyQt5*.
728 https://bugreports.qt.io/browse/QTBUG-52988
730 *PyQt4* is stable and there are no known issues when using it so
731 we recommend using it until the Qt5 bugs have been resolved.
733 * `git cola` now depends on *QtPy* and includes a bundled copy of the
734 `qtpy` library. If you are packaging `git cola` and would prefer to use
735 `qtpy` from your distribution instead of the built-in version then use
736 `make NO_VENDOR_LIBS=1` when building `git cola`. This will prevent
737 vendored libraries from being installed.
744 Usability, bells and whistles
745 -----------------------------
747 * A new "Reset" sub-menu provides access to running "git reset --mixed"
748 when resetting branch heads and "git reset --merge" when resetting
751 https://github.com/git-cola/git-cola/issues/542
753 * `git cola` now supports linked worktrees, i.e. worktrees created by
756 https://github.com/git-cola/git-cola/issues/554
761 * Diff highlighting is now robust to the user having
762 diff.supressBlankEmpty=true in their git config.
764 https://github.com/git-cola/git-cola/issues/541
766 * The filesystem monitor now properly handles repositories that use
767 `.git`-files, e.g. when using submodules.
769 https://github.com/git-cola/git-cola/issues/545
771 https://github.com/git-cola/git-cola/pulls/546
773 * Per-repository git configuration is now properly detected when launching
774 `git cola` from an application launcher.
776 https://github.com/git-cola/git-cola/issues/548
778 * `git cola` now cleans up after itself immediately to avoid leaving behind
779 empty `/tmp/git-cola-XXXXXX` directories when the user uses `Ctrl+C`
782 https://github.com/git-cola/git-cola/issues/566
787 * It is now possible to install `git cola` to and from utf8-encoded filesystem
788 paths. Previously, Python's stdlib would throw an encoding error during
789 installation. We workaround the stdlib by forcing python2 to use utf-8,
790 thus fixing assumptions in the stdlib library code.
792 https://github.com/git-cola/git-cola/issues/551
799 Usability, bells and whistles
800 -----------------------------
802 * The icon for untracked files was adjusted to better differentiate
803 between files and the "Untracked" header.
805 https://github.com/git-cola/git-cola/issues/509
807 * Ctrl+O was added as a hotkey for opening repositories.
809 https://github.com/git-cola/git-cola/pull/507
811 * `git dag` now uses consistent edge colors across updates.
813 https://github.com/git-cola/git-cola/issues/512
815 * `git cola`'s Bookmarks widget can now be used to set a "Default Repository".
816 Under the hood, we set the `cola.defaultrepo` configuration variable.
817 The default repository is used whenever `git cola` is launched outside of
818 a Git repository. When unset, or when set to a bogus value, `git cola`
819 will prompt for a repository, as it previously did.
821 https://github.com/git-cola/git-cola/issues/513
823 * `git cola`'s Russian and Spanish translations were improved
824 thanks to Vaiz and Zeioth.
826 https://github.com/git-cola/git-cola/pull/514
828 https://github.com/git-cola/git-cola/pull/515
830 https://github.com/git-cola/git-cola/pull/523
832 * `git cola` was translated to Turkish thanks to Barış ÇELİK.
834 https://github.com/git-cola/git-cola/pull/520
836 * The status view now supports launching `git gui blame`. It can be
837 configured to use a different command by setting `cola.blameviewer`.
839 https://github.com/git-cola/git-cola/pull/521
841 * `git dag` now allows selecting non-contiguous ranges in the log widget.
843 https://github.com/git-cola/git-cola/issues/468
845 * Any font can now be chosen for the diff editor, not just monospace fonts.
847 https://github.com/git-cola/git-cola/issues/525
852 * `xfce4-terminal` and `gnome-terminal` are now supported when launching
853 `git mergetool` to resolve merges. These terminals require that the command
854 to execute is shell-quoted and passed as a single string argument to `-e`
855 rather than as additional command line arguments.
857 https://github.com/git-cola/git-cola/issues/524
859 * Fixed a unicode problem when formatting the error message that is shown
860 when `gitk` is not installed. We now handle unicode data in tracebacks
861 generated by python itself.
863 https://github.com/git-cola/git-cola/issues/528
865 * The `New repository` feature was fixed.
867 https://github.com/git-cola/git-cola/pull/533
869 * We now use omit the extended description when creating "fixup!" commits,
870 for consistency with the Git CLI. We now include only the one-line summary
871 in the final commit message.
873 https://github.com/git-cola/git-cola/issues/522
880 Usability, bells and whistles
881 -----------------------------
883 * The user interface is now HiDPI-capable. git-cola now uses SVG
884 icons, and its interface can be scaled by setting the `GIT_COLA_SCALE`
885 environment variable.
887 * `git dag` now supports the standard editor, difftool, and history hotkeys.
888 It is now possible to invoke these actions from file widget's context
889 menu and through the standard hotkeys.
891 https://github.com/git-cola/git-cola/pull/473
893 * The `Status` tool also learned about the history hotkey.
894 Additionally, the `Alt-{j,k}` aliases are also supported in the `Status`
895 tool for consistency with the other tools where the non-Alt hotkeys are not
898 https://github.com/git-cola/git-cola/pull/488
900 * The `File Browser` tool now has better default column sizes,
901 and remembers its window size and placement.
903 * The `File Browser` now supports the refresh hotkey, and has better
904 behavior when refreshing. The selection is now retained, and new and
905 removed files are found when refreshing.
907 * A new `git-cola-completion.bash` completion script is provided in the
908 `contrib/` directory. It must be used alongside Git's completion script.
909 Source it from your `~/.bashrc` (or `~/.zshrc`, etc) after sourcing
910 the `git-completion.bash` script and you will have command-line completion
911 support for the `git cola` and `git dag` sub-commands.
913 * The "checkout" dialog now offers completion for remote branches and other
914 git refs. This makes it easier to checkout remote branches in a detached
915 head state. Additionally, the checkout dialog also offers completion for
916 remote branches that have not yet been checked out, which makes it easier to
917 create a local tracking branch by just completing for that potential name.
919 https://github.com/git-cola/git-cola/issues/390
921 * The "create branch" and "create tag" dialogs now save and restore their
924 * The "status" widget can now be configured to use a bold font with a darker
925 background for the header items.
927 https://github.com/git-cola/git-cola/pull/506
929 * The "status" widget now remembers its horizontol scrollbar position across
930 updates. This is helpful when working on projects with long paths.
932 https://github.com/git-cola/git-cola/issues/494
937 * When using *Git for Windows*, a `git` window would appear
938 when running *Windows 8*. We now pass additional flags to
939 `subprocess.Popen` to prevent a `git` window from appearing.
941 https://github.com/git-cola/git-cola/issues/477
943 https://github.com/git-cola/git-cola/pull/486
945 * Launching difftool with `.PY` in `$PATHEXT` on Windows was fixed.
947 https://github.com/git-cola/git-cola/issues/492
949 * Creating a local branch tracking a remote branch that contains
950 slashes in its name is now properly handled.
952 https://github.com/git-cola/git-cola/issues/496
954 * The "Browse Other Branch" feature was broken by Python3, and is now fixed.
956 https://github.com/git-cola/git-cola/issues/501
958 * We now avoid `long` for better Python3 compatibility.
960 https://github.com/git-cola/git-cola/issues/502
962 * We now use Git's default merge message when merging branches.
964 https://github.com/git-cola/git-cola/issues/508
966 * Miscellaneous fixes
968 https://github.com/git-cola/git-cola/pull/485
973 * git-cola's documentation no longer uses an intersphinx link mapping
974 to docs.python.org. This fixes warnings when building rpms using koji,
975 where network access is prevented.
977 https://bugzilla.redhat.com/show_bug.cgi?id=1231812
984 Usability, bells and whistles
985 -----------------------------
987 * The Interactive Rebase feature now works on Windows!
989 https://github.com/git-cola/git-cola/issues/463
991 * The `diff` editor now understands vim-style `hjkl` navigation hotkeys.
993 https://github.com/git-cola/git-cola/issues/476
995 * `Alt-{j,k}` navigation hotkeys were added to allow changing to the
996 next/previous file from the diff and commit editors.
998 * The `Rename branch` menu action is now disabled in empty repositories.
1000 https://github.com/git-cola/git-cola/pull/475
1002 https://github.com/git-cola/git-cola/issues/459
1004 * `git cola` now checks unmerged files for conflict markers before
1005 staging them. This feature can be disabled in the preferences.
1007 https://github.com/git-cola/git-cola/issues/464
1009 * `git dag` now remembers which commits were selected when refreshing
1010 so that it can restore the selection afterwards.
1012 https://github.com/git-cola/git-cola/issues/480
1014 * "Launch Editor", "Launch Difftool", "Stage/Unstage",
1015 and "Move Up/Down" hotkeys now work when the commit message
1018 https://github.com/git-cola/git-cola/issues/453
1020 * The diff editor now supports the `Ctrl+u` hotkey for reverting
1021 diff hunks and selected lines.
1023 * The `core.commentChar` Git configuration value is now honored.
1024 Commit messages and rebase instruction sheets will now use
1025 the configured character for comments. This allows having
1026 commit messages that start with `#` when `core.commentChar`
1027 is configured to its non-default value.
1029 https://github.com/git-cola/git-cola/issues/446
1034 * Diff syntax highlighting was improved to handle more edge cases
1035 and false positives.
1037 https://github.com/git-cola/git-cola/pull/467
1039 * Setting commands in the interactive rebase editor was fixed.
1041 https://github.com/git-cola/git-cola/issues/472
1043 * git-cola no longer clobbers the Ctrl+Backspace text editing shortcut
1044 in the commit message editor.
1046 https://github.com/git-cola/git-cola/issues/453
1048 * The copy/paste clipboard now persists after `git cola` exits.
1050 https://github.com/git-cola/git-cola/issues/484
1059 * Fixed the "Sign off" feature in the commit message editor.
1066 Usability, bells and whistles
1067 -----------------------------
1068 * Double-click will now choose a commit in the "Select commit" dialog.
1070 * `git cola` has a feature that reads `.git/MERGE_MSG` and friends for the
1071 commit message when a merge is in-progress. Upon refresh, `git cola` will
1072 now detect when a merge has completed and reset the commit message back to
1073 its previous state. It is only reset if the editor contains a message
1074 that was read from the file and has not been manually edited by the user.
1076 * The commit message editor's context menu now has a "Clear..." action for
1077 clearing the message across both the summary and description fields.
1079 * Traditional Chinese (Taiwan) translation updates.
1081 * The system theme's icons are now used wherever possible.
1083 https://github.com/git-cola/git-cola/pull/458
1087 * The stash viewer now uses ``git show --no-ext-diff`` to avoid running
1088 user-configured diff tools.
1090 * `git cola` now uses the `setsid()` system call to ensure that the
1091 `GIT_ASKPASS` and `SSH_ASKPASS` helper programs are used when pushing
1092 changes using `git`. The askpass helpers will now be used even when
1093 `git cola` is launched from a terminal.
1095 The behavior without `setsid()` is that `git cola` can appear to hang while
1096 pushing changes. The hang happens when `git` prompts the user for a
1097 password using the terminal, but the user never sees the prompt. `setsid()`
1098 detaches the terminal, which ensures that the askpass helpers are used.
1100 https://github.com/git-cola/git-cola/issues/218
1102 https://github.com/git-cola/git-cola/issues/262
1104 https://github.com/git-cola/git-cola/issues/377
1106 * `git dag`'s file list tool was updated to properly handle unicode paths.
1108 * `gnome-terminal` is no longer used by default when `cola.terminal` is unset.
1109 It is broken, as was detailed in #456.
1111 https://github.com/git-cola/git-cola/issues/456
1113 * The interactive rebase feature was not always setting `$GIT_EDITOR`
1114 to the value of `gui.editor`, thus there could be instances where rebase
1115 will seem to not stop, or hang, when performing "reword" actions.
1117 We now set the `$GIT_EDITOR` environment variable when performing the
1118 "Continue", "Skip", and "Edit Todo" rebase actions so that the correct
1119 editor is used during the rebase.
1121 https://github.com/git-cola/git-cola/issues/445
1125 * `git cola` moved from a 3-part version number to a simpler 2-part "vX.Y"
1126 version number. Most of our releases tend to contain new features.
1133 Usability, bells and whistles
1134 -----------------------------
1135 * Updated zh_TW translations.
1137 * `git cola rebase` now defaults to `@{upstream}`, and generally uses the same
1138 CLI syntax as `git rebase`.
1140 * The commit message editor now allows you to bypass commit hooks by selecting
1141 the "Bypass Commit Hooks" option. This is equivalent to passing the
1142 `--no-verify` option to `git commit`.
1144 https://github.com/git-cola/git-cola/issues/357
1146 * We now prevent the "Delete Files" action from creating a dialog that does
1149 https://github.com/git-cola/git-cola/issues/378
1151 * `git xbase` learned to edit rebase instruction sheets that contain
1154 * The diff colors are now configurable. `cola.color.{text,add,remove,header}`
1155 can now be set with 6-digit hexadecimal colors.
1156 See the `git cola manual <https://git-cola.readthedocs.io/en/latest/git-cola.html#configuration-variables>_`
1159 * Improved hotkey documentation.
1163 * `git cola` will now allow starting an interactive rebase with a dirty
1164 worktree when `rebase.autostash` is set.
1166 https://github.com/git-cola/git-cola/issues/360
1173 Usability, bells and whistles
1174 -----------------------------
1175 * A new "Find files" widget was added, and can be activated by
1176 using the `Ctrl+t` or `t` hotkeys.
1178 * A new `git cola find` sub-command was added for finding files.
1180 * `git cola` now remembers the text cursor's position when staging
1181 interactively with the keyboard. This makes it easier to use the keyboard
1182 arrows to select and stage lines.
1184 * The completion widgets will now select the top completion item
1185 when `Enter` or `Return` are pressed.
1187 * You can now refresh using `F5` in addition to the existing `Ctrl+R` hotkey.
1191 * `git cola` now passes `--no-abbrev-commit` to `git log` to override
1192 having `log.abbrevCommit = true` set in `.gitconfig`.
1198 Usability, bells and whistles
1199 -----------------------------
1200 * `git dag` now forwards all unknown arguments along to `git log`.
1202 https://github.com/git-cola/git-cola/issues/389
1204 * Line-by-line interactive staging was made more robust.
1206 https://github.com/git-cola/git-cola/pull/399
1208 * "Bookmarks" was renamed to "Favorites".
1210 https://github.com/git-cola/git-cola/issues/392
1212 * Untracked files are now displayed using a unique icon.
1214 https://github.com/git-cola/git-cola/pull/388
1218 * `git dag` was triggering a traceback on Fedora when parsing Git logs.
1220 https://bugzilla.redhat.com/show_bug.cgi?id=1181686
1222 * inotify expects unicode paths on Python3.
1224 https://github.com/git-cola/git-cola/pull/393
1226 * Untracked files are now assumed to be utf-8 encoded.
1228 https://github.com/git-cola/git-cola/issues/401
1234 Usability, bells and whistles
1235 -----------------------------
1236 * `git cola` can now create GPG-signed commits and merges.
1238 https://github.com/git-cola/git-cola/issues/149
1240 See the documentation for details about setting up a GPG agent.
1242 * The status widget learned to copy relative paths when `Ctrl+x` is pressed.
1244 https://github.com/git-cola/git-cola/issues/358
1246 * Custom GUI actions can now define their own keyboard shortcuts by
1247 setting `guitool.$name.shortcut` to a string understood by Qt's
1248 `QAction::setShortcut()` API, e.g. `Alt+X`.
1250 See http://qt-project.org/doc/qt-4.8/qkeysequence.html#QKeySequence-2
1251 for more details about the supported values.
1253 * `git cola` learned to rename branches.
1255 https://github.com/git-cola/git-cola/pull/364
1257 https://github.com/git-cola/git-cola/issues/278
1259 * `git dag` now has a "Show history" context menu which can be used to filter
1260 history using the selected paths.
1264 * `sphinxtogithub.py` was fixed for Python3.
1266 https://github.com/git-cola/git-cola/pull/353
1268 * The commit that changed how we read remotes from `git remote`
1269 to parsing `git config` was reverted since it created problems
1272 * Fixed a crash when using the `rebase edit` feature.
1274 https://github.com/git-cola/git-cola/issues/351
1276 * Better drag-and-drop behavior when dropping into gnome-terminal.
1278 https://github.com/git-cola/git-cola/issues/373
1282 * The `git-cola-folder-handler.desktop` file handler was fixed
1283 to pass validation by `desktop-file-validate`.
1285 https://github.com/git-cola/git-cola/issues/356
1287 * The `git.svg` icon was renamed to `git-cola.svg`, and `git cola` was taught
1288 to prefer icons from the desktop theme when available.
1294 Usability, bells and whistles
1295 -----------------------------
1296 * New hotkey: `Ctrl+Shift+M` merges branches.
1298 * New hotkey: `Ctrl+R` refreshes the DAG viewer.
1300 https://github.com/git-cola/git-cola/issues/347
1304 * We now use `git config` to parse the list of remotes
1305 instead of parsing the output of `git remote`, which
1306 is a Git porcelain and should not be used by scripts.
1308 * Avoid "C++ object has been deleted" errors from PyQt4.
1310 https://github.com/git-cola/git-cola/issues/346
1314 * The `make install` target now uses `install` instead of `cp`.
1320 Usability, bells and whistles
1321 -----------------------------
1322 * Updated Brazillian Portuguese translation.
1324 * The status and browse widgets now allow drag-and-drop into
1325 external applications.
1327 https://github.com/git-cola/git-cola/issues/335
1329 * We now show a progress bar when cloning repositories.
1331 https://github.com/git-cola/git-cola/issues/312
1333 * The bookmarks widget was simplified to not need a
1336 https://github.com/git-cola/git-cola/issues/289
1338 * Updated Traditional Chinese translation.
1340 * We now display a warning when trying to rebase with uncommitted changes.
1342 https://github.com/git-cola/git-cola/issues/338
1344 * The status widget learned to filter paths.
1345 `Ctrl+Shift+S` toggles the filter widget.
1347 https://github.com/git-cola/git-cola/issues/337
1349 https://github.com/git-cola/git-cola/pull/339
1351 * The status widget learned to move files to the trash
1352 when the `send2trash <https://github.com/hsoft/send2trash>`_
1353 module is installed.
1355 https://github.com/git-cola/git-cola/issues/341
1357 * "Recent repositories" is now a dedicated widget.
1359 https://github.com/git-cola/git-cola/issues/342
1361 * New Spanish translation thanks to Pilar Molina Lopez.
1363 https://github.com/git-cola/git-cola/pull/344
1367 * Newly added remotes are now properly seen by the fetch/push/pull dialogs.
1369 https://github.com/git-cola/git-cola/issues/343
1375 Usability, bells and whistles
1376 -----------------------------
1377 * New Brazillian Portuguese translation thanks to Vitor Lobo.
1379 * New Indonesian translation thanks to Samsul Ma'arif.
1381 * Updated Simplified Chinese translation thanks to Zhang Han.
1383 * `Ctrl+Backspace` is now a hotkey for "delete untracked files" in
1386 * Fetch/Push/Pull dialogs now use the configured remote of the current
1389 https://github.com/git-cola/git-cola/pull/324
1393 * We now use `os.getcwd()` on Python3.
1395 https://github.com/git-cola/git-cola/pull/316
1397 https://github.com/git-cola/git-cola/pull/326
1399 * The `Ctrl+P` hotkey was overloaded to both "push" and "cherry-pick",
1400 so "cherry-pick" was moved to `Ctrl+Shift+C`.
1402 * Custom GUI tools with mixed-case names are now properly supported.
1404 * "Diff Region" is now referred to as "Diff Hunk" for consistency
1405 with common terminology from diff/patch tools.
1407 https://github.com/git-cola/git-cola/issues/328
1409 * git-cola's test suite is now portable to MS Windows.
1411 https://github.com/git-cola/git-cola/pull/332
1417 Usability, bells and whistles
1418 -----------------------------
1419 * We now handle the case when inotify `add_watch()` fails
1420 and display instructions on how to increase the number of watches.
1422 https://github.com/git-cola/git-cola/issues/263
1424 * New and improved zh_TW localization thanks to V字龍(Vdragon).
1426 https://github.com/git-cola/git-cola/pull/265
1428 https://github.com/git-cola/git-cola/pull/267
1430 https://github.com/git-cola/git-cola/pull/268
1432 https://github.com/git-cola/git-cola/issues/269
1434 https://github.com/git-cola/git-cola/pull/270
1436 https://github.com/git-cola/git-cola/pull/271
1438 https://github.com/git-cola/git-cola/pull/272
1440 * New hotkeys: `Ctrl+F` for fetch, `Ctrl+P` for push,
1441 and `Ctrl+Shift+P` for pull.
1443 * The bookmarks widget's context menu actions were made clearer.
1445 https://github.com/git-cola/git-cola/issues/281
1447 * The term "Staging Area" is used consistently in the UI
1448 to allow for better localization.
1450 https://github.com/git-cola/git-cola/issues/283
1452 * The "Section" term is now referred to as "Diff Region"
1455 https://github.com/git-cola/git-cola/issues/297
1457 * The localization documentation related to the LANGUAGE
1458 environment variable was improved.
1460 https://github.com/git-cola/git-cola/pull/293
1462 * The "Actions" panel now contains tooltips for each button
1463 in case the button labels gets truncated by Qt.
1465 https://github.com/git-cola/git-cola/issues/292
1467 * Custom `git config`-defined actions can now be run in the
1468 background by setting `guitool.<name>.background` to `true`.
1472 * We now use bold fonts instead of SmallCaps to avoid
1473 artifacts on several configurations.
1475 * We now pickup `user.email`, `cola.tabwidth`, and similar settings
1476 when defined in /etc/gitconfig.
1478 https://github.com/git-cola/git-cola/issues/259
1480 * Better support for unicode paths when using inotify.
1482 https://bugzilla.redhat.com/show_bug.cgi?id=1104181
1484 * Unicode fixes for non-ascii locales.
1486 https://github.com/git-cola/git-cola/issues/266
1488 https://github.com/git-cola/git-cola/issues/273
1490 https://github.com/git-cola/git-cola/issues/276
1492 https://github.com/git-cola/git-cola/issues/282
1494 https://github.com/git-cola/git-cola/issues/298
1496 https://github.com/git-cola/git-cola/issues/302
1498 https://github.com/git-cola/git-cola/issues/303
1500 https://github.com/git-cola/git-cola/issues/305
1502 * Viewing history from the file browser was fixed for Python3.
1504 https://github.com/git-cola/git-cola/issues/274
1506 * setup.py was fixed to install the `*.rst` documentation.
1508 https://github.com/git-cola/git-cola/issues/279
1510 * Patch export was fixed for Python3.
1512 https://github.com/git-cola/git-cola/issues/290
1514 * Fixed adding a bookmark with trailing slashes.
1516 https://github.com/git-cola/git-cola/pull/295
1518 * The default `git dag` layout is now setup so that its widgets
1519 can be freely resized on Linux.
1521 https://github.com/git-cola/git-cola/issues/299
1523 * Invalid tag names are now reported when creating tags.
1525 https://github.com/git-cola/git-cola/pull/296
1531 Usability, bells and whistles
1532 -----------------------------
1533 * `git cola` no longer prompts after successfully creating a new branch.
1535 https://github.com/git-cola/git-cola/pull/251
1537 * Hitting enter on simple dialogs now accepts them.
1539 https://github.com/git-cola/git-cola/pull/255
1543 * `git dag` no longer relies on `sys.maxint`, which is
1544 not available in Python3.
1546 https://github.com/git-cola/git-cola/issues/249
1548 * Python3-related fixes.
1550 https://github.com/git-cola/git-cola/pull/254
1552 * Python3-on-Windows-related fixes.
1554 https://github.com/git-cola/git-cola/pull/250
1556 https://github.com/git-cola/git-cola/pull/252
1558 https://github.com/git-cola/git-cola/pull/253
1560 * Switching repositories using the bookmarks widget was not
1561 refreshing the inotify watcher.
1563 https://github.com/git-cola/git-cola/pull/256
1565 * Special commit messages trailers (e.g. "Acked-by:") are now special-cased to
1566 fix word wrapping lines that start with "foo:".
1568 https://github.com/git-cola/git-cola/issues/257
1570 * `git dag` sometimes left behind selection artifacts.
1571 We now refresh the view to avoid them.
1573 https://github.com/git-cola/git-cola/issues/204
1579 Usability, bells and whistles
1580 -----------------------------
1581 * Better inotify support for file creation and deletion.
1583 https://github.com/git-cola/git-cola/issues/240
1585 * `git cola` now supports the X11 Session Management Protocol
1586 and remembers its state across logout/reboot.
1588 https://github.com/git-cola/git-cola/issues/164
1590 * `git cola` has a new icon.
1592 https://github.com/git-cola/git-cola/issues/190
1596 * Building the documentation no longer requires `asciidoc`.
1597 We now use `Sphinx <http://sphinx-doc.org/>`_ for building
1598 html documentation and man pages.
1602 * Reworked the git-dag gravatar icon code to avoid a unicode
1605 * Commit message line-wrapping was made to better match the GUI editor.
1607 https://github.com/git-cola/git-cola/issues/242
1609 * Better support for Python3 on Windows
1611 https://github.com/git-cola/git-cola/issues/246
1615 * git-cola no longer depends on Asciidoc for building its documentation
1616 and man-pages. We now depend on [Sphinx](http://sphinx-doc.org/) only.
1622 Usability, bells and whistles
1623 -----------------------------
1624 * Some context menu actions are now hidden when selected
1627 https://github.com/git-cola/git-cola/issues/238
1631 * The build-git-cola.sh contrib script was improved.
1633 https://github.com/git-cola/git-cola/pull/235
1635 * Non-ascii worktrees work properly again.
1637 https://github.com/git-cola/git-cola/issues/234
1639 * The browser now guards itself against missing files.
1641 https://bugzilla.redhat.com/show_bug.cgi?id=1071378
1643 * Saving widget state now works under Python3.
1645 https://github.com/git-cola/git-cola/pull/236
1653 * git-cola now runs on Python 3 thanks to Virgil Dupras.
1655 https://github.com/git-cola/git-cola/pull/233
1657 * Python 2.6, 2.7, and 3.2+ are now supported.
1658 Python 2.5 is no longer supported.
1662 * i18n test fixes thanks to Virgil Dupras.
1664 https://github.com/git-cola/git-cola/pull/231
1666 * git-cola.app build fixes thanks to Maicon D. Filippsen.
1668 https://github.com/git-cola/git-cola/pull/230
1670 * Lots of pylint improvements thanks to Alex Chernetz.
1672 https://github.com/git-cola/git-cola/pull/229
1678 Usability, bells and whistles
1679 -----------------------------
1680 * The new `Bookmarks` tool makes it really easy to switch between repositories.
1682 * There is now a dedicated dialog for applying patches.
1683 See the ``File -> Apply Patches`` menu item.
1685 https://github.com/git-cola/git-cola/issues/215
1687 * A new `git cola am` sub-command was added for applying patches.
1691 * Fixed a typo that caused inotify events to be silently ignored.
1693 * Fixed the sys.path setup for Mac OS X (Homebrew).
1695 https://github.com/git-cola/git-cola/issues/221
1697 * Lots of pylint fixes thanks to Alex Chernetz.
1703 Usability, bells and whistles
1704 -----------------------------
1705 * `git cola --amend` now starts the editor in `amend` mode.
1707 https://github.com/git-cola/git-cola/issues/187
1709 * Multiple lines of text can now be pasted into the `summary` field.
1710 All text beyond the first newline will be automatically moved to the
1711 `extended description` field.
1713 https://github.com/git-cola/git-cola/issues/212
1717 * Stray whitespace in `.git` files is now ignored.
1719 https://github.com/git-cola/git-cola/issues/213
1721 * Fix "known incorrect sRGB profile" in `staged-item.png`.
1723 http://comments.gmane.org/gmane.linux.gentoo.devel/85066
1731 * Fix a traceback when `git push` fails.
1733 https://bugzilla.redhat.com/show_bug.cgi?id=1034778
1737 * Most of the git-cola sub-packages have been removed.
1738 The only remaining packages are `cola`, `cola.models`,
1741 * The translation file for Simplified Chinese was renamed
1744 https://github.com/git-cola/git-cola/issues/209
1752 * `git cola version --brief` now prints the brief version number.
1756 * Resurrected the "make dist" target, for those that prefer to create
1759 * Fixed the typo that broke the preferences dialog.
1765 Usability, bells and whistles
1766 -----------------------------
1767 * We now ship a full-featured interactive `git rebase` editor.
1768 The rebase todo file is edited using the `git xbase` script which
1769 is provided at `$prefix/share/git-cola/bin/git-xbase`.
1770 This script can be used standalone by setting the `$GIT_SEQUENCE_EDITOR`
1771 before running `git rebase --interactive`.
1773 https://github.com/git-cola/git-cola/issues/1
1775 * Fixup commit messages can now be loaded from the commit message editor.
1777 * Tool widgets can be locked in place by using the "Tools/Lock Layout"
1780 https://github.com/git-cola/git-cola/issues/202
1782 * You can now push to several remotes simultaneously by selecting
1783 multiple remotes in the "Push" dialog.
1785 https://github.com/git-cola/git-cola/issues/148
1787 * The `grep` tool learned to search using three different modes:
1788 basic regular expressions (default), extended regular expressions,
1793 * `git cola` now depends on the `argparse` Python module.
1794 This module is part of the stdlib in Python 2.7 and must
1795 be installed separately when using Python 2.6 and below.
1799 * Support unicode in the output from `fetch`, `push`, and `pull`.
1805 Usability, bells and whistles
1806 -----------------------------
1807 * We now detect when the editor or history browser are misconfigured.
1809 https://github.com/git-cola/git-cola/issues/197
1811 https://bugzilla.redhat.com/show_bug.cgi?id=886826
1813 * Display of untracked files can be disabled from the Preferences dialog
1814 or by setting the `gui.displayuntracked` configuration variable to `false`.
1816 http://thread.gmane.org/gmane.comp.version-control.git/232683
1820 * Unicode stash names are now supported
1822 https://github.com/git-cola/git-cola/issues/198
1824 * The diffs produced when reverting workspace changes were made more robust.
1829 =======================
1830 Usability, bells and whistles
1831 -----------------------------
1832 * Brand new German translation thanks to Sven Claussner.
1834 * The "File" menu now provides a "New Repository..." menu action.
1836 * `git dag` now uses a dock-widget interface so that its widgets can
1837 be laid-out and arranged. Customizations are saved and restored
1838 the next time `git dag` is launched.
1840 * `git dag` now has a "Zoom Best Fit" button next alongside the
1841 "Zoom In" and "Zoom Out" buttons.
1843 * `Ctrl+L` now focuses the "Search" field in the `git dag` tool.
1845 * Right-clicking in the "diff" viewer now updates the cursor position
1846 before performing actions, which makes it much easier to click around
1847 and selectively stage sections. Previously, the current cursor position
1848 was used which meant that it required two clicks (left-click to update
1849 the position followed by right-click to get the context menu) for the
1850 desired section to be used. This is now a single right-click operation.
1852 * The `Ctrl+D` "Launch Diff Tool" action learned to automatically choose
1853 between `git difftool` and `git mergetool`. If the file is unmerged then
1854 we automatically launch `git mergetool` on the path, otherwise we use
1855 `git difftool`. We do this because `git difftool` is not intended to
1856 be used on unmerged paths. Automatically using `git mergetool` when
1857 appropriate is the most intuitive and muscle-memory-friendly thing to do.
1859 * You can now right-click on folders in your standard file browser
1860 and choose "Open With -> Git Cola" (Linux-only).
1864 * Python 2.6 on Mac OS X Snow Leopard does not provide a namedtuple
1865 at `sys.version_info`. We now avoid using that variable for better
1868 * We now read the user's Git configuration from `~/.config/git/config`
1869 if that file is available, otherwise we use the traditional `~/.gitconfig`
1870 path, just like Git itself.
1872 * Some edge cases were fixed when applying partial/selected diffs.
1874 * The diff viewer is now properly cleared when refreshing.
1876 https://github.com/git-cola/git-cola/issues/194
1882 Usability, bells and whistles
1883 -----------------------------
1884 * The diff viewer now has an "Options" menu which can be
1885 used to set "git diff" options. This can be used to
1886 ignore whitespace changes or to show a change with its
1887 surrounding function as context.
1889 https://github.com/git-cola/git-cola/issues/150
1891 * `git cola` now remembers your commit message and will restore it
1892 when `git cola` is restarted.
1894 https://github.com/git-cola/git-cola/pull/175
1896 * `Ctrl+M` can now be used to toggle the "Amend last commit"
1897 checkbox in the commit message editor.
1899 https://github.com/git-cola/git-cola/pull/161
1901 * Deleting remote branches can now be done from the "Branch" menu.
1903 https://github.com/git-cola/git-cola/issues/152
1905 * The commit message editor now has a built-in spell checker.
1909 * We now avoid invoking external diffs when showing diffstats.
1911 https://github.com/git-cola/git-cola/pull/163
1913 * The `Status` tool learned to reselect files when refreshing.
1915 https://github.com/git-cola/git-cola/issues/165
1917 * `git cola` now remembers whether it has been maximized and will restore the
1918 maximized state when `git cola` is restarted.
1920 https://github.com/git-cola/git-cola/issues/172
1922 * Performance is now vastly improved when staging hundreds or
1925 * `git cola` was not correctly saving repo-specific configuration.
1927 https://github.com/git-cola/git-cola/issues/174
1929 * Fix a UnicodeDecode in sphinxtogithub when building from source.
1935 Usability, bells and whistles
1936 -----------------------------
1937 * We now automatically remove missing repositories from the
1938 "Select Repository" dialog.
1940 https://github.com/git-cola/git-cola/issues/145
1942 * A new `git cola diff` sub-command was added for diffing changed files.
1946 * The inotify auto-refresh feature makes it difficult to select text in
1947 the "diff" editor when files are being continually modified by another
1948 process. The auto-refresh causes it to lose the currently selected text,
1949 which is not wanted. We now avoid this problem by saving and restoring
1950 the selection when refreshing the editor.
1952 https://github.com/git-cola/git-cola/issues/155
1954 * More strings have been marked for l10n.
1956 https://github.com/git-cola/git-cola/issues/157
1958 * Fixed the Alt+D Diffstat shortcut.
1960 https://github.com/git-cola/git-cola/issues/159
1964 * Better error handling when cloning repositories.
1966 We were not handling the case where a git URL has
1967 no basename, e.g. `https://git.example.com/`.
1968 `git cola` originally rejected these URLs instead of
1969 allowing users to clone them. It now allows these URLs
1970 when they point to valid git repositories.
1972 Additionally, `git cola` learned to echo the errors
1973 reported by `git clone` when it fails.
1975 https://github.com/git-cola/git-cola/issues/156
1981 Usability, bells and whistles
1982 -----------------------------
1983 * `git dag` got a big visual upgrade.
1985 * `Ctrl+G` now launches the "Grep" tool.
1987 * `Ctrl+D` launches difftool and `Ctrl+E` launches your editor
1988 when in the diff panel.
1990 * git-cola can now be told to use an alternative language.
1991 For example, if the native language is German and we want git-cola to
1992 use English then we can create a `~/.config/git-cola/language` file with
1993 "en" as its contents:
1995 $ echo en >~/.config/git-cola/language
1997 https://github.com/git-cola/git-cola/issues/140
1999 * A new `git cola merge` sub-command was added for merging branches.
2001 * Less blocking in the main UI
2005 * Autocomplete issues on KDE
2007 https://github.com/git-cola/git-cola/issues/144
2009 * The "recently opened repositories" startup dialog did not
2010 display itself in the absence of bookmarks.
2012 https://github.com/git-cola/git-cola/issues/139
2018 Usability, bells and whistles
2019 -----------------------------
2020 * `git cola` learned to honor `.gitattributes` when showing and
2021 interactively applying diffs. This makes it possible to store
2022 files in git using a non-utf-8 encoding and `git cola` will
2023 properly accept them. This must be enabled by settings
2024 `cola.fileattributes` to true, as it incurs a small performance
2027 https://github.com/git-cola/git-cola/issues/96
2029 * `git cola` now wraps commit messages at 72 columns automatically.
2030 This is configurable using the `cola.linebreak` variable to enable/disable
2031 the feature, and `cola.textwidth` to configure the limit.
2033 https://github.com/git-cola/git-cola/issues/133
2035 * A new "Open Recent" sub-menu was added to the "File" menu.
2036 This makes it easy to open a recently-edited repository.
2038 https://github.com/git-cola/git-cola/issues/135
2040 * We now show a preview for untracked files when they are clicked
2041 using the `Status` tool.
2042 * A new "Open Using Default Application" action was added to the
2043 `Status` tool. It is activated using either `Spacebar` or through
2044 the context menu. This action uses `xdg-open` on Linux and
2046 * A new "Open Parent Directory" action was added to the `Status` tool.
2047 It is activated using either `Shift+Spacebar` or through the
2049 * `git dag` learned to honor the `log.date` git configuration variable.
2050 This makes the date display follow whatever format the user has
2052 * A new `git cola config` sub-command was added for quickly
2053 tweaking `git cola`'s git configuration settings.
2054 * Some small usability tweaks -- some user confirmation prompts
2055 were defaulting to "Cancel" when they should have been defaulting
2056 to the affirmative option instead.
2060 * Properly handle arbitrarily-named branches.
2061 * We went back to launching `git mergetool` using an xterm.
2062 The reason is that there are a couple of places where `git mergetool`
2063 requires a terminal for user interaction not covered by `--no-prompt`.
2064 * We now properly handle an edge case when applying short diffs at
2065 the start of a file.
2071 Usability, bells and whistles
2072 -----------------------------
2073 * New and improved `grep` mode lets you instantly find and edit files.
2074 * New `git cola grep` standalone mode.
2075 * Support for passing arguments to the configured editors, e.g. `gvim -p`
2076 This makes it possible to select multiple files in the status
2077 window and use `Ctrl-e` to edit them all at once.
2078 * Remote operations now prompt on errors only.
2079 * The `Tab` key now jumps to the extended description when editing the summary.
2080 * More shortcut key labels and misc. UX improvements.
2084 * Selecting an item no longer copies its filename to the copy/paste buffer.
2085 `Ctrl-c` or the "Copy" context-menu action can be used instead.
2086 * The repository monitoring feature on Windows learned to ignore
2087 changes within the ".git" directory. Thanks to Andreas Sommer.
2089 https://github.com/git-cola/git-cola/issues/120
2095 Usability, bells and whistles
2096 -----------------------------
2097 * `git dag` learned to color-code branchy edges.
2098 The edge colors change when a new branch is detected,
2099 which makes the history much easier to follow.
2100 A huge thanks to Uri Okrent for making it happen.
2102 * New GUI for editing remote repositories.
2104 * New `git cola archive` and `git cola remote` sub-commands.
2106 * `git cola browser` learned an 'Untrack' command.
2108 * The diff editor learned to staged/unstaged while amending.
2110 * The status tool can now scroll horizontally.
2112 * New git repositories can be created by clicking 'New' on the
2113 `git cola --prompt` startup screen.
2119 Usability, bells and whistles
2120 -----------------------------
2121 * Auto-completion was added to more tools.
2123 * `git dag` is easier to use on smaller displays -- the author
2124 field elides its text which allows for a more compact display.
2126 * Selected commits in `git dag` were made more prominent and
2129 * 'Create Branch' learned to fetch remote branches and uses a
2130 background thread to do so.
2132 * User-configured GUI tools are listed alphabetically in the 'Actions' menu.
2134 * The 'Pull' dialog remembers the value of the 'Rebase' checkbox
2135 between invocations.
2143 * Detect Homebrew so that OS X users do not need to set PYTHONPATH.
2145 * `git dag` can export patches again.
2151 Usability, bells and whistles
2152 -----------------------------
2153 * The 'Classic' tool was renamed to 'Browser' and learned to
2154 limit history to the current branch.
2156 * `git dag` learned about gravatar and uses it to show images
2159 * `git dag` learned to use OpenGL for rendering resulting in
2160 much faster rendering.
2162 * More dialogs learned vim-style keyboard shortcuts.
2164 * The commit message editor learned better arrow key navigation.
2170 Usability, bells and whistles
2171 -----------------------------
2172 * `git cola` learned a few new sub commands:
2180 * `Return` in the summary field jumps to the extended description.
2182 * `Ctrl+Return` is now a shortcut for 'Commit'.
2184 * Better French translation for 'Sign-off'.
2186 * The 'Search' widget now has a much simpler and streamlined
2189 * vim-style `h,j,k,l` navigation shortcuts were added to the DAG widget.
2191 * `git dag` no longer prompts for files when diffing commits if the
2192 text field contains paths.
2194 * General user interface and performance improvements.
2198 * The diff viewer no longer changes font size when holding `Control`
2199 while scrolling with the mouse wheel.
2201 * Files with a typechange (e.g. symlinks that become files, etc.)
2202 are now correctly identified as being modified.
2206 * The `cola.controllers` and `cola.views` packages were removed.
2212 Usability, bells and whistles
2213 -----------------------------
2214 * `git cola` can now launch sub commands, e.g.:
2225 * `git dag` is more responsive when gathering auto-completions.
2227 * Keyboard shortcuts are displayed when the '?' key is pressed.
2229 * Various keyboard shortcuts were added for improved usability.
2231 * The status widget now lists unmerged files before modified files.
2233 * vim-style `h,j,k,l` navigation shortcuts were added to the status widget.
2235 * A 'Recently Modified Files...' tool was added.
2237 * Tools can now be hidden with `Alt + #` (where `#` is a keyboard number)
2238 and focused with `Alt + Shift + #`.
2240 * The syntax highlighting colors for diffs was made less intrusive.
2242 * The commit message editor was redesigned to have a more compact
2243 and keyboard-convenient user interface.
2245 * Keyboard shortcuts for adding a Signed-off-by (`Ctrl + i`)
2246 and creating a commit (`Ctrl + m`) were added.
2248 * The status widget was adjusted to use less screen real-estate.
2252 * Avoid updating the index when responding to inotify events.
2253 This avoids interfering with operations such as `git rebase --interactive`.
2255 https://github.com/git-cola/git-cola/issues/99
2259 * Create `git-dag.pyw` in the win32 installer.
2261 * win32 shortcuts now contain explicit calls to `pythonw.exe` instead of
2262 calling the `.pyw` file directly.
2266 * The 'Apply Changes from Branch...' feature was removed.
2267 `git dag`'s 'Grab File...' feature used alongside the index/worktree editor
2268 is a simpler alternative.
2276 * Further enhanced the staging/unstaging behavior in the status widget.
2278 https://github.com/git-cola/git-cola/issues/97
2280 * Unmerged files are no longer listed as modified.
2284 The `cola-$version` tarballs on github were originally setup to
2285 have the same contents as the old tarballs hosted on tuxfamily.
2286 The `make dist` target was changed to write files to a
2287 `git-cola-$version` subdirectory and tarball.
2289 This makes the filenames consistent for the source tarball,
2290 the darwin .app tarball, and the win32 .exe installer.
2296 Usability, bells and whistles
2297 -----------------------------
2298 * Refined the staging/unstaging behavior for code reviews.
2300 https://github.com/git-cola/git-cola/issues/97
2302 * Added more styling and icons to menus and buttons.
2304 * Adjusted some terminology to more closely match the git CLI.
2308 * Boolean `git config` settings with no value are now supported
2309 (these are not created by git these days but exist in legacy repositories).
2311 * Unicode branches and tags are supported in the "branch diff" tool.
2313 * Guard against low-memory conditions and more interrupted system calls.
2317 * Added desktop launchers for git-cola.desktop and git-dag.desktop.
2318 This replaces the old cola.desktop, so some adjustments to RPM .spec
2319 and debian/ files will be needed.
2321 * Fixed the darwin app-tarball Makefile target to create relative paths.
2325 * The `--style` option was removed. `git cola` follows the system theme
2326 so there's no need for this option these days.
2332 Usability, bells and whistles
2333 -----------------------------
2334 * Export a patch series from `git dag` into a `patches/` directory.
2336 * `git dag` learned to diff commits, slice history along paths, etc.
2338 * Added instant-preview to the `git stash` widget.
2340 * A simpler preferences editor is used to edit `git config` values.
2342 https://github.com/git-cola/git-cola/issues/90
2344 https://github.com/git-cola/git-cola/issues/89
2346 * Previous commit messages can be re-loaded from the message editor.
2348 https://github.com/git-cola/git-cola/issues/33
2352 * Display commits with no file changes.
2354 https://github.com/git-cola/git-cola/issues/82
2356 * Improved the diff editor's copy/paste behavior
2358 https://github.com/git-cola/git-cola/issues/90
2362 * Bumped version number to ceil(minimum git version).
2363 `git cola` now requires `git` >= 1.6.3.
2365 * Simplified git-cola's versioning when building from tarballs
2366 outside of git. We no longer check for a 'version' file at
2367 the root of the repository. We instead keep a default version
2368 in `cola/version.py` and use it when `git cola`'s `.git` repository
2375 Usability, bells and whistles
2376 -----------------------------
2377 * inotify is much snappier and available on Windows
2378 thanks to Karl Bielefeldt.
2380 * New right-click command to add untracked files to .gitignore
2381 thanks to Audrius Karabanovas.
2383 * Stash, fetch, push, and pull usability improvements
2385 * General usability improvements
2387 * stderr is logged when applying partial diffs.
2391 * Files can be unstaged when amending.
2393 https://github.com/git-cola/git-cola/issues/82
2395 * Show the configured remote.$remote.pushurl in the GUI
2397 https://github.com/git-cola/git-cola/issues/83
2399 * Removed usage of the "user" module.
2401 https://github.com/git-cola/git-cola/issues/86
2403 * Avoids an extra `git update-index` call during startup.
2410 Usability, bells and whistles
2411 -----------------------------
2412 * We now provide better feedback when `git push` fails.
2414 https://github.com/git-cola/git-cola/issues/69
2416 * The Fetch, Push, and Pull dialogs now give better feedback
2417 when interacting with remotes. The dialogs are modal and
2418 a progress dialog is used.
2422 * More unicode fixes, again. It is now possible to have
2423 unicode branch names, repository paths, home directories, etc.
2424 This continued the work initiated by Redhat's bugzilla #694806.
2426 https://bugzilla.redhat.com/show_bug.cgi?id=694806
2432 Usability, bells and whistles
2433 -----------------------------
2434 * The `git cola` desktop launchers now prompt for a repo
2435 by default. This is done by using the new `--prompt`
2436 flag which tells `git cola` to ignore any git repositories
2437 in the current directory and prompt for one instead.
2441 * More Unicode fixes for repositories and home directories with
2442 embedded unicode characters. Thanks to Christian Jann for
2443 patience and helpful bug reports.
2445 * Fix the 'Clone' button in the startup dialog.
2451 Usability, bells and whistles
2452 -----------------------------
2453 * Faster startup time! `git cola` now offloads initialization
2454 to a background thread so that the GUI appears almost instantly.
2456 * Specialized diff options for p4merge, vimdiff, araxis, emerge,
2457 and ecmerge in difftool (backported from git.git).
2461 * Fix launching commands in the background on Windows
2462 (e.g. when launching `git difftool`).
2464 * Fix unicode errors when home or repository directories contain
2467 https://github.com/git-cola/git-cola/issues/74
2469 Redhat's bugzilla #694806
2471 https://bugzilla.redhat.com/show_bug.cgi?id=694806
2477 Usability, bells and whistles
2478 -----------------------------
2479 * The `cola classic` tool can be now configured to be dockable.
2481 https://github.com/git-cola/git-cola/issues/56
2483 * The `cola classic` tool now uses visual sigils to indicate a file's status.
2484 The idea and icons were provided by Uri Okrent.
2486 * Include the 'Rescan' button in the 'Actions' widget regardless
2487 of whether inotify is installed.
2491 * Fix installation of translations per Fedora
2492 This incorporates Fedora's fix for the translations path
2493 which originally appeared in cola-1.4.3-translations.patch.
2495 * Mac OS X git-cola developers can now generate git-cola.app
2496 application bundles using 'make app-bundle'.
2500 * Fixed a stacktrace when trying to use "Get Commit Message Template"
2501 with an unconfigured "commit.template" git config variable.
2503 https://github.com/git-cola/git-cola/issues/72
2505 This bug originated in Redhat's bugzilla #675721 via a Fedora user.
2507 https://bugzilla.redhat.com/show_bug.cgi?id=675721
2509 * Properly raise the main window on Mac OS X.
2511 * Properly handle staging a huge numbers of files at once.
2513 * Speed up 'git config' usage by fixing cola's caching proxy.
2515 * Guard against damaged ~/.cola files.
2521 Usability, bells and whistles
2522 -----------------------------
2523 * `git dag` now has a separate display area
2524 for displaying commit metadata. This area will soon
2525 grow additional functionality such as cherry-picking,
2530 * Fixed tests from a previous refactoring.
2532 * Guard against 'diff.external' configuration by always
2533 calling 'git diff' with the '--no-ext-diff' option.
2535 https://github.com/git-cola/git-cola/issues/67
2537 * Respect 'gui.diffcontext' so that cola's diff display
2538 shows the correct number of context lines.
2540 * Raise the GUI so that it is in the foreground on OS X.
2544 * We now allow distutils to rewrite cola's shebang line.
2545 This allows us to run on systems where "which python"
2546 is Python3k. This is exposed by setting the `PYTHON`
2547 Makefile variable to the location of python2.x.
2549 * git-cola.app is now a tiny download because it no longer
2550 contains Qt and PyQt. These libraries are provided as a
2553 http://code.google.com/p/git-cola/downloads/list
2559 Usability, bells and whistles
2560 -----------------------------
2561 * Clicking on paths in the status widget copies them into the
2562 copy/paste buffer for easy middle-clicking into terminals.
2564 * `Ctrl+C` in diff viewer copies the selected diff to the clipboard.
2568 * Fixed the disappearing actions buttons on PyQt 4.7.4
2569 as reported by Arch and Ubuntu 10.10.
2571 https://github.com/git-cola/git-cola/issues/62
2573 * Fixed mouse interaction with the status widget where some
2574 items could not be de-selected.
2578 * Removed hard-coded reference to lib/ when calculating Python's
2579 site-packages directory.
2585 Usability, bells and whistles
2586 -----------------------------
2587 * Removed "single-click to (un)stage" in the status view.
2588 This is a usability improvement since we no longer perform
2589 different actions depending on where a row is clicked.
2591 * Added ability to create unsigned, annotated tags.
2595 * Updated documentation to use `cola.git` instead of `cola.gitcmd`.
2601 Usability, bells and whistles
2602 -----------------------------
2603 * Allow un/staging by right-clicking top-level items
2605 https://github.com/git-cola/git-cola/issues/57
2607 * Running 'commit' with no staged changes prompts to allow
2610 https://github.com/git-cola/git-cola/issues/55
2612 * Fetch, Push, and Pull are now available via the menus
2614 https://github.com/git-cola/git-cola/issues/58
2618 * Simplified the actions widget to work around a regression
2621 https://github.com/git-cola/git-cola/issues/62
2627 Usability, bells and whistles
2628 -----------------------------
2629 * `git dag` interaction was made faster.
2633 * Added '...' indicators to the buttons for
2634 'Fetch...', 'Push...', 'Pull...', and 'Stash...'.
2636 https://github.com/git-cola/git-cola/issues/51
2638 * Fixed a hang-on-exit bug in the cola-provided
2639 'ssh-askpass' implementation.
2645 Usability, bells and whistles
2646 -----------------------------
2647 * Staging and unstaging is faster.
2649 https://github.com/git-cola/git-cola/issues/48
2651 * `git dag` reads history in a background thread.
2655 * Added :data:`cola.compat.hashlib` for `Python 2.4` compatibility
2656 * Improved `PyQt 4.1.x` compatibility.
2660 * Configured menu actions use ``sh -c`` for Windows portability.
2667 Usability, bells and whistles
2668 -----------------------------
2669 * Added support for the configurable ``guitool.<tool>.*``
2670 actions as described in ``git-config(1)``.
2672 https://github.com/git-cola/git-cola/issues/44
2674 http://schacon.github.com/git/git-config.html
2676 This makes it possible to add new actions to `git cola`
2677 by simply editing ``~/.gitconfig``. This implements the
2678 same guitool support as `git gui`.
2679 * Introduced a stat cache to speed up `git config` and
2680 repository status checks.
2681 * Added Alt-key shortcuts to the main `git cola` interface.
2682 * The `Actions` dock widget switches between a horizontal
2683 and vertical layout when resized.
2684 * We now use ``git diff --submodule`` for submodules
2685 (used when git >= 1.6.6).
2686 * The context menu for modified submodules includes an option
2687 to launch `git cola`.
2689 https://github.com/git-cola/git-cola/issues/17
2691 * Prefer ``$VISUAL`` over ``$EDITOR`` when both are defined.
2692 These are used to set a default editor in lieu of `core.editor`
2694 * Force the editor to be ``gvim`` when we see ``vim``.
2695 This prevents us from launching an editor in the (typically
2696 unattached) parent terminal and creating zombie editors
2697 that cannot be easily killed.
2698 * Selections are remembered and restored across updates.
2699 This makes the `partial-staging` workflow easier since the
2700 diff view will show the updated diff after staging.
2701 * Show the path to the current repository in a tooltip
2702 over the commit message editor.
2704 https://github.com/git-cola/git-cola/issues/45
2706 * Log internal ``git`` commands when ``GIT_COLA_TRACE`` is defined.
2708 https://github.com/git-cola/git-cola/issues/39
2712 * Improved backwards compatibility for Python 2.4.
2713 * `Review mode` can now review the current branch; it no longer
2714 requires you to checkout the branch into which the reviewed
2715 branch will be merged.
2716 * Guard against `color.ui = always` configuration when using
2717 `git log` by passing ``--no-color``.
2718 * ``yes`` and ``no`` are now supported as valid booleans
2719 by the `git config` parser.
2720 * Better defaults are used for `fetch`, `push`, and `pull`..
2722 https://github.com/git-cola/git-cola/issues/43
2726 * Removed colon (`:`) from the applilcation name on Windows
2728 https://github.com/git-cola/git-cola/issues/41
2730 * Fixed bugs with the Windows installer
2732 https://github.com/git-cola/git-cola/issues/40
2734 * Added a more standard i18n infrastructure. The install
2735 tree now has the common ``share/locale/$lang/LC_MESSAGES/git-cola.mo``
2736 layout in use by several projects.
2738 * Started trying to accommodate Mac OSX 10.6 (Snow Leopard)
2739 in the ``darwin/`` build scripts but our tester is yet to
2740 report success building a `.app` bundle.
2742 * Replaced use of ``perl`` in Sphinx/documentation Makefile
2743 with more-portable ``sed`` constructs. Thanks to
2744 Stefan Naewe for discovering the portability issues and
2745 providing msysgit-friendly patches.
2751 Usability, bells and whistles
2752 -----------------------------
2753 * It is now possible to checkout from the index as well
2754 as from `HEAD`. This corresponds to the
2755 `Removed Unstaged Changes` action in the `Repository Status` tool.
2756 * The `remote` dialogs (fetch, push, pull) are now slightly
2758 * Bookmarks can be selected when `git cola` is run outside of a git repository.
2759 * Added more user documentation. We now include many links to
2760 external git resources.
2761 * Added `git dag` to the available tools.
2762 `git dag` is a node-based DAG history browser.
2763 It doesn't do much yet, but it's been merged so that we can start
2764 building and improving upon it.
2768 * Fixed a missing ``import`` when showing `right-click` actions
2769 for unmerged files in the `Repository Status` tool.
2770 * ``git update-index --refresh`` is no longer run every time
2771 ``git cola version`` is run.
2772 * Don't try to watch non-existent directories when using `inotify`.
2773 * Use ``git rev-parse --symbolic-full-name`` plumbing to find
2774 the name of the current branch.
2778 * The ``Makefile`` will now conditionally include a ``config.mak``
2779 file located at the root of the project. This allows for user
2780 customizations such as changes to the `prefix` variable
2781 to be stored in a file so that custom settings do not need to
2782 be specified every time on the command-line.
2783 * The build scripts no longer require a ``.git`` directory to
2784 generate the ``builtin_version.py`` module. The release tarballs
2785 now include a ``version`` file at the root of the project which
2786 is used in lieu of having the git repository available.
2787 This allows for ``make clean && make`` to function outside of
2789 * Added maintainer's ``make dist`` target to the ``Makefile``.
2790 * The built-in `simplejson` and `jsonpickle` libraries can be
2791 excluded from ``make install`` by specifying the ``standalone=true``
2792 `make` variable. For example, ``make standalone=true install``.
2793 This corresponds to the ``--standalone`` option to ``setup.py``.
2800 Usability, bells and whistles
2801 -----------------------------
2802 * We now use patience diff by default when it is available via
2803 `git diff --patience`.
2804 * Allow closing the `cola classic` tool with `Ctrl+W`.
2808 * Fixed an unbound variable error in the `push` dialog.
2812 * Don't include `simplejson` in MANIFEST.in.
2813 * Update desktop entry to read `Cola Git GUI`.
2820 This feature release adds two new features directly from
2821 `git cola`'s github issues backlog. On the developer
2822 front, further work was done towards modularizing the code base.
2824 Usability, bells and whistles
2825 -----------------------------
2826 * Dragging and dropping patches invokes `git am`
2828 https://github.com/git-cola/git-cola/issues/3
2830 * A dialog to allow opening or cloning a repository
2831 is presented when `git cola` is launched outside of a git repository.
2833 https://github.com/git-cola/git-cola/issues/22
2835 * Warn when `push` is used to create a new branch
2837 https://github.com/git-cola/git-cola/issues/35
2839 * Optimized startup time by removing several calls to `git`.
2844 * `git cola` is once again compatible with PyQt 4.3.x.
2848 * `cola.gitcmds` was added to factor out git command-line utilities
2849 * `cola.gitcfg` was added for interacting with `git config`
2850 * `cola.models.browser` was added to factor out repobrowser data
2860 * Fix launching external applications on Windows
2861 * Ensure that the `amend` checkbox is unchecked when switching modes
2862 * Update the status tree when amending commits
2871 * Fix Lintian warnings
2880 * Fix X11 warnings on application startup
2889 * Added missing 'Exit Diff Mode' button for 'Diff Expression' mode
2891 https://github.com/git-cola/git-cola/issues/31
2893 * Fix a bug when initializing fonts on Windows
2895 https://github.com/git-cola/git-cola/issues/32
2904 * Keep entries in sorted order in the `cola classic` tool
2905 * Fix staging untracked files
2907 https://github.com/git-cola/git-cola/issues/27
2909 * Fix the `show` command in the Stash dialog
2911 https://github.com/git-cola/git-cola/issues/29
2913 * Fix a typo when loading merge commit messages
2915 https://github.com/git-cola/git-cola/issues/30
2922 This release focuses on a redesign of the git-cola user interface,
2923 a tags interface, and better integration of the `cola classic` tool.
2924 A flexible interface based on configurable docks is used to manage the
2925 various cola widgets.
2927 Usability, bells and whistles
2928 -----------------------------
2929 * New GUI is flexible and user-configurable
2930 * Individual widgets can be detached and rearranged arbitrarily
2931 * Add an interface for creating tags
2932 * Provide a fallback `SSH_ASKPASS` implementation to prompt for
2933 SSH passwords on fetch/push/pull
2934 * The commit message editor displays the current row/column and
2935 warns when lines get too long
2936 * The `cola classic` tool displays upstream changes
2937 * `git cola --classic` launches `cola classic` in standalone mode
2938 * Provide more information in log messages
2942 * Inherit the window manager's font settings
2943 * Miscellaneous PyQt4 bug fixes and workarounds
2947 * Removed all usage of Qt Designer `.ui` files
2948 * Simpler model/view architecture
2949 * Selection is now shared across tools
2950 * Centralized notifications are used to keep views in sync
2951 * The `cola.git` command class was made thread-safe
2952 * Less coupling between model and view actions
2953 * The status view was rewritten to use the MVC architecture
2954 * Added more documentation and tests
2961 Usability, bells and whistles
2962 -----------------------------
2963 * Added a `cola classic` tool for browsing the entire repository
2964 * Handle diff expressions with spaces
2965 * Handle renamed files
2969 * Handle carat `^` characters in diff expressions on Windows
2970 * Worked around a PyQt 4.5/4.6 QThreadPool bug
2974 * Added a keyboard shortcuts reference page
2975 * Added developer API documentation
2979 * Fix the diff expression used when reviewing branches
2980 * Fix a bug when pushing branches
2981 * Fix X11 warnings at startup
2982 * Fix more interrupted system calls on Mac OS X
2989 Usability, bells and whistles
2990 -----------------------------
2991 * Fresh and tasty SVG logos
2992 * Added `Branch Review` mode for reviewing topic branches
2993 * Added diff modes for diffing between tags, branches,
2994 or arbitrary `git diff` expressions
2995 * The push dialog selects the current branch by default.
2996 This is in preparation for `git 1.7.0` where unconfigured `git push`
2997 will refuse to push when run without specifying the remote name
2998 and branch. See the `git` release notes for more information
2999 * Support `open` and `clone` commands on Windows
3000 * Allow saving cola UI layouts
3001 * Re-enabled `double-click-to-stage` for unmerged entries.
3002 Disabling it for unmerged items was inconsistent, though safer.
3003 * Show diffs when navigating the status tree with the keyboard
3007 * Worked around `pyuic4` bugs in the `setup.py` build script
3008 * Added Mac OSX application bundles to the download page
3017 * `git difftool` became an official git command in `git 1.6.3`.
3018 * `git difftool` learned `--no-prompt` / `-y` and a corresponding
3019 `difftool.prompt` configuration variable
3021 Usability, bells and whistles
3022 -----------------------------
3023 * Warn when `non-fast-forward` is used with fetch, push or pull
3024 * Allow `Ctrl+C` to exit cola when run from the command line
3028 * Support Unicode font names
3029 * Handle interrupted system calls
3033 * `PEP-8`-ified more of the cola code base
3038 * All resources are now installed into `$prefix/share/git-cola`.
3039 Closed Debian bug #519972
3041 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=519972
3050 * Added support for Kompare in `git difftool`
3051 * Added a separate configuration namespace for `git difftool`
3052 * Added the `diff.tool` configuration variable to define the default diff tool
3054 Usability, bells and whistles
3055 -----------------------------
3056 * The stash dialog allows passing the `--keep-index` option to `git stash`
3057 * Amending a published commit warns at commit time
3058 * Simplified the file-across-revisions comparison dialog
3059 * `origin` is selected by default in fetch/push/pull
3060 * Removed the search field from the log widget
3061 * The log window moved into a drawer widget at the bottom of the UI
3062 * Log window display can be configured with
3063 `cola.showoutput` = `{never, always, errors}`. `errors` is the default.
3064 * `NOTE` -- `cola.showoutput` was removed with the GUI rewrite in 1.4.0.
3068 * Improved nose unittest usage
3072 * Added a Windows/msysGit installer
3073 * Included private versions of `simplejson` and `jsonpickle`
3074 for ease of installation and development