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 `git cola dag` DAG window now supports `git revert`.
26 https://github.com/git-cola/git-cola/issues/843
28 * `git stash pop` is now supported by the stash dialog.
30 https://github.com/git-cola/git-cola/issues/844
32 * The status widget now ensures that each item is visible when selection
33 changes. Previously, if you scrolled to the right to see the name of
34 a long filename, and then selected a short filename above it, the widget
35 may not have shown the short filename in the viewport. We now ensure
36 that the filenames are visible when the selection changes.
38 https://github.com/git-cola/git-cola/pull/828
40 * The `git xbase` rebase editor no longer displays an error when
41 cancelling an interactive rebase.
43 https://github.com/git-cola/git-cola/issues/814
45 * The dialog shown when renaming remotes has been simplified.
47 https://github.com/git-cola/git-cola/pull/840
49 https://github.com/git-cola/git-cola/issues/838
51 * The help dialog in the `git-xbase` Rebase editor is now scrollable.
53 https://github.com/git-cola/git-cola/issues/855
57 * Updated Brazilian translation
59 https://github.com/git-cola/git-cola/pull/845
61 * Updated Czech translation
63 https://github.com/git-cola/git-cola/pull/854
65 https://github.com/git-cola/git-cola/pull/853
67 https://github.com/git-cola/git-cola/pull/835
69 https://github.com/git-cola/git-cola/pull/813
71 * Update Spanish translation
73 https://github.com/git-cola/git-cola/pull/862
77 * The original `#!/usr/bin/env python` shebang lines can now be
78 retained by passing `USE_ENV_PYTHON=1` to `make` when installing.
80 https://github.com/git-cola/git-cola/issues/850
82 * The Makefile is now resilient to DESTDIR and prefix containing whitespace.
84 https://github.com/git-cola/git-cola/pull/858
86 * The vendored `qtpy` library was updated to `v1.4.2`.
88 * `python3-distutils` is needed to build cola on Debian.
90 https://github.com/git-cola/git-cola/issues/837
94 * The "C" key no longer closes the message dialogs, for example the
95 one that is shown when a commit fails its pre-commit hooks.
96 This allows "Ctrl+C" copy to work, rather than closing the dialog.
98 https://github.com/git-cola/git-cola/issues/734
100 * Dock widgets sizes are now properly saved and restored when the main
103 https://github.com/git-cola/git-cola/issues/848
105 * The spellcheck feature was broken under Python3.
107 https://github.com/git-cola/git-cola/issues/857
109 * A regression when saving stashes was fixed.
111 https://github.com/git-cola/git-cola/issues/847
113 * Diffing image files was not updating the available context menus,
114 which prevented the "Stage" action from being present in the menu.
116 https://github.com/git-cola/git-cola/issues/841
118 * `git cola` now detects when `git lfs uninstall` has been run. This allows
119 you to re-initialize "Git LFS" in an existing repository where it had been
120 previously uninstalled.
122 https://github.com/git-cola/git-cola/issues/842
124 * Custom color values that did not contain any hexadecimal digits in the
125 `a-f` range were being converted into integers by the config reader. This
126 then caused the configured colors to be ignored.
128 These color values are now interpreted correctly. Additionally, color
129 values can now use an optional HTML-like `#` prefix.
131 Example `.gitconfig` snippet::
136 https://github.com/git-cola/git-cola/pull/836
138 https://github.com/git-cola/git-cola/issues/849
140 * We now display an error message graphically when `Git` is not installed.
141 Previously, the message went to stderr only.
143 https://github.com/git-cola/git-cola/issues/830
145 * Changing diff options was causing resulting in an exception.
147 https://github.com/git-cola/git-cola/issues/833
149 https://github.com/git-cola/git-cola/pull/834
151 * The DAG window now updates itself when branches and tags are created.
153 https://github.com/git-cola/git-cola/issues/814
155 * The user's `$PATH` environment variable can now contain utf-8
156 encoded paths. Previously, launching external commands could
159 https://github.com/git-cola/git-cola/issues/807
161 * Git Cola development sandboxes can now be stored on utf-8 encoded
162 filesystem paths. Previously, the interactive rebase feature
163 could be broken when running in that environment.
165 https://github.com/git-cola/git-cola/issues/825
167 * The log window now uses an ISO-8601 timestamp, which
168 avoids localized output in the log window.
170 https://github.com/git-cola/git-cola/issues/817
177 Usability, bells and whistles
178 -----------------------------
179 * The "Browser" widget learned to rename files using "git mv".
181 https://github.com/git-cola/git-cola/issues/239
183 * The "Diff" widget learned to diff images. Side-by-side and pixel diff
184 modes allow you to inspect changes to common images formats.
186 https://github.com/git-cola/git-cola/issues/444
188 https://github.com/git-cola/git-cola/pull/803
190 * Git LFS and Git Annex are natively supported by the image diff viewer.
192 * Git Annex operations are now included. `git annex init` can be performed on
193 repositories, and `git annex add` can be run on untracked files from the
194 status widget. Install `git-annex` to activate this feature.
196 * Git LFS operations are now included. `git lfs install` can be performed on
197 repositories, and `git lfs track` can be run on untracked files from the
198 status widget. Install `git-lfs` to activate this feature.
200 * The "Stash" tool learned to stash staged changes only. Select the
201 "Stage Index" option and only staged changes will be stashed away.
203 https://github.com/git-cola/git-cola/issues/413
205 * The "Stash" tool learned to use vim-like navigation keyboard shortcuts,
206 shows error messages when things go wrong, and now saves the "Stash Index"
207 and "Keep Index" options across sessions.
209 * The Edit menu's "Copy" and "Select All" actions now forward to either the
210 diff, status, recent, or favorites widgets, based on which widget has focus.
212 * The "File" and "Edit" menu can now be activated using `Alt-{f,e}` hotkeys.
214 https://github.com/git-cola/git-cola/issues/759
216 * It was easy to accidentally trigger the first action in the `Status` tool's
217 context menu when using a quick right-click to bring up the menu.
218 A short sub-second delay was added to ensure that the top-most action is not
219 triggered unless enough time has passed. This prevents accidental
220 activation of the first item (typically "Stage" or "Unstage") without
221 burdening common use cases.
223 https://github.com/git-cola/git-cola/pull/755
225 https://github.com/git-cola/git-cola/issues/643
227 * The "Ctrl+S" hotkey now works for the header items in the Status tool.
228 Selected the "Modified" header item and activating the "Stage" hotkey,
229 for example, will stage all modified files. This works for the "Staged",
230 "Modified", and "Untracked" headers. This is not enabled for the
231 "Unmerged" header by design.
233 https://github.com/git-cola/git-cola/issues/772
235 * The list of "Recent" repositories previously capped the number of
236 repositories shown to 8 repositories. This can be set to a higher
237 value by setting the `cola.maxrecent` configuration variable.
239 https://github.com/git-cola/git-cola/issues/752
241 * The "Create Branch" dialog now prevents invalid branch names.
243 https://github.com/git-cola/git-cola/issues/765
245 * Updated Turkish translation.
247 https://github.com/git-cola/git-cola/pull/756
249 * Updated Ukrainian translation.
251 https://github.com/git-cola/git-cola/pull/753
253 * Updated German translation.
255 https://github.com/git-cola/git-cola/pull/802
257 * Updated Czech translation
259 https://github.com/git-cola/git-cola/pull/792
261 https://github.com/git-cola/git-cola/pull/806
263 * The window title can be configured to not display the absolute path of the
266 https://github.com/git-cola/git-cola/issues/775
268 * The "Edit Remotes" editor learned to edit remote URLS.
270 * Bare repositories can now be created by selecting the
271 "New Bare Repository..." action from the `File` menu.
273 * The "Branches" widget learned to configure upstream branches.
275 * A new `git cola clone` sub-command was added for cloning repositories.
279 * The vendored `qtpy` library was updated to `v1.3.1`.
281 * The macOS installation was made simpler for better compatibility with
284 https://github.com/git-cola/git-cola/issues/636
286 * The Windows installer is now much simpler. Git Cola now bundles
287 Python and PyQt5, so users need only install the "Git for Windows"
288 and "Git Cola" installers to get things working.
292 * Uninitialized difftool errors will now be displayed graphically.
293 They were previously going to the shell.
295 https://github.com/git-cola/git-cola/issues/457
297 * Translations marked "fuzzy" will no longer be used when translating strings.
299 https://github.com/git-cola/git-cola/issues/782
301 * Deleted unmerged files will now correctly use a deleted icon.
303 https://github.com/git-cola/git-cola/issues/479
305 * The `Ctrl+C` "Copy" hotkey on the diff viewer has been fixed.
307 https://github.com/git-cola/git-cola/issues/767
309 * The "Create Tag" dialog did not correctly handle the case when a signed
310 tag is requested, but no message is provided, and the user chooses to
311 create an unannotated tag instead. This convenience fallback will now
312 properly create an unsigned, unannotated tag.
314 https://github.com/git-cola/git-cola/issues/696
316 * `.gitconfig` and `.git/config` values editable by the Preferences dialog
317 (aka `git cola config`) will now get unset when set to an empty value.
318 For example, setting a different `user.email` in the current repository,
319 followed by a subsequent emptying of that field, would previously result in
320 an empty string getting stored in the config. This has been fixed so that
321 the value will now get unset in the config instead.
323 https://github.com/git-cola/git-cola/issues/406
325 * Spelling and typofixes.
327 https://github.com/git-cola/git-cola/pull/748
329 * `core.commentChar` is now honored when set in the local repository
332 https://github.com/git-cola/git-cola/issues/766
334 * The log window was using a format string that did not display
335 correctly in all locales. A locale-aware format is now used.
337 https://github.com/git-cola/git-cola/pull/800
339 * The dialog displayed when prompting for a reference could sometimes
342 https://github.com/git-cola/git-cola/pull/804
349 Usability, bells and whistles
350 -----------------------------
351 * Updated Simplified Chinese translation.
353 https://github.com/git-cola/git-cola/pull/726
355 * Updated Ukrainian translation.
357 https://github.com/git-cola/git-cola/pull/723
359 * New Czech translation.
361 https://github.com/git-cola/git-cola/pull/736
363 https://github.com/git-cola/git-cola/pull/737
365 https://github.com/git-cola/git-cola/pull/740
367 https://github.com/git-cola/git-cola/pull/743
369 * The "name" field in the "Create Tag" dialog now includes autocompletion,
370 which makes it easy to see which tags currently exist.
372 * `git cola` now has configurable toolbars. Use the `View -> Add toolbar`
373 menu item to add a toolbar.
375 * Setting `cola.expandtab` to `true` will now expand tabs into spaces
376 in the commit message editor. The number of spaces to insert is determined
377 by consulting `cola.tabwidth`, which defaults to `8`.
379 * The "Copy SHA-1" hotkey is now `Alt + Ctrl + C`, to avoid clobbering the
380 ability to copy text from the DAG window.
382 https://github.com/git-cola/git-cola/pull/705
384 * The "Prepare Commit Message" action can now be invoked via the
385 `Ctrl+Shift+Return` shortcut.
387 https://github.com/git-cola/git-cola/pull/707
389 * The `Branches` pane now has a filter field that highlights branches whose
390 names match the string entered into its text field.
392 https://github.com/git-cola/git-cola/pull/713
394 * Actions that are triggered in response to button presses were being
395 triggered when the button was pressed, rather than when it was released,
396 which was a usability flaw. All buttons now respond when clicked
397 rather than when pressed.
399 https://github.com/git-cola/git-cola/pull/715
401 * The DAG window will now only refresh when object IDs change.
402 Previously, the DAG would redraw itself in response to inotify events,
403 such as filesystem operations, which was disruptive when inspecting a large
404 diff in its diff viewer. The DAG will now only redraw when the object IDs
405 corresponding to its query input changes. Furthermore, when redrawing, the
406 scrollbar positions are retained to minimize disruption to the viewport
409 https://github.com/git-cola/git-cola/issues/620
411 https://github.com/git-cola/git-cola/issues/724
413 * The "About" dialog now includes the SHA-1 where Git Cola was built.
415 https://github.com/git-cola/git-cola/issues/530
417 * The "Status" widget now has "Copy Leading Path to Clipboard" and
418 "Copy Basename to Clipboard" actions.
420 https://github.com/git-cola/git-cola/issues/435
422 https://github.com/git-cola/git-cola/issues/436
424 * The "Status" widget now supports custom "Copy ... to Clipboard" actions.
426 https://github.com/git-cola/git-cola/issues/437
428 * The main menu now has an "Edit" menu.
430 https://github.com/git-cola/git-cola/issues/725
432 * `git dag` learned to checkout commits into a detached HEAD state.
434 https://github.com/git-cola/git-cola/issues/698
436 * The `status` widget's context menus now omit actions selection-dependent
437 actions when no file is selected.
439 https://github.com/git-cola/git-cola/pull/731
441 * The startup dialog now focuses the repository list so that repositories
442 can be selected with the keyboard without mouse intervention.
444 https://github.com/git-cola/git-cola/issues/741
448 * `git dag` now prevents nodes from overlapping in more situations.
450 https://github.com/git-cola/git-cola/pull/689
452 * Adding untracked Git submodule repo directories previously ran
453 `git add submodule/` but we now call `git add submodule` without
454 the trailing slash (`/`) to avoid staging files that belong to the
455 submodule (which is possibly a `git` bug). By working around the
456 buggy behavior we allow users to recover by issuing the appropriate
457 `git submodule add` command to properly register the submodule.
459 https://github.com/git-cola/git-cola/pull/681
461 * We now avoid `git for-each-ref --sort=version:refname` on versions
462 of `git` older than `v2.7.0`. Previously we only avoided it for
463 versions older than `v2.0.0`, which was a mistake.
465 https://github.com/git-cola/git-cola/pull/686
467 * The error message displayed when `git` is not installed has been fixed.
469 https://github.com/git-cola/git-cola/pull/686
471 * Adding new remotes was silently broken.
473 https://github.com/git-cola/git-cola/issues/684
475 https://github.com/git-cola/git-cola/pull/685
477 * The repo selection dialog had errors during startup when the
478 `cola.refreshonfocus` feature was enabled, as reported on Ubuntu 16.04.
480 https://github.com/git-cola/git-cola/issues/690
482 * Restored support for PyQt 4.6 (Centos 6.8)
484 https://github.com/git-cola/git-cola/issues/692
486 * Switching repositories now resets the "Amend Mode" and other settings
489 https://github.com/git-cola/git-cola/issues/710
491 * `git rebase` error messages now displayed when rebasing fails or stops
492 via the standalone `git cola rebase` front-end.
494 https://github.com/git-cola/git-cola/issues/721
496 * `git cola` learned to stage broken symlinks.
498 https://github.com/git-cola/git-cola/issues/727
500 * The "View History" feature in the `Browser` tool was fixed, and now
501 disambiguates between refs and paths.
503 https://github.com/git-cola/git-cola/issues/732
505 * The diff editor now has better support for files with CRLF `\r\n`
508 https://github.com/git-cola/git-cola/issues/730
510 * `cola.inotify` in a repo-local config is now honored
511 when `git cola` is launched from a desktop entry (`git cola --prompt`).
513 https://github.com/git-cola/git-cola/issues/695
520 Usability, bells and whistles
521 -----------------------------
522 * New Ukrainian translation.
524 https://github.com/git-cola/git-cola/pull/670
526 https://github.com/git-cola/git-cola/pull/672
528 * New and improved French translations.
530 * The new `Branches` widget makes it easier to checkout, merge, push,
531 and pull branches from a single interface.
533 * `git cola` now includes a dark icon theme. The dark icon theme can be
534 activated either by setting the `GIT_COLA_ICON_THEME` environment variable
535 to `dark`, by configuring `cola.icontheme` to `dark`, or by specifying
536 `--icon-theme=dark` on the command line.
538 https://github.com/git-cola/git-cola/pull/638
540 * Autocompletion was added to the `Fetch`, `Push`, and `Pull` dialogs.
542 * The commit message editor now remembers the "Spellcheck" setting
545 https://github.com/git-cola/git-cola/pull/645
547 * `git dag` now uses an improved algorithm for laying out the graph,
548 which avoids collisions under certain graph configurations, and
549 avoids overlapping tag with commits.
551 https://github.com/git-cola/git-cola/pull/648
553 https://github.com/git-cola/git-cola/pull/651
555 https://github.com/git-cola/git-cola/pull/654
557 https://github.com/git-cola/git-cola/pull/656
559 https://github.com/git-cola/git-cola/pull/659
561 * `git dag` now remembers its column sizes across sessions.
563 https://github.com/git-cola/git-cola/issues/674
565 * `Grep` now shows a preview of the selected file's content in a split window
566 below the grep results.
568 * `Grep` now includes line numbers in the preview pane's output.
570 * `Edit Remotes` now remembers its window settings after exiting.
572 * `Diff` now has an option to display line numbers in the editor.
574 https://github.com/git-cola/git-cola/issues/136
576 * `Amend Last Commit` can now be triggered via the `Commit` menu in addition
577 to the commit message editor's options.
579 https://github.com/git-cola/git-cola/issues/640
581 * The `File Browser` tool was made much faster and can now operate on
582 much larger repositories.
584 https://github.com/git-cola/git-cola/issues/499
586 * A new "turbo" mode was added that allows you to opt-out of operations
587 that can slow `git cola` on large repositories. The turbo mode is
588 enabled by configuring `git config cola.turbo true`. Turbo mode
589 disables the background loading of Git commit messages and other
590 details in the `File Browser` widget.
592 * A new GitIgnore dialog allows adding custom gitignore patterns.
594 https://github.com/git-cola/git-cola/pull/653
596 * The spellchecker in `git cola` can now use an additional dictionary
597 by configuring `cola.dictionary` to the path to a file containing
598 a newline-separated list of words.
600 https://github.com/git-cola/git-cola/issues/663
602 * The stash, export patches, diff, and gitignore dialogs now remember
605 * A new `git cola recent` sub-command was added for finding recently
608 * The `Fetch` dialog now allows pruning remote branches.
610 https://github.com/git-cola/git-cola/issues/639
612 https://github.com/git-cola/git-cola/pull/680
616 * `git cola`'s spellchecker now supports the new `dict-common` filesystem
617 layout, and prefers the `/usr/share/dict/cracklib-small` file over the
618 `/usr/share/dict/words` provided on older distributions.
619 This makes the spellchecker compatible with Arch, which does not provide
620 a `words` symlink like Debian.
622 https://github.com/git-cola/git-cola/issues/663
624 * Properly handle the case where an existing file is untracked using
627 * Fix a quirk where the "Create Branch" dialog sometimes required clicking
628 twice on the radio buttons.
630 https://github.com/git-cola/git-cola/pull/662
632 * Fixed a focus issue to ensure that "Push", "Fetch", and "Pull" can
633 be executed with the press of a single enter key after being shown.
635 https://github.com/git-cola/git-cola/issues/661
637 * Committing is now allowed in when resolving a merge results in no
638 changes. This state was previously prevented by the commit message editor,
639 which prevented users from resolving merges that result in no changes.
641 https://github.com/git-cola/git-cola/pull/679
643 * The filesystem monitor would sometimes emit backtraces when directories
644 are modified. This has been fixed.
646 https://bugzilla.redhat.com/show_bug.cgi?id=1438522
648 * Absolute paths are now returned when querying for `.git`-relative paths
649 from within a submodule, which uses `.git`-files.
650 This fixes launching `git cola` from within a subdirectory of a submodule.
652 https://github.com/git-cola/git-cola/pull/675
659 Usability, bells and whistles
660 -----------------------------
661 * `git cola` can now invoke the `.git/hooks/cola-prepare-commit-msg`
662 hook to update the commit message. This hook takes the same parameters
663 as Git's `prepare-commit-message` hook. The default path to this hook
664 can be overridden by setting the `cola.prepareCommitMessageHook`
665 configuration variable.
667 http://git-cola.readthedocs.io/en/latest/git-cola.html#prepare-commit-message
669 * `git cola diff` (and the corresponding `Diff` menu actions) can now
670 launch difftool with the standard `Ctrl+D` hotkey. The `Ctrl+E` hotkey was
671 also added for launching an editor.
673 * Traditional Chinese (Taiwan) translation updates.
677 * `git cola` now works when installed in non-ascii, utf8-encoded paths.
679 https://github.com/git-cola/git-cola/issues/629
681 * Styling issues that caused black backgrounds in various widgets when using
682 PyQ5 on Mac OS X have been fixed.
684 https://github.com/git-cola/git-cola/issues/624
686 * The "Open Recent" menu action was broken and has been fixed.
688 https://github.com/git-cola/git-cola/issues/634
690 * Exiting `git cola` with a maximized main window would hang when reopened
693 https://github.com/git-cola/git-cola/issues/641
697 * `appdata.xml` files are now provided at
698 `share/appdata/git-cola.xml` and `share/appdata/git-dag.xml`
699 for use by the Linux software gallery.
701 https://people.freedesktop.org/~hughsient/appdata/
703 https://github.com/git-cola/git-cola/pull/627
712 * The "Open Recent" menu was updated to new bookmarks format.
714 https://github.com/git-cola/git-cola/issues/628
721 Usability, bells and whistles
722 -----------------------------
723 * New Polish translation thanks to Łukasz Wojniłowicz
725 https://github.com/git-cola/git-cola/pull/598
727 * The `Bypass Commit Hooks` feature now disables itself automatically
728 when a new commit is created. The new behavior turns the option into a
729 single-use flag, which helps prevent users from accidentally leaving it
730 active longer than intended.
732 https://github.com/git-cola/git-cola/pull/595
734 * `git dag` learned to launch an external diff viewer on selected commits.
735 The standard `Ctrl+D` shortcut can be used to view diffs.
737 https://github.com/git-cola/git-cola/issues/468
739 * `git dag` learned to launch directory diffs via `git difftool --dir-diff`.
740 The `Ctrl+Shift+D` shortcut launches difftool in directory-diff mode.
742 https://github.com/git-cola/git-cola/issues/468
744 * Items in the "Favorites" list can now be renamed, which makes it
745 easier to differentiate between several checkouts of the same repository.
747 https://github.com/git-cola/git-cola/issues/599
749 https://github.com/git-cola/git-cola/pull/601
751 * The startup screen now includes a logo and `git cola` version information.
753 https://github.com/git-cola/git-cola/issues/526
755 * The `About` page was revamped to contain multiple tabs. A new tab was added
756 that provides details about `git cola`''s dependencies. New tabs were also
757 added for giving credit to `git cola`'s authors and translators.
759 * The `About` page can now be accessed via `git cola about`.
761 * The "Fast-forward only" and "No fast-forward" options supported by
762 `git pull` are now accessible via `git cola pull`.
764 * Doing a forced push no longer requires selecting the remote branch.
766 https://github.com/git-cola/git-cola/pull/618
768 * `git cola push` now has an option to suppress the prompt that is shown
769 when pushing would create new remote branches.
771 https://github.com/git-cola/git-cola/issues/605
773 * `git dag` now shows commit messages in a more readable color.
775 https://github.com/git-cola/git-cola/issues/574
777 * `git cola browse` and the `status` widget learned to launch the OS-specified
778 default action for a file. When used on directories via `git cola browse`,
779 or when "Open Parent Directory" is used on files, the OS-specified
780 file browser will typically be used.
782 * `git cola browse` and the `status` widget learned to launch terminals.
786 * `git cola browse` was not updating when expanding items.
788 https://github.com/git-cola/git-cola/issues/588
790 * Typofixes in comments, naming, and strings have been applied.
792 https://github.com/git-cola/git-cola/pull/593
794 * The inotify and win32 filesystem monitoring no longer refreshes
795 when updates are made to ignored files.
797 https://github.com/git-cola/git-cola/issues/517
799 https://github.com/git-cola/git-cola/issues/516
801 * The `Refresh` button on the actions panel no longer raises an
802 exception when using PyQt5.
804 https://github.com/git-cola/git-cola/issues/604
806 * Fixed a typo in the inotify backend that is triggered when files are removed.
808 https://github.com/git-cola/git-cola/issues/607
810 * Fixed a typo when recovering from a failed attempt to open a repository.
812 https://github.com/git-cola/git-cola/issues/606
814 * `git dag` now properly updates itself when launched from the menubar.
816 https://github.com/git-cola/git-cola/pull/613
818 * If git-cola is invoked on Windows using `start pythonw git-cola`,
819 a console window will briefly flash on the screen each time
820 `git cola` invokes `git`. The console window is now suppressed.
822 * We now avoid some problematic Popen flags on Windows which were
823 breaking the `git rebase` feature on Windows.
825 * The `Save` button in `git dag`'s "Grab File..." feature now properly
826 prompts for a filename when saving files.
828 https://github.com/git-cola/git-cola/pull/617
832 * The `qtpy` symlink in the source tree has been removed to allow for easier
833 development on Windows.
835 https://github.com/git-cola/git-cola/issues/626
842 Usability, bells and whistles
843 -----------------------------
844 * `git cola push` learned to configure upstream branches.
846 https://github.com/git-cola/git-cola/issues/563
850 * The diffstat view is now properly updated when notifications are
851 received via inotify filesystem monitoring.
853 https://github.com/git-cola/git-cola/issues/577
855 * Python3 with PyQt5 had a bug that prevented `git cola` from starting.
857 https://github.com/git-cola/git-cola/pull/589
867 * When repositories stored in non-ASCII, UTF-8-encoded filesystem paths
868 were operated upon with `LC_ALL=C` set in the environment, unicode errors
869 would occur when using `python2`. `git cola` was made more robust and will
870 now operate correctly within this environment.
872 https://github.com/git-cola/git-cola/issues/581
874 * Support for the `GIT_WORK_TREE` environment variable was fixed.
876 https://github.com/git-cola/git-cola/pull/582
881 * The `unittest.mock` module is now used instead of the original `mock` module
882 when running the `git cola` test suite using Python3.
884 https://github.com/git-cola/git-cola/issues/569
889 * `git cola` is now compatible with *PyQt5*, *PyQt4*, and *Pyside*.
890 `git cola` previously supported *PyQt4* only, but will now use whichever
891 library is available. Users are not required to upgrade at this time,
892 but *PyQt5* support can be enabled anytime by making its python
895 https://github.com/git-cola/git-cola/issues/232
897 *NOTE*: We do not yet recommend using *PyQt5* because there are known
898 exit-on-segfault bugs in *Qt5* that have not yet been addressed.
899 `git cola` is sensitive to this bug and is known to crash on exit
900 when using `git dag` or the interactive rebase feature on *PyQt5*.
902 https://bugreports.qt.io/browse/QTBUG-52988
904 *PyQt4* is stable and there are no known issues when using it so
905 we recommend using it until the Qt5 bugs have been resolved.
907 * `git cola` now depends on *QtPy* and includes a bundled copy of the
908 `qtpy` library. If you are packaging `git cola` and would prefer to use
909 `qtpy` from your distribution instead of the built-in version then use
910 `make NO_VENDOR_LIBS=1` when building `git cola`. This will prevent
911 vendored libraries from being installed.
918 Usability, bells and whistles
919 -----------------------------
921 * A new "Reset" sub-menu provides access to running "git reset --mixed"
922 when resetting branch heads and "git reset --merge" when resetting
925 https://github.com/git-cola/git-cola/issues/542
927 * `git cola` now supports linked worktrees, i.e. worktrees created by
930 https://github.com/git-cola/git-cola/issues/554
935 * Diff highlighting is now robust to the user having
936 diff.supressBlankEmpty=true in their git config.
938 https://github.com/git-cola/git-cola/issues/541
940 * The filesystem monitor now properly handles repositories that use
941 `.git`-files, e.g. when using submodules.
943 https://github.com/git-cola/git-cola/issues/545
945 https://github.com/git-cola/git-cola/pulls/546
947 * Per-repository git configuration is now properly detected when launching
948 `git cola` from an application launcher.
950 https://github.com/git-cola/git-cola/issues/548
952 * `git cola` now cleans up after itself immediately to avoid leaving behind
953 empty `/tmp/git-cola-XXXXXX` directories when the user uses `Ctrl+C`
956 https://github.com/git-cola/git-cola/issues/566
961 * It is now possible to install `git cola` to and from utf8-encoded filesystem
962 paths. Previously, Python's stdlib would throw an encoding error during
963 installation. We workaround the stdlib by forcing python2 to use utf-8,
964 thus fixing assumptions in the stdlib library code.
966 https://github.com/git-cola/git-cola/issues/551
973 Usability, bells and whistles
974 -----------------------------
976 * The icon for untracked files was adjusted to better differentiate
977 between files and the "Untracked" header.
979 https://github.com/git-cola/git-cola/issues/509
981 * Ctrl+O was added as a hotkey for opening repositories.
983 https://github.com/git-cola/git-cola/pull/507
985 * `git dag` now uses consistent edge colors across updates.
987 https://github.com/git-cola/git-cola/issues/512
989 * `git cola`'s Bookmarks widget can now be used to set a "Default Repository".
990 Under the hood, we set the `cola.defaultrepo` configuration variable.
991 The default repository is used whenever `git cola` is launched outside of
992 a Git repository. When unset, or when set to a bogus value, `git cola`
993 will prompt for a repository, as it previously did.
995 https://github.com/git-cola/git-cola/issues/513
997 * `git cola`'s Russian and Spanish translations were improved
998 thanks to Vaiz and Zeioth.
1000 https://github.com/git-cola/git-cola/pull/514
1002 https://github.com/git-cola/git-cola/pull/515
1004 https://github.com/git-cola/git-cola/pull/523
1006 * `git cola` was translated to Turkish thanks to Barış ÇELİK.
1008 https://github.com/git-cola/git-cola/pull/520
1010 * The status view now supports launching `git gui blame`. It can be
1011 configured to use a different command by setting `cola.blameviewer`.
1013 https://github.com/git-cola/git-cola/pull/521
1015 * `git dag` now allows selecting non-contiguous ranges in the log widget.
1017 https://github.com/git-cola/git-cola/issues/468
1019 * Any font can now be chosen for the diff editor, not just monospace fonts.
1021 https://github.com/git-cola/git-cola/issues/525
1026 * `xfce4-terminal` and `gnome-terminal` are now supported when launching
1027 `git mergetool` to resolve merges. These terminals require that the command
1028 to execute is shell-quoted and passed as a single string argument to `-e`
1029 rather than as additional command line arguments.
1031 https://github.com/git-cola/git-cola/issues/524
1033 * Fixed a unicode problem when formatting the error message that is shown
1034 when `gitk` is not installed. We now handle unicode data in tracebacks
1035 generated by python itself.
1037 https://github.com/git-cola/git-cola/issues/528
1039 * The `New repository` feature was fixed.
1041 https://github.com/git-cola/git-cola/pull/533
1043 * We now use omit the extended description when creating "fixup!" commits,
1044 for consistency with the Git CLI. We now include only the one-line summary
1045 in the final commit message.
1047 https://github.com/git-cola/git-cola/issues/522
1054 Usability, bells and whistles
1055 -----------------------------
1057 * The user interface is now HiDPI-capable. git-cola now uses SVG
1058 icons, and its interface can be scaled by setting the `GIT_COLA_SCALE`
1059 environment variable.
1061 * `git dag` now supports the standard editor, difftool, and history hotkeys.
1062 It is now possible to invoke these actions from file widget's context
1063 menu and through the standard hotkeys.
1065 https://github.com/git-cola/git-cola/pull/473
1067 * The `Status` tool also learned about the history hotkey.
1068 Additionally, the `Alt-{j,k}` aliases are also supported in the `Status`
1069 tool for consistency with the other tools where the non-Alt hotkeys are not
1072 https://github.com/git-cola/git-cola/pull/488
1074 * The `File Browser` tool now has better default column sizes,
1075 and remembers its window size and placement.
1077 * The `File Browser` now supports the refresh hotkey, and has better
1078 behavior when refreshing. The selection is now retained, and new and
1079 removed files are found when refreshing.
1081 * A new `git-cola-completion.bash` completion script is provided in the
1082 `contrib/` directory. It must be used alongside Git's completion script.
1083 Source it from your `~/.bashrc` (or `~/.zshrc`, etc) after sourcing
1084 the `git-completion.bash` script and you will have command-line completion
1085 support for the `git cola` and `git dag` sub-commands.
1087 * The "checkout" dialog now offers completion for remote branches and other
1088 git refs. This makes it easier to checkout remote branches in a detached
1089 head state. Additionally, the checkout dialog also offers completion for
1090 remote branches that have not yet been checked out, which makes it easier to
1091 create a local tracking branch by just completing for that potential name.
1093 https://github.com/git-cola/git-cola/issues/390
1095 * The "create branch" and "create tag" dialogs now save and restore their
1098 * The "status" widget can now be configured to use a bold font with a darker
1099 background for the header items.
1101 https://github.com/git-cola/git-cola/pull/506
1103 * The "status" widget now remembers its horizontol scrollbar position across
1104 updates. This is helpful when working on projects with long paths.
1106 https://github.com/git-cola/git-cola/issues/494
1111 * When using *Git for Windows*, a `git` window would appear
1112 when running *Windows 8*. We now pass additional flags to
1113 `subprocess.Popen` to prevent a `git` window from appearing.
1115 https://github.com/git-cola/git-cola/issues/477
1117 https://github.com/git-cola/git-cola/pull/486
1119 * Launching difftool with `.PY` in `$PATHEXT` on Windows was fixed.
1121 https://github.com/git-cola/git-cola/issues/492
1123 * Creating a local branch tracking a remote branch that contains
1124 slashes in its name is now properly handled.
1126 https://github.com/git-cola/git-cola/issues/496
1128 * The "Browse Other Branch" feature was broken by Python3, and is now fixed.
1130 https://github.com/git-cola/git-cola/issues/501
1132 * We now avoid `long` for better Python3 compatibility.
1134 https://github.com/git-cola/git-cola/issues/502
1136 * We now use Git's default merge message when merging branches.
1138 https://github.com/git-cola/git-cola/issues/508
1140 * Miscellaneous fixes
1142 https://github.com/git-cola/git-cola/pull/485
1147 * git-cola's documentation no longer uses an intersphinx link mapping
1148 to docs.python.org. This fixes warnings when building rpms using koji,
1149 where network access is prevented.
1151 https://bugzilla.redhat.com/show_bug.cgi?id=1231812
1158 Usability, bells and whistles
1159 -----------------------------
1161 * The Interactive Rebase feature now works on Windows!
1163 https://github.com/git-cola/git-cola/issues/463
1165 * The `diff` editor now understands vim-style `hjkl` navigation hotkeys.
1167 https://github.com/git-cola/git-cola/issues/476
1169 * `Alt-{j,k}` navigation hotkeys were added to allow changing to the
1170 next/previous file from the diff and commit editors.
1172 * The `Rename branch` menu action is now disabled in empty repositories.
1174 https://github.com/git-cola/git-cola/pull/475
1176 https://github.com/git-cola/git-cola/issues/459
1178 * `git cola` now checks unmerged files for conflict markers before
1179 staging them. This feature can be disabled in the preferences.
1181 https://github.com/git-cola/git-cola/issues/464
1183 * `git dag` now remembers which commits were selected when refreshing
1184 so that it can restore the selection afterwards.
1186 https://github.com/git-cola/git-cola/issues/480
1188 * "Launch Editor", "Launch Difftool", "Stage/Unstage",
1189 and "Move Up/Down" hotkeys now work when the commit message
1192 https://github.com/git-cola/git-cola/issues/453
1194 * The diff editor now supports the `Ctrl+u` hotkey for reverting
1195 diff hunks and selected lines.
1197 * The `core.commentChar` Git configuration value is now honored.
1198 Commit messages and rebase instruction sheets will now use
1199 the configured character for comments. This allows having
1200 commit messages that start with `#` when `core.commentChar`
1201 is configured to its non-default value.
1203 https://github.com/git-cola/git-cola/issues/446
1208 * Diff syntax highlighting was improved to handle more edge cases
1209 and false positives.
1211 https://github.com/git-cola/git-cola/pull/467
1213 * Setting commands in the interactive rebase editor was fixed.
1215 https://github.com/git-cola/git-cola/issues/472
1217 * git-cola no longer clobbers the Ctrl+Backspace text editing shortcut
1218 in the commit message editor.
1220 https://github.com/git-cola/git-cola/issues/453
1222 * The copy/paste clipboard now persists after `git cola` exits.
1224 https://github.com/git-cola/git-cola/issues/484
1233 * Fixed the "Sign off" feature in the commit message editor.
1240 Usability, bells and whistles
1241 -----------------------------
1242 * Double-click will now choose a commit in the "Select commit" dialog.
1244 * `git cola` has a feature that reads `.git/MERGE_MSG` and friends for the
1245 commit message when a merge is in-progress. Upon refresh, `git cola` will
1246 now detect when a merge has completed and reset the commit message back to
1247 its previous state. It is only reset if the editor contains a message
1248 that was read from the file and has not been manually edited by the user.
1250 * The commit message editor's context menu now has a "Clear..." action for
1251 clearing the message across both the summary and description fields.
1253 * Traditional Chinese (Taiwan) translation updates.
1255 * The system theme's icons are now used wherever possible.
1257 https://github.com/git-cola/git-cola/pull/458
1261 * The stash viewer now uses ``git show --no-ext-diff`` to avoid running
1262 user-configured diff tools.
1264 * `git cola` now uses the `setsid()` system call to ensure that the
1265 `GIT_ASKPASS` and `SSH_ASKPASS` helper programs are used when pushing
1266 changes using `git`. The askpass helpers will now be used even when
1267 `git cola` is launched from a terminal.
1269 The behavior without `setsid()` is that `git cola` can appear to hang while
1270 pushing changes. The hang happens when `git` prompts the user for a
1271 password using the terminal, but the user never sees the prompt. `setsid()`
1272 detaches the terminal, which ensures that the askpass helpers are used.
1274 https://github.com/git-cola/git-cola/issues/218
1276 https://github.com/git-cola/git-cola/issues/262
1278 https://github.com/git-cola/git-cola/issues/377
1280 * `git dag`'s file list tool was updated to properly handle unicode paths.
1282 * `gnome-terminal` is no longer used by default when `cola.terminal` is unset.
1283 It is broken, as was detailed in #456.
1285 https://github.com/git-cola/git-cola/issues/456
1287 * The interactive rebase feature was not always setting `$GIT_EDITOR`
1288 to the value of `gui.editor`, thus there could be instances where rebase
1289 will seem to not stop, or hang, when performing "reword" actions.
1291 We now set the `$GIT_EDITOR` environment variable when performing the
1292 "Continue", "Skip", and "Edit Todo" rebase actions so that the correct
1293 editor is used during the rebase.
1295 https://github.com/git-cola/git-cola/issues/445
1299 * `git cola` moved from a 3-part version number to a simpler 2-part "vX.Y"
1300 version number. Most of our releases tend to contain new features.
1307 Usability, bells and whistles
1308 -----------------------------
1309 * Updated zh_TW translations.
1311 * `git cola rebase` now defaults to `@{upstream}`, and generally uses the same
1312 CLI syntax as `git rebase`.
1314 * The commit message editor now allows you to bypass commit hooks by selecting
1315 the "Bypass Commit Hooks" option. This is equivalent to passing the
1316 `--no-verify` option to `git commit`.
1318 https://github.com/git-cola/git-cola/issues/357
1320 * We now prevent the "Delete Files" action from creating a dialog that does
1323 https://github.com/git-cola/git-cola/issues/378
1325 * `git xbase` learned to edit rebase instruction sheets that contain
1328 * The diff colors are now configurable. `cola.color.{text,add,remove,header}`
1329 can now be set with 6-digit hexadecimal colors.
1330 See the `git cola manual <https://git-cola.readthedocs.io/en/latest/git-cola.html#configuration-variables>_`
1333 * Improved hotkey documentation.
1337 * `git cola` will now allow starting an interactive rebase with a dirty
1338 worktree when `rebase.autostash` is set.
1340 https://github.com/git-cola/git-cola/issues/360
1347 Usability, bells and whistles
1348 -----------------------------
1349 * A new "Find files" widget was added, and can be activated by
1350 using the `Ctrl+t` or `t` hotkeys.
1352 * A new `git cola find` sub-command was added for finding files.
1354 * `git cola` now remembers the text cursor's position when staging
1355 interactively with the keyboard. This makes it easier to use the keyboard
1356 arrows to select and stage lines.
1358 * The completion widgets will now select the top completion item
1359 when `Enter` or `Return` are pressed.
1361 * You can now refresh using `F5` in addition to the existing `Ctrl+R` hotkey.
1365 * `git cola` now passes `--no-abbrev-commit` to `git log` to override
1366 having `log.abbrevCommit = true` set in `.gitconfig`.
1372 Usability, bells and whistles
1373 -----------------------------
1374 * `git dag` now forwards all unknown arguments along to `git log`.
1376 https://github.com/git-cola/git-cola/issues/389
1378 * Line-by-line interactive staging was made more robust.
1380 https://github.com/git-cola/git-cola/pull/399
1382 * "Bookmarks" was renamed to "Favorites".
1384 https://github.com/git-cola/git-cola/issues/392
1386 * Untracked files are now displayed using a unique icon.
1388 https://github.com/git-cola/git-cola/pull/388
1392 * `git dag` was triggering a traceback on Fedora when parsing Git logs.
1394 https://bugzilla.redhat.com/show_bug.cgi?id=1181686
1396 * inotify expects unicode paths on Python3.
1398 https://github.com/git-cola/git-cola/pull/393
1400 * Untracked files are now assumed to be utf-8 encoded.
1402 https://github.com/git-cola/git-cola/issues/401
1408 Usability, bells and whistles
1409 -----------------------------
1410 * `git cola` can now create GPG-signed commits and merges.
1412 https://github.com/git-cola/git-cola/issues/149
1414 See the documentation for details about setting up a GPG agent.
1416 * The status widget learned to copy relative paths when `Ctrl+x` is pressed.
1418 https://github.com/git-cola/git-cola/issues/358
1420 * Custom GUI actions can now define their own keyboard shortcuts by
1421 setting `guitool.$name.shortcut` to a string understood by Qt's
1422 `QAction::setShortcut()` API, e.g. `Alt+X`.
1424 See http://qt-project.org/doc/qt-4.8/qkeysequence.html#QKeySequence-2
1425 for more details about the supported values.
1427 * `git cola` learned to rename branches.
1429 https://github.com/git-cola/git-cola/pull/364
1431 https://github.com/git-cola/git-cola/issues/278
1433 * `git dag` now has a "Show history" context menu which can be used to filter
1434 history using the selected paths.
1438 * `sphinxtogithub.py` was fixed for Python3.
1440 https://github.com/git-cola/git-cola/pull/353
1442 * The commit that changed how we read remotes from `git remote`
1443 to parsing `git config` was reverted since it created problems
1446 * Fixed a crash when using the `rebase edit` feature.
1448 https://github.com/git-cola/git-cola/issues/351
1450 * Better drag-and-drop behavior when dropping into gnome-terminal.
1452 https://github.com/git-cola/git-cola/issues/373
1456 * The `git-cola-folder-handler.desktop` file handler was fixed
1457 to pass validation by `desktop-file-validate`.
1459 https://github.com/git-cola/git-cola/issues/356
1461 * The `git.svg` icon was renamed to `git-cola.svg`, and `git cola` was taught
1462 to prefer icons from the desktop theme when available.
1468 Usability, bells and whistles
1469 -----------------------------
1470 * New hotkey: `Ctrl+Shift+M` merges branches.
1472 * New hotkey: `Ctrl+R` refreshes the DAG viewer.
1474 https://github.com/git-cola/git-cola/issues/347
1478 * We now use `git config` to parse the list of remotes
1479 instead of parsing the output of `git remote`, which
1480 is a Git porcelain and should not be used by scripts.
1482 * Avoid "C++ object has been deleted" errors from PyQt4.
1484 https://github.com/git-cola/git-cola/issues/346
1488 * The `make install` target now uses `install` instead of `cp`.
1494 Usability, bells and whistles
1495 -----------------------------
1496 * Updated Brazillian Portuguese translation.
1498 * The status and browse widgets now allow drag-and-drop into
1499 external applications.
1501 https://github.com/git-cola/git-cola/issues/335
1503 * We now show a progress bar when cloning repositories.
1505 https://github.com/git-cola/git-cola/issues/312
1507 * The bookmarks widget was simplified to not need a
1510 https://github.com/git-cola/git-cola/issues/289
1512 * Updated Traditional Chinese translation.
1514 * We now display a warning when trying to rebase with uncommitted changes.
1516 https://github.com/git-cola/git-cola/issues/338
1518 * The status widget learned to filter paths.
1519 `Ctrl+Shift+S` toggles the filter widget.
1521 https://github.com/git-cola/git-cola/issues/337
1523 https://github.com/git-cola/git-cola/pull/339
1525 * The status widget learned to move files to the trash
1526 when the `send2trash <https://github.com/hsoft/send2trash>`_
1527 module is installed.
1529 https://github.com/git-cola/git-cola/issues/341
1531 * "Recent repositories" is now a dedicated widget.
1533 https://github.com/git-cola/git-cola/issues/342
1535 * New Spanish translation thanks to Pilar Molina Lopez.
1537 https://github.com/git-cola/git-cola/pull/344
1541 * Newly added remotes are now properly seen by the fetch/push/pull dialogs.
1543 https://github.com/git-cola/git-cola/issues/343
1549 Usability, bells and whistles
1550 -----------------------------
1551 * New Brazillian Portuguese translation thanks to Vitor Lobo.
1553 * New Indonesian translation thanks to Samsul Ma'arif.
1555 * Updated Simplified Chinese translation thanks to Zhang Han.
1557 * `Ctrl+Backspace` is now a hotkey for "delete untracked files" in
1560 * Fetch/Push/Pull dialogs now use the configured remote of the current
1563 https://github.com/git-cola/git-cola/pull/324
1567 * We now use `os.getcwd()` on Python3.
1569 https://github.com/git-cola/git-cola/pull/316
1571 https://github.com/git-cola/git-cola/pull/326
1573 * The `Ctrl+P` hotkey was overloaded to both "push" and "cherry-pick",
1574 so "cherry-pick" was moved to `Ctrl+Shift+C`.
1576 * Custom GUI tools with mixed-case names are now properly supported.
1578 * "Diff Region" is now referred to as "Diff Hunk" for consistency
1579 with common terminology from diff/patch tools.
1581 https://github.com/git-cola/git-cola/issues/328
1583 * git-cola's test suite is now portable to MS Windows.
1585 https://github.com/git-cola/git-cola/pull/332
1591 Usability, bells and whistles
1592 -----------------------------
1593 * We now handle the case when inotify `add_watch()` fails
1594 and display instructions on how to increase the number of watches.
1596 https://github.com/git-cola/git-cola/issues/263
1598 * New and improved zh_TW localization thanks to V字龍(Vdragon).
1600 https://github.com/git-cola/git-cola/pull/265
1602 https://github.com/git-cola/git-cola/pull/267
1604 https://github.com/git-cola/git-cola/pull/268
1606 https://github.com/git-cola/git-cola/issues/269
1608 https://github.com/git-cola/git-cola/pull/270
1610 https://github.com/git-cola/git-cola/pull/271
1612 https://github.com/git-cola/git-cola/pull/272
1614 * New hotkeys: `Ctrl+F` for fetch, `Ctrl+P` for push,
1615 and `Ctrl+Shift+P` for pull.
1617 * The bookmarks widget's context menu actions were made clearer.
1619 https://github.com/git-cola/git-cola/issues/281
1621 * The term "Staging Area" is used consistently in the UI
1622 to allow for better localization.
1624 https://github.com/git-cola/git-cola/issues/283
1626 * The "Section" term is now referred to as "Diff Region"
1629 https://github.com/git-cola/git-cola/issues/297
1631 * The localization documentation related to the LANGUAGE
1632 environment variable was improved.
1634 https://github.com/git-cola/git-cola/pull/293
1636 * The "Actions" panel now contains tooltips for each button
1637 in case the button labels gets truncated by Qt.
1639 https://github.com/git-cola/git-cola/issues/292
1641 * Custom `git config`-defined actions can now be run in the
1642 background by setting `guitool.<name>.background` to `true`.
1646 * We now use bold fonts instead of SmallCaps to avoid
1647 artifacts on several configurations.
1649 * We now pickup `user.email`, `cola.tabwidth`, and similar settings
1650 when defined in /etc/gitconfig.
1652 https://github.com/git-cola/git-cola/issues/259
1654 * Better support for unicode paths when using inotify.
1656 https://bugzilla.redhat.com/show_bug.cgi?id=1104181
1658 * Unicode fixes for non-ascii locales.
1660 https://github.com/git-cola/git-cola/issues/266
1662 https://github.com/git-cola/git-cola/issues/273
1664 https://github.com/git-cola/git-cola/issues/276
1666 https://github.com/git-cola/git-cola/issues/282
1668 https://github.com/git-cola/git-cola/issues/298
1670 https://github.com/git-cola/git-cola/issues/302
1672 https://github.com/git-cola/git-cola/issues/303
1674 https://github.com/git-cola/git-cola/issues/305
1676 * Viewing history from the file browser was fixed for Python3.
1678 https://github.com/git-cola/git-cola/issues/274
1680 * setup.py was fixed to install the `*.rst` documentation.
1682 https://github.com/git-cola/git-cola/issues/279
1684 * Patch export was fixed for Python3.
1686 https://github.com/git-cola/git-cola/issues/290
1688 * Fixed adding a bookmark with trailing slashes.
1690 https://github.com/git-cola/git-cola/pull/295
1692 * The default `git dag` layout is now setup so that its widgets
1693 can be freely resized on Linux.
1695 https://github.com/git-cola/git-cola/issues/299
1697 * Invalid tag names are now reported when creating tags.
1699 https://github.com/git-cola/git-cola/pull/296
1705 Usability, bells and whistles
1706 -----------------------------
1707 * `git cola` no longer prompts after successfully creating a new branch.
1709 https://github.com/git-cola/git-cola/pull/251
1711 * Hitting enter on simple dialogs now accepts them.
1713 https://github.com/git-cola/git-cola/pull/255
1717 * `git dag` no longer relies on `sys.maxint`, which is
1718 not available in Python3.
1720 https://github.com/git-cola/git-cola/issues/249
1722 * Python3-related fixes.
1724 https://github.com/git-cola/git-cola/pull/254
1726 * Python3-on-Windows-related fixes.
1728 https://github.com/git-cola/git-cola/pull/250
1730 https://github.com/git-cola/git-cola/pull/252
1732 https://github.com/git-cola/git-cola/pull/253
1734 * Switching repositories using the bookmarks widget was not
1735 refreshing the inotify watcher.
1737 https://github.com/git-cola/git-cola/pull/256
1739 * Special commit messages trailers (e.g. "Acked-by:") are now special-cased to
1740 fix word wrapping lines that start with "foo:".
1742 https://github.com/git-cola/git-cola/issues/257
1744 * `git dag` sometimes left behind selection artifacts.
1745 We now refresh the view to avoid them.
1747 https://github.com/git-cola/git-cola/issues/204
1753 Usability, bells and whistles
1754 -----------------------------
1755 * Better inotify support for file creation and deletion.
1757 https://github.com/git-cola/git-cola/issues/240
1759 * `git cola` now supports the X11 Session Management Protocol
1760 and remembers its state across logout/reboot.
1762 https://github.com/git-cola/git-cola/issues/164
1764 * `git cola` has a new icon.
1766 https://github.com/git-cola/git-cola/issues/190
1770 * Building the documentation no longer requires `asciidoc`.
1771 We now use `Sphinx <http://sphinx-doc.org/>`_ for building
1772 html documentation and man pages.
1776 * Reworked the git-dag gravatar icon code to avoid a unicode
1779 * Commit message line-wrapping was made to better match the GUI editor.
1781 https://github.com/git-cola/git-cola/issues/242
1783 * Better support for Python3 on Windows
1785 https://github.com/git-cola/git-cola/issues/246
1789 * git-cola no longer depends on Asciidoc for building its documentation
1790 and man-pages. We now depend on [Sphinx](http://sphinx-doc.org/) only.
1796 Usability, bells and whistles
1797 -----------------------------
1798 * Some context menu actions are now hidden when selected
1801 https://github.com/git-cola/git-cola/issues/238
1805 * The build-git-cola.sh contrib script was improved.
1807 https://github.com/git-cola/git-cola/pull/235
1809 * Non-ascii worktrees work properly again.
1811 https://github.com/git-cola/git-cola/issues/234
1813 * The browser now guards itself against missing files.
1815 https://bugzilla.redhat.com/show_bug.cgi?id=1071378
1817 * Saving widget state now works under Python3.
1819 https://github.com/git-cola/git-cola/pull/236
1827 * git-cola now runs on Python 3 thanks to Virgil Dupras.
1829 https://github.com/git-cola/git-cola/pull/233
1831 * Python 2.6, 2.7, and 3.2+ are now supported.
1832 Python 2.5 is no longer supported.
1836 * i18n test fixes thanks to Virgil Dupras.
1838 https://github.com/git-cola/git-cola/pull/231
1840 * git-cola.app build fixes thanks to Maicon D. Filippsen.
1842 https://github.com/git-cola/git-cola/pull/230
1844 * Lots of pylint improvements thanks to Alex Chernetz.
1846 https://github.com/git-cola/git-cola/pull/229
1852 Usability, bells and whistles
1853 -----------------------------
1854 * The new `Bookmarks` tool makes it really easy to switch between repositories.
1856 * There is now a dedicated dialog for applying patches.
1857 See the ``File -> Apply Patches`` menu item.
1859 https://github.com/git-cola/git-cola/issues/215
1861 * A new `git cola am` sub-command was added for applying patches.
1865 * Fixed a typo that caused inotify events to be silently ignored.
1867 * Fixed the sys.path setup for Mac OS X (Homebrew).
1869 https://github.com/git-cola/git-cola/issues/221
1871 * Lots of pylint fixes thanks to Alex Chernetz.
1877 Usability, bells and whistles
1878 -----------------------------
1879 * `git cola --amend` now starts the editor in `amend` mode.
1881 https://github.com/git-cola/git-cola/issues/187
1883 * Multiple lines of text can now be pasted into the `summary` field.
1884 All text beyond the first newline will be automatically moved to the
1885 `extended description` field.
1887 https://github.com/git-cola/git-cola/issues/212
1891 * Stray whitespace in `.git` files is now ignored.
1893 https://github.com/git-cola/git-cola/issues/213
1895 * Fix "known incorrect sRGB profile" in `staged-item.png`.
1897 http://comments.gmane.org/gmane.linux.gentoo.devel/85066
1905 * Fix a traceback when `git push` fails.
1907 https://bugzilla.redhat.com/show_bug.cgi?id=1034778
1911 * Most of the git-cola sub-packages have been removed.
1912 The only remaining packages are `cola`, `cola.models`,
1915 * The translation file for Simplified Chinese was renamed
1918 https://github.com/git-cola/git-cola/issues/209
1926 * `git cola version --brief` now prints the brief version number.
1930 * Resurrected the "make dist" target, for those that prefer to create
1933 * Fixed the typo that broke the preferences dialog.
1939 Usability, bells and whistles
1940 -----------------------------
1941 * We now ship a full-featured interactive `git rebase` editor.
1942 The rebase todo file is edited using the `git xbase` script which
1943 is provided at `$prefix/share/git-cola/bin/git-xbase`.
1944 This script can be used standalone by setting the `$GIT_SEQUENCE_EDITOR`
1945 before running `git rebase --interactive`.
1947 https://github.com/git-cola/git-cola/issues/1
1949 * Fixup commit messages can now be loaded from the commit message editor.
1951 * Tool widgets can be locked in place by using the "Tools/Lock Layout"
1954 https://github.com/git-cola/git-cola/issues/202
1956 * You can now push to several remotes simultaneously by selecting
1957 multiple remotes in the "Push" dialog.
1959 https://github.com/git-cola/git-cola/issues/148
1961 * The `grep` tool learned to search using three different modes:
1962 basic regular expressions (default), extended regular expressions,
1967 * `git cola` now depends on the `argparse` Python module.
1968 This module is part of the stdlib in Python 2.7 and must
1969 be installed separately when using Python 2.6 and below.
1973 * Support unicode in the output from `fetch`, `push`, and `pull`.
1979 Usability, bells and whistles
1980 -----------------------------
1981 * We now detect when the editor or history browser are misconfigured.
1983 https://github.com/git-cola/git-cola/issues/197
1985 https://bugzilla.redhat.com/show_bug.cgi?id=886826
1987 * Display of untracked files can be disabled from the Preferences dialog
1988 or by setting the `gui.displayuntracked` configuration variable to `false`.
1990 http://thread.gmane.org/gmane.comp.version-control.git/232683
1994 * Unicode stash names are now supported
1996 https://github.com/git-cola/git-cola/issues/198
1998 * The diffs produced when reverting workspace changes were made more robust.
2003 =======================
2004 Usability, bells and whistles
2005 -----------------------------
2006 * Brand new German translation thanks to Sven Claussner.
2008 * The "File" menu now provides a "New Repository..." menu action.
2010 * `git dag` now uses a dock-widget interface so that its widgets can
2011 be laid-out and arranged. Customizations are saved and restored
2012 the next time `git dag` is launched.
2014 * `git dag` now has a "Zoom Best Fit" button next alongside the
2015 "Zoom In" and "Zoom Out" buttons.
2017 * `Ctrl+L` now focuses the "Search" field in the `git dag` tool.
2019 * Right-clicking in the "diff" viewer now updates the cursor position
2020 before performing actions, which makes it much easier to click around
2021 and selectively stage sections. Previously, the current cursor position
2022 was used which meant that it required two clicks (left-click to update
2023 the position followed by right-click to get the context menu) for the
2024 desired section to be used. This is now a single right-click operation.
2026 * The `Ctrl+D` "Launch Diff Tool" action learned to automatically choose
2027 between `git difftool` and `git mergetool`. If the file is unmerged then
2028 we automatically launch `git mergetool` on the path, otherwise we use
2029 `git difftool`. We do this because `git difftool` is not intended to
2030 be used on unmerged paths. Automatically using `git mergetool` when
2031 appropriate is the most intuitive and muscle-memory-friendly thing to do.
2033 * You can now right-click on folders in your standard file browser
2034 and choose "Open With -> Git Cola" (Linux-only).
2038 * Python 2.6 on Mac OS X Snow Leopard does not provide a namedtuple
2039 at `sys.version_info`. We now avoid using that variable for better
2042 * We now read the user's Git configuration from `~/.config/git/config`
2043 if that file is available, otherwise we use the traditional `~/.gitconfig`
2044 path, just like Git itself.
2046 * Some edge cases were fixed when applying partial/selected diffs.
2048 * The diff viewer is now properly cleared when refreshing.
2050 https://github.com/git-cola/git-cola/issues/194
2056 Usability, bells and whistles
2057 -----------------------------
2058 * The diff viewer now has an "Options" menu which can be
2059 used to set "git diff" options. This can be used to
2060 ignore whitespace changes or to show a change with its
2061 surrounding function as context.
2063 https://github.com/git-cola/git-cola/issues/150
2065 * `git cola` now remembers your commit message and will restore it
2066 when `git cola` is restarted.
2068 https://github.com/git-cola/git-cola/pull/175
2070 * `Ctrl+M` can now be used to toggle the "Amend last commit"
2071 checkbox in the commit message editor.
2073 https://github.com/git-cola/git-cola/pull/161
2075 * Deleting remote branches can now be done from the "Branch" menu.
2077 https://github.com/git-cola/git-cola/issues/152
2079 * The commit message editor now has a built-in spell checker.
2083 * We now avoid invoking external diffs when showing diffstats.
2085 https://github.com/git-cola/git-cola/pull/163
2087 * The `Status` tool learned to reselect files when refreshing.
2089 https://github.com/git-cola/git-cola/issues/165
2091 * `git cola` now remembers whether it has been maximized and will restore the
2092 maximized state when `git cola` is restarted.
2094 https://github.com/git-cola/git-cola/issues/172
2096 * Performance is now vastly improved when staging hundreds or
2099 * `git cola` was not correctly saving repo-specific configuration.
2101 https://github.com/git-cola/git-cola/issues/174
2103 * Fix a UnicodeDecode in sphinxtogithub when building from source.
2109 Usability, bells and whistles
2110 -----------------------------
2111 * We now automatically remove missing repositories from the
2112 "Select Repository" dialog.
2114 https://github.com/git-cola/git-cola/issues/145
2116 * A new `git cola diff` sub-command was added for diffing changed files.
2120 * The inotify auto-refresh feature makes it difficult to select text in
2121 the "diff" editor when files are being continually modified by another
2122 process. The auto-refresh causes it to lose the currently selected text,
2123 which is not wanted. We now avoid this problem by saving and restoring
2124 the selection when refreshing the editor.
2126 https://github.com/git-cola/git-cola/issues/155
2128 * More strings have been marked for l10n.
2130 https://github.com/git-cola/git-cola/issues/157
2132 * Fixed the Alt+D Diffstat shortcut.
2134 https://github.com/git-cola/git-cola/issues/159
2138 * Better error handling when cloning repositories.
2140 We were not handling the case where a git URL has
2141 no basename, e.g. `https://git.example.com/`.
2142 `git cola` originally rejected these URLs instead of
2143 allowing users to clone them. It now allows these URLs
2144 when they point to valid git repositories.
2146 Additionally, `git cola` learned to echo the errors
2147 reported by `git clone` when it fails.
2149 https://github.com/git-cola/git-cola/issues/156
2155 Usability, bells and whistles
2156 -----------------------------
2157 * `git dag` got a big visual upgrade.
2159 * `Ctrl+G` now launches the "Grep" tool.
2161 * `Ctrl+D` launches difftool and `Ctrl+E` launches your editor
2162 when in the diff panel.
2164 * git-cola can now be told to use an alternative language.
2165 For example, if the native language is German and we want git-cola to
2166 use English then we can create a `~/.config/git-cola/language` file with
2167 "en" as its contents:
2169 $ echo en >~/.config/git-cola/language
2171 https://github.com/git-cola/git-cola/issues/140
2173 * A new `git cola merge` sub-command was added for merging branches.
2175 * Less blocking in the main UI
2179 * Autocomplete issues on KDE
2181 https://github.com/git-cola/git-cola/issues/144
2183 * The "recently opened repositories" startup dialog did not
2184 display itself in the absence of bookmarks.
2186 https://github.com/git-cola/git-cola/issues/139
2192 Usability, bells and whistles
2193 -----------------------------
2194 * `git cola` learned to honor `.gitattributes` when showing and
2195 interactively applying diffs. This makes it possible to store
2196 files in git using a non-utf-8 encoding and `git cola` will
2197 properly accept them. This must be enabled by settings
2198 `cola.fileattributes` to true, as it incurs a small performance
2201 https://github.com/git-cola/git-cola/issues/96
2203 * `git cola` now wraps commit messages at 72 columns automatically.
2204 This is configurable using the `cola.linebreak` variable to enable/disable
2205 the feature, and `cola.textwidth` to configure the limit.
2207 https://github.com/git-cola/git-cola/issues/133
2209 * A new "Open Recent" sub-menu was added to the "File" menu.
2210 This makes it easy to open a recently-edited repository.
2212 https://github.com/git-cola/git-cola/issues/135
2214 * We now show a preview for untracked files when they are clicked
2215 using the `Status` tool.
2216 * A new "Open Using Default Application" action was added to the
2217 `Status` tool. It is activated using either `Spacebar` or through
2218 the context menu. This action uses `xdg-open` on Linux and
2220 * A new "Open Parent Directory" action was added to the `Status` tool.
2221 It is activated using either `Shift+Spacebar` or through the
2223 * `git dag` learned to honor the `log.date` git configuration variable.
2224 This makes the date display follow whatever format the user has
2226 * A new `git cola config` sub-command was added for quickly
2227 tweaking `git cola`'s git configuration settings.
2228 * Some small usability tweaks -- some user confirmation prompts
2229 were defaulting to "Cancel" when they should have been defaulting
2230 to the affirmative option instead.
2234 * Properly handle arbitrarily-named branches.
2235 * We went back to launching `git mergetool` using an xterm.
2236 The reason is that there are a couple of places where `git mergetool`
2237 requires a terminal for user interaction not covered by `--no-prompt`.
2238 * We now properly handle an edge case when applying short diffs at
2239 the start of a file.
2245 Usability, bells and whistles
2246 -----------------------------
2247 * New and improved `grep` mode lets you instantly find and edit files.
2248 * New `git cola grep` standalone mode.
2249 * Support for passing arguments to the configured editors, e.g. `gvim -p`
2250 This makes it possible to select multiple files in the status
2251 window and use `Ctrl-e` to edit them all at once.
2252 * Remote operations now prompt on errors only.
2253 * The `Tab` key now jumps to the extended description when editing the summary.
2254 * More shortcut key labels and misc. UX improvements.
2258 * Selecting an item no longer copies its filename to the copy/paste buffer.
2259 `Ctrl-c` or the "Copy" context-menu action can be used instead.
2260 * The repository monitoring feature on Windows learned to ignore
2261 changes within the ".git" directory. Thanks to Andreas Sommer.
2263 https://github.com/git-cola/git-cola/issues/120
2269 Usability, bells and whistles
2270 -----------------------------
2271 * `git dag` learned to color-code branchy edges.
2272 The edge colors change when a new branch is detected,
2273 which makes the history much easier to follow.
2274 A huge thanks to Uri Okrent for making it happen.
2276 * New GUI for editing remote repositories.
2278 * New `git cola archive` and `git cola remote` sub-commands.
2280 * `git cola browser` learned an 'Untrack' command.
2282 * The diff editor learned to staged/unstaged while amending.
2284 * The status tool can now scroll horizontally.
2286 * New git repositories can be created by clicking 'New' on the
2287 `git cola --prompt` startup screen.
2293 Usability, bells and whistles
2294 -----------------------------
2295 * Auto-completion was added to more tools.
2297 * `git dag` is easier to use on smaller displays -- the author
2298 field elides its text which allows for a more compact display.
2300 * Selected commits in `git dag` were made more prominent and
2303 * 'Create Branch' learned to fetch remote branches and uses a
2304 background thread to do so.
2306 * User-configured GUI tools are listed alphabetically in the 'Actions' menu.
2308 * The 'Pull' dialog remembers the value of the 'Rebase' checkbox
2309 between invocations.
2317 * Detect Homebrew so that OS X users do not need to set PYTHONPATH.
2319 * `git dag` can export patches again.
2325 Usability, bells and whistles
2326 -----------------------------
2327 * The 'Classic' tool was renamed to 'Browser' and learned to
2328 limit history to the current branch.
2330 * `git dag` learned about gravatar and uses it to show images
2333 * `git dag` learned to use OpenGL for rendering resulting in
2334 much faster rendering.
2336 * More dialogs learned vim-style keyboard shortcuts.
2338 * The commit message editor learned better arrow key navigation.
2344 Usability, bells and whistles
2345 -----------------------------
2346 * `git cola` learned a few new sub commands:
2354 * `Return` in the summary field jumps to the extended description.
2356 * `Ctrl+Return` is now a shortcut for 'Commit'.
2358 * Better French translation for 'Sign-off'.
2360 * The 'Search' widget now has a much simpler and streamlined
2363 * vim-style `h,j,k,l` navigation shortcuts were added to the DAG widget.
2365 * `git dag` no longer prompts for files when diffing commits if the
2366 text field contains paths.
2368 * General user interface and performance improvements.
2372 * The diff viewer no longer changes font size when holding `Control`
2373 while scrolling with the mouse wheel.
2375 * Files with a typechange (e.g. symlinks that become files, etc.)
2376 are now correctly identified as being modified.
2380 * The `cola.controllers` and `cola.views` packages were removed.
2386 Usability, bells and whistles
2387 -----------------------------
2388 * `git cola` can now launch sub commands, e.g.:
2399 * `git dag` is more responsive when gathering auto-completions.
2401 * Keyboard shortcuts are displayed when the '?' key is pressed.
2403 * Various keyboard shortcuts were added for improved usability.
2405 * The status widget now lists unmerged files before modified files.
2407 * vim-style `h,j,k,l` navigation shortcuts were added to the status widget.
2409 * A 'Recently Modified Files...' tool was added.
2411 * Tools can now be hidden with `Alt + #` (where `#` is a keyboard number)
2412 and focused with `Alt + Shift + #`.
2414 * The syntax highlighting colors for diffs was made less intrusive.
2416 * The commit message editor was redesigned to have a more compact
2417 and keyboard-convenient user interface.
2419 * Keyboard shortcuts for adding a Signed-off-by (`Ctrl + i`)
2420 and creating a commit (`Ctrl + m`) were added.
2422 * The status widget was adjusted to use less screen real-estate.
2426 * Avoid updating the index when responding to inotify events.
2427 This avoids interfering with operations such as `git rebase --interactive`.
2429 https://github.com/git-cola/git-cola/issues/99
2433 * Create `git-dag.pyw` in the win32 installer.
2435 * win32 shortcuts now contain explicit calls to `pythonw.exe` instead of
2436 calling the `.pyw` file directly.
2440 * The 'Apply Changes from Branch...' feature was removed.
2441 `git dag`'s 'Grab File...' feature used alongside the index/worktree editor
2442 is a simpler alternative.
2450 * Further enhanced the staging/unstaging behavior in the status widget.
2452 https://github.com/git-cola/git-cola/issues/97
2454 * Unmerged files are no longer listed as modified.
2458 The `cola-$version` tarballs on github were originally setup to
2459 have the same contents as the old tarballs hosted on tuxfamily.
2460 The `make dist` target was changed to write files to a
2461 `git-cola-$version` subdirectory and tarball.
2463 This makes the filenames consistent for the source tarball,
2464 the darwin .app tarball, and the win32 .exe installer.
2470 Usability, bells and whistles
2471 -----------------------------
2472 * Refined the staging/unstaging behavior for code reviews.
2474 https://github.com/git-cola/git-cola/issues/97
2476 * Added more styling and icons to menus and buttons.
2478 * Adjusted some terminology to more closely match the git CLI.
2482 * Boolean `git config` settings with no value are now supported
2483 (these are not created by git these days but exist in legacy repositories).
2485 * Unicode branches and tags are supported in the "branch diff" tool.
2487 * Guard against low-memory conditions and more interrupted system calls.
2491 * Added desktop launchers for git-cola.desktop and git-dag.desktop.
2492 This replaces the old cola.desktop, so some adjustments to RPM .spec
2493 and debian/ files will be needed.
2495 * Fixed the darwin app-tarball Makefile target to create relative paths.
2499 * The `--style` option was removed. `git cola` follows the system theme
2500 so there's no need for this option these days.
2506 Usability, bells and whistles
2507 -----------------------------
2508 * Export a patch series from `git dag` into a `patches/` directory.
2510 * `git dag` learned to diff commits, slice history along paths, etc.
2512 * Added instant-preview to the `git stash` widget.
2514 * A simpler preferences editor is used to edit `git config` values.
2516 https://github.com/git-cola/git-cola/issues/90
2518 https://github.com/git-cola/git-cola/issues/89
2520 * Previous commit messages can be re-loaded from the message editor.
2522 https://github.com/git-cola/git-cola/issues/33
2526 * Display commits with no file changes.
2528 https://github.com/git-cola/git-cola/issues/82
2530 * Improved the diff editor's copy/paste behavior
2532 https://github.com/git-cola/git-cola/issues/90
2536 * Bumped version number to ceil(minimum git version).
2537 `git cola` now requires `git` >= 1.6.3.
2539 * Simplified git-cola's versioning when building from tarballs
2540 outside of git. We no longer check for a 'version' file at
2541 the root of the repository. We instead keep a default version
2542 in `cola/version.py` and use it when `git cola`'s `.git` repository
2549 Usability, bells and whistles
2550 -----------------------------
2551 * inotify is much snappier and available on Windows
2552 thanks to Karl Bielefeldt.
2554 * New right-click command to add untracked files to .gitignore
2555 thanks to Audrius Karabanovas.
2557 * Stash, fetch, push, and pull usability improvements
2559 * General usability improvements
2561 * stderr is logged when applying partial diffs.
2565 * Files can be unstaged when amending.
2567 https://github.com/git-cola/git-cola/issues/82
2569 * Show the configured remote.$remote.pushurl in the GUI
2571 https://github.com/git-cola/git-cola/issues/83
2573 * Removed usage of the "user" module.
2575 https://github.com/git-cola/git-cola/issues/86
2577 * Avoids an extra `git update-index` call during startup.
2584 Usability, bells and whistles
2585 -----------------------------
2586 * We now provide better feedback when `git push` fails.
2588 https://github.com/git-cola/git-cola/issues/69
2590 * The Fetch, Push, and Pull dialogs now give better feedback
2591 when interacting with remotes. The dialogs are modal and
2592 a progress dialog is used.
2596 * More unicode fixes, again. It is now possible to have
2597 unicode branch names, repository paths, home directories, etc.
2598 This continued the work initiated by Redhat's bugzilla #694806.
2600 https://bugzilla.redhat.com/show_bug.cgi?id=694806
2606 Usability, bells and whistles
2607 -----------------------------
2608 * The `git cola` desktop launchers now prompt for a repo
2609 by default. This is done by using the new `--prompt`
2610 flag which tells `git cola` to ignore any git repositories
2611 in the current directory and prompt for one instead.
2615 * More Unicode fixes for repositories and home directories with
2616 embedded unicode characters. Thanks to Christian Jann for
2617 patience and helpful bug reports.
2619 * Fix the 'Clone' button in the startup dialog.
2625 Usability, bells and whistles
2626 -----------------------------
2627 * Faster startup time! `git cola` now offloads initialization
2628 to a background thread so that the GUI appears almost instantly.
2630 * Specialized diff options for p4merge, vimdiff, araxis, emerge,
2631 and ecmerge in difftool (backported from git.git).
2635 * Fix launching commands in the background on Windows
2636 (e.g. when launching `git difftool`).
2638 * Fix unicode errors when home or repository directories contain
2641 https://github.com/git-cola/git-cola/issues/74
2643 Redhat's bugzilla #694806
2645 https://bugzilla.redhat.com/show_bug.cgi?id=694806
2651 Usability, bells and whistles
2652 -----------------------------
2653 * The `cola classic` tool can be now configured to be dockable.
2655 https://github.com/git-cola/git-cola/issues/56
2657 * The `cola classic` tool now uses visual sigils to indicate a file's status.
2658 The idea and icons were provided by Uri Okrent.
2660 * Include the 'Rescan' button in the 'Actions' widget regardless
2661 of whether inotify is installed.
2665 * Fix installation of translations per Fedora
2666 This incorporates Fedora's fix for the translations path
2667 which originally appeared in cola-1.4.3-translations.patch.
2669 * Mac OS X git-cola developers can now generate git-cola.app
2670 application bundles using 'make app-bundle'.
2674 * Fixed a stacktrace when trying to use "Get Commit Message Template"
2675 with an unconfigured "commit.template" git config variable.
2677 https://github.com/git-cola/git-cola/issues/72
2679 This bug originated in Redhat's bugzilla #675721 via a Fedora user.
2681 https://bugzilla.redhat.com/show_bug.cgi?id=675721
2683 * Properly raise the main window on Mac OS X.
2685 * Properly handle staging a huge numbers of files at once.
2687 * Speed up 'git config' usage by fixing cola's caching proxy.
2689 * Guard against damaged ~/.cola files.
2695 Usability, bells and whistles
2696 -----------------------------
2697 * `git dag` now has a separate display area
2698 for displaying commit metadata. This area will soon
2699 grow additional functionality such as cherry-picking,
2704 * Fixed tests from a previous refactoring.
2706 * Guard against 'diff.external' configuration by always
2707 calling 'git diff' with the '--no-ext-diff' option.
2709 https://github.com/git-cola/git-cola/issues/67
2711 * Respect 'gui.diffcontext' so that cola's diff display
2712 shows the correct number of context lines.
2714 * Raise the GUI so that it is in the foreground on OS X.
2718 * We now allow distutils to rewrite cola's shebang line.
2719 This allows us to run on systems where "which python"
2720 is Python3k. This is exposed by setting the `PYTHON`
2721 Makefile variable to the location of python2.x.
2723 * git-cola.app is now a tiny download because it no longer
2724 contains Qt and PyQt. These libraries are provided as a
2727 http://code.google.com/p/git-cola/downloads/list
2733 Usability, bells and whistles
2734 -----------------------------
2735 * Clicking on paths in the status widget copies them into the
2736 copy/paste buffer for easy middle-clicking into terminals.
2738 * `Ctrl+C` in diff viewer copies the selected diff to the clipboard.
2742 * Fixed the disappearing actions buttons on PyQt 4.7.4
2743 as reported by Arch and Ubuntu 10.10.
2745 https://github.com/git-cola/git-cola/issues/62
2747 * Fixed mouse interaction with the status widget where some
2748 items could not be de-selected.
2752 * Removed hard-coded reference to lib/ when calculating Python's
2753 site-packages directory.
2759 Usability, bells and whistles
2760 -----------------------------
2761 * Removed "single-click to (un)stage" in the status view.
2762 This is a usability improvement since we no longer perform
2763 different actions depending on where a row is clicked.
2765 * Added ability to create unsigned, annotated tags.
2769 * Updated documentation to use `cola.git` instead of `cola.gitcmd`.
2775 Usability, bells and whistles
2776 -----------------------------
2777 * Allow un/staging by right-clicking top-level items
2779 https://github.com/git-cola/git-cola/issues/57
2781 * Running 'commit' with no staged changes prompts to allow
2784 https://github.com/git-cola/git-cola/issues/55
2786 * Fetch, Push, and Pull are now available via the menus
2788 https://github.com/git-cola/git-cola/issues/58
2792 * Simplified the actions widget to work around a regression
2795 https://github.com/git-cola/git-cola/issues/62
2801 Usability, bells and whistles
2802 -----------------------------
2803 * `git dag` interaction was made faster.
2807 * Added '...' indicators to the buttons for
2808 'Fetch...', 'Push...', 'Pull...', and 'Stash...'.
2810 https://github.com/git-cola/git-cola/issues/51
2812 * Fixed a hang-on-exit bug in the cola-provided
2813 'ssh-askpass' implementation.
2819 Usability, bells and whistles
2820 -----------------------------
2821 * Staging and unstaging is faster.
2823 https://github.com/git-cola/git-cola/issues/48
2825 * `git dag` reads history in a background thread.
2829 * Added :data:`cola.compat.hashlib` for `Python 2.4` compatibility
2830 * Improved `PyQt 4.1.x` compatibility.
2834 * Configured menu actions use ``sh -c`` for Windows portability.
2841 Usability, bells and whistles
2842 -----------------------------
2843 * Added support for the configurable ``guitool.<tool>.*``
2844 actions as described in ``git-config(1)``.
2846 https://github.com/git-cola/git-cola/issues/44
2848 http://schacon.github.com/git/git-config.html
2850 This makes it possible to add new actions to `git cola`
2851 by simply editing ``~/.gitconfig``. This implements the
2852 same guitool support as `git gui`.
2853 * Introduced a stat cache to speed up `git config` and
2854 repository status checks.
2855 * Added Alt-key shortcuts to the main `git cola` interface.
2856 * The `Actions` dock widget switches between a horizontal
2857 and vertical layout when resized.
2858 * We now use ``git diff --submodule`` for submodules
2859 (used when git >= 1.6.6).
2860 * The context menu for modified submodules includes an option
2861 to launch `git cola`.
2863 https://github.com/git-cola/git-cola/issues/17
2865 * Prefer ``$VISUAL`` over ``$EDITOR`` when both are defined.
2866 These are used to set a default editor in lieu of `core.editor`
2868 * Force the editor to be ``gvim`` when we see ``vim``.
2869 This prevents us from launching an editor in the (typically
2870 unattached) parent terminal and creating zombie editors
2871 that cannot be easily killed.
2872 * Selections are remembered and restored across updates.
2873 This makes the `partial-staging` workflow easier since the
2874 diff view will show the updated diff after staging.
2875 * Show the path to the current repository in a tooltip
2876 over the commit message editor.
2878 https://github.com/git-cola/git-cola/issues/45
2880 * Log internal ``git`` commands when ``GIT_COLA_TRACE`` is defined.
2882 https://github.com/git-cola/git-cola/issues/39
2886 * Improved backwards compatibility for Python 2.4.
2887 * `Review mode` can now review the current branch; it no longer
2888 requires you to checkout the branch into which the reviewed
2889 branch will be merged.
2890 * Guard against `color.ui = always` configuration when using
2891 `git log` by passing ``--no-color``.
2892 * ``yes`` and ``no`` are now supported as valid booleans
2893 by the `git config` parser.
2894 * Better defaults are used for `fetch`, `push`, and `pull`..
2896 https://github.com/git-cola/git-cola/issues/43
2900 * Removed colon (`:`) from the applilcation name on Windows
2902 https://github.com/git-cola/git-cola/issues/41
2904 * Fixed bugs with the Windows installer
2906 https://github.com/git-cola/git-cola/issues/40
2908 * Added a more standard i18n infrastructure. The install
2909 tree now has the common ``share/locale/$lang/LC_MESSAGES/git-cola.mo``
2910 layout in use by several projects.
2912 * Started trying to accommodate Mac OSX 10.6 (Snow Leopard)
2913 in the ``darwin/`` build scripts but our tester is yet to
2914 report success building a `.app` bundle.
2916 * Replaced use of ``perl`` in Sphinx/documentation Makefile
2917 with more-portable ``sed`` constructs. Thanks to
2918 Stefan Naewe for discovering the portability issues and
2919 providing msysgit-friendly patches.
2925 Usability, bells and whistles
2926 -----------------------------
2927 * It is now possible to checkout from the index as well
2928 as from `HEAD`. This corresponds to the
2929 `Removed Unstaged Changes` action in the `Repository Status` tool.
2930 * The `remote` dialogs (fetch, push, pull) are now slightly
2932 * Bookmarks can be selected when `git cola` is run outside of a git repository.
2933 * Added more user documentation. We now include many links to
2934 external git resources.
2935 * Added `git dag` to the available tools.
2936 `git dag` is a node-based DAG history browser.
2937 It doesn't do much yet, but it's been merged so that we can start
2938 building and improving upon it.
2942 * Fixed a missing ``import`` when showing `right-click` actions
2943 for unmerged files in the `Repository Status` tool.
2944 * ``git update-index --refresh`` is no longer run every time
2945 ``git cola version`` is run.
2946 * Don't try to watch non-existent directories when using `inotify`.
2947 * Use ``git rev-parse --symbolic-full-name`` plumbing to find
2948 the name of the current branch.
2952 * The ``Makefile`` will now conditionally include a ``config.mak``
2953 file located at the root of the project. This allows for user
2954 customizations such as changes to the `prefix` variable
2955 to be stored in a file so that custom settings do not need to
2956 be specified every time on the command-line.
2957 * The build scripts no longer require a ``.git`` directory to
2958 generate the ``builtin_version.py`` module. The release tarballs
2959 now include a ``version`` file at the root of the project which
2960 is used in lieu of having the git repository available.
2961 This allows for ``make clean && make`` to function outside of
2963 * Added maintainer's ``make dist`` target to the ``Makefile``.
2964 * The built-in `simplejson` and `jsonpickle` libraries can be
2965 excluded from ``make install`` by specifying the ``standalone=true``
2966 `make` variable. For example, ``make standalone=true install``.
2967 This corresponds to the ``--standalone`` option to ``setup.py``.
2974 Usability, bells and whistles
2975 -----------------------------
2976 * We now use patience diff by default when it is available via
2977 `git diff --patience`.
2978 * Allow closing the `cola classic` tool with `Ctrl+W`.
2982 * Fixed an unbound variable error in the `push` dialog.
2986 * Don't include `simplejson` in MANIFEST.in.
2987 * Update desktop entry to read `Cola Git GUI`.
2994 This feature release adds two new features directly from
2995 `git cola`'s github issues backlog. On the developer
2996 front, further work was done towards modularizing the code base.
2998 Usability, bells and whistles
2999 -----------------------------
3000 * Dragging and dropping patches invokes `git am`
3002 https://github.com/git-cola/git-cola/issues/3
3004 * A dialog to allow opening or cloning a repository
3005 is presented when `git cola` is launched outside of a git repository.
3007 https://github.com/git-cola/git-cola/issues/22
3009 * Warn when `push` is used to create a new branch
3011 https://github.com/git-cola/git-cola/issues/35
3013 * Optimized startup time by removing several calls to `git`.
3018 * `git cola` is once again compatible with PyQt 4.3.x.
3022 * `cola.gitcmds` was added to factor out git command-line utilities
3023 * `cola.gitcfg` was added for interacting with `git config`
3024 * `cola.models.browser` was added to factor out repobrowser data
3034 * Fix launching external applications on Windows
3035 * Ensure that the `amend` checkbox is unchecked when switching modes
3036 * Update the status tree when amending commits
3045 * Fix Lintian warnings
3054 * Fix X11 warnings on application startup
3063 * Added missing 'Exit Diff Mode' button for 'Diff Expression' mode
3065 https://github.com/git-cola/git-cola/issues/31
3067 * Fix a bug when initializing fonts on Windows
3069 https://github.com/git-cola/git-cola/issues/32
3078 * Keep entries in sorted order in the `cola classic` tool
3079 * Fix staging untracked files
3081 https://github.com/git-cola/git-cola/issues/27
3083 * Fix the `show` command in the Stash dialog
3085 https://github.com/git-cola/git-cola/issues/29
3087 * Fix a typo when loading merge commit messages
3089 https://github.com/git-cola/git-cola/issues/30
3096 This release focuses on a redesign of the git-cola user interface,
3097 a tags interface, and better integration of the `cola classic` tool.
3098 A flexible interface based on configurable docks is used to manage the
3099 various cola widgets.
3101 Usability, bells and whistles
3102 -----------------------------
3103 * New GUI is flexible and user-configurable
3104 * Individual widgets can be detached and rearranged arbitrarily
3105 * Add an interface for creating tags
3106 * Provide a fallback `SSH_ASKPASS` implementation to prompt for
3107 SSH passwords on fetch/push/pull
3108 * The commit message editor displays the current row/column and
3109 warns when lines get too long
3110 * The `cola classic` tool displays upstream changes
3111 * `git cola --classic` launches `cola classic` in standalone mode
3112 * Provide more information in log messages
3116 * Inherit the window manager's font settings
3117 * Miscellaneous PyQt4 bug fixes and workarounds
3121 * Removed all usage of Qt Designer `.ui` files
3122 * Simpler model/view architecture
3123 * Selection is now shared across tools
3124 * Centralized notifications are used to keep views in sync
3125 * The `cola.git` command class was made thread-safe
3126 * Less coupling between model and view actions
3127 * The status view was rewritten to use the MVC architecture
3128 * Added more documentation and tests
3135 Usability, bells and whistles
3136 -----------------------------
3137 * Added a `cola classic` tool for browsing the entire repository
3138 * Handle diff expressions with spaces
3139 * Handle renamed files
3143 * Handle carat `^` characters in diff expressions on Windows
3144 * Worked around a PyQt 4.5/4.6 QThreadPool bug
3148 * Added a keyboard shortcuts reference page
3149 * Added developer API documentation
3153 * Fix the diff expression used when reviewing branches
3154 * Fix a bug when pushing branches
3155 * Fix X11 warnings at startup
3156 * Fix more interrupted system calls on Mac OS X
3163 Usability, bells and whistles
3164 -----------------------------
3165 * Fresh and tasty SVG logos
3166 * Added `Branch Review` mode for reviewing topic branches
3167 * Added diff modes for diffing between tags, branches,
3168 or arbitrary `git diff` expressions
3169 * The push dialog selects the current branch by default.
3170 This is in preparation for `git 1.7.0` where unconfigured `git push`
3171 will refuse to push when run without specifying the remote name
3172 and branch. See the `git` release notes for more information
3173 * Support `open` and `clone` commands on Windows
3174 * Allow saving cola UI layouts
3175 * Re-enabled `double-click-to-stage` for unmerged entries.
3176 Disabling it for unmerged items was inconsistent, though safer.
3177 * Show diffs when navigating the status tree with the keyboard
3181 * Worked around `pyuic4` bugs in the `setup.py` build script
3182 * Added Mac OSX application bundles to the download page
3191 * `git difftool` became an official git command in `git 1.6.3`.
3192 * `git difftool` learned `--no-prompt` / `-y` and a corresponding
3193 `difftool.prompt` configuration variable
3195 Usability, bells and whistles
3196 -----------------------------
3197 * Warn when `non-fast-forward` is used with fetch, push or pull
3198 * Allow `Ctrl+C` to exit cola when run from the command line
3202 * Support Unicode font names
3203 * Handle interrupted system calls
3207 * `PEP-8`-ified more of the cola code base
3212 * All resources are now installed into `$prefix/share/git-cola`.
3213 Closed Debian bug #519972
3215 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=519972
3224 * Added support for Kompare in `git difftool`
3225 * Added a separate configuration namespace for `git difftool`
3226 * Added the `diff.tool` configuration variable to define the default diff tool
3228 Usability, bells and whistles
3229 -----------------------------
3230 * The stash dialog allows passing the `--keep-index` option to `git stash`
3231 * Amending a published commit warns at commit time
3232 * Simplified the file-across-revisions comparison dialog
3233 * `origin` is selected by default in fetch/push/pull
3234 * Removed the search field from the log widget
3235 * The log window moved into a drawer widget at the bottom of the UI
3236 * Log window display can be configured with
3237 `cola.showoutput` = `{never, always, errors}`. `errors` is the default.
3238 * `NOTE` -- `cola.showoutput` was removed with the GUI rewrite in 1.4.0.
3242 * Improved nose unittest usage
3246 * Added a Windows/msysGit installer
3247 * Included private versions of `simplejson` and `jsonpickle`
3248 for ease of installation and development