8 :ref:`v3.2 <v3.2>` 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``
19 git-cola v3.3 (unreleased)
20 ==========================
22 Usability, bells and whistles
23 -----------------------------
24 * The textwidth and tabwidth configuration values can now be set
25 per-repository, rather than globally only.
27 * Text entry widgets switched to using a block cursor in `v3.2`.
28 This has been reverted to the original line cursor for consistency
29 with other applications and user expectations.
31 https://github.com/git-cola/git-cola/issues/889
33 * The "edit at line" feature, used by the "Grep" tool, now supports
34 the Sublime text editor.
36 https://github.com/git-cola/git-cola/pull/894
40 * The Diff Editor was not honoring the configured tab width on startup.
42 https://github.com/git-cola/git-cola/issues/900
44 * The "Delete Files" feature was creating an unreadable display when
45 many files were selected. Word-wrap the list of files so that the
46 display stays within a sensible size.
48 https://github.com/git-cola/git-cola/issues/895
50 * Spelling and grammar fixes.
52 https://github.com/git-cola/git-cola/pull/891
56 * The logo was run through `tidy` to give it a consistent style.
57 Some technical issues with the logo were improved.
59 https://github.com/git-cola/git-cola/issues/877
61 * The entire codebase is now checked by `flake8`, rather than just
62 the module and test directories. This catches things like
63 the pynsist installer scripts.
65 https://github.com/git-cola/git-cola/issues/884
67 https://github.com/git-cola/git-cola/issues/882
69 https://github.com/git-cola/git-cola/pull/879
73 * The Windows installer's wrapper scripts were missing an import.
75 https://github.com/git-cola/git-cola/issues/878
82 Usability, bells and whistles
83 -----------------------------
84 * The `git cola dag` DAG window now supports `git revert`.
86 https://github.com/git-cola/git-cola/issues/843
88 * `git stash pop` is now supported by the stash dialog.
90 https://github.com/git-cola/git-cola/issues/844
92 * The status widget now ensures that each item is visible when selection
93 changes. Previously, if you scrolled to the right to see the name of
94 a long filename, and then selected a short filename above it, the widget
95 may not have shown the short filename in the viewport. We now ensure
96 that the filenames are visible when the selection changes.
98 https://github.com/git-cola/git-cola/pull/828
100 * The `git xbase` rebase editor no longer displays an error when
101 cancelling an interactive rebase.
103 https://github.com/git-cola/git-cola/issues/814
105 * The dialog shown when renaming remotes has been simplified.
107 https://github.com/git-cola/git-cola/pull/840
109 https://github.com/git-cola/git-cola/issues/838
111 * The help dialog in the `git-xbase` Rebase editor is now scrollable.
113 https://github.com/git-cola/git-cola/issues/855
117 * Updated Brazilian translation
119 https://github.com/git-cola/git-cola/pull/845
121 * Updated Czech translation
123 https://github.com/git-cola/git-cola/pull/854
125 https://github.com/git-cola/git-cola/pull/853
127 https://github.com/git-cola/git-cola/pull/835
129 https://github.com/git-cola/git-cola/pull/813
131 * Update Spanish translation
133 https://github.com/git-cola/git-cola/pull/862
135 https://github.com/git-cola/git-cola/pull/867
139 * The original `#!/usr/bin/env python` shebang lines can now be
140 retained by passing `USE_ENV_PYTHON=1` to `make` when installing.
142 https://github.com/git-cola/git-cola/issues/850
144 * The Makefile is now resilient to DESTDIR and prefix containing whitespace.
146 https://github.com/git-cola/git-cola/pull/858
148 * The vendored `qtpy` library was updated to `v1.4.2`.
150 * `python3-distutils` is needed to build cola on Debian.
152 https://github.com/git-cola/git-cola/issues/837
156 * The "C" key no longer closes the message dialogs, for example the
157 one that is shown when a commit fails its pre-commit hooks.
158 This allows "Ctrl+C" copy to work, rather than closing the dialog.
160 https://github.com/git-cola/git-cola/issues/734
162 * Dock widgets sizes are now properly saved and restored when the main
165 https://github.com/git-cola/git-cola/issues/848
167 * The spellcheck feature was broken under Python3.
169 https://github.com/git-cola/git-cola/issues/857
171 * A regression when saving stashes was fixed.
173 https://github.com/git-cola/git-cola/issues/847
175 * Diffing image files was not updating the available context menus,
176 which prevented the "Stage" action from being present in the menu.
178 https://github.com/git-cola/git-cola/issues/841
180 * `git cola` now detects when `git lfs uninstall` has been run. This allows
181 you to re-initialize "Git LFS" in an existing repository where it had been
182 previously uninstalled.
184 https://github.com/git-cola/git-cola/issues/842
186 * Custom color values that did not contain any hexadecimal digits in the
187 `a-f` range were being converted into integers by the config reader. This
188 then caused the configured colors to be ignored.
190 These color values are now interpreted correctly. Additionally, color
191 values can now use an optional HTML-like `#` prefix.
193 Example `.gitconfig` snippet::
198 https://github.com/git-cola/git-cola/pull/836
200 https://github.com/git-cola/git-cola/issues/849
202 * We now display an error message graphically when `Git` is not installed.
203 Previously, the message went to stderr only.
205 https://github.com/git-cola/git-cola/issues/830
207 * Changing diff options was causing resulting in an exception.
209 https://github.com/git-cola/git-cola/issues/833
211 https://github.com/git-cola/git-cola/pull/834
213 * The DAG window now updates itself when branches and tags are created.
215 https://github.com/git-cola/git-cola/issues/814
217 * The user's `$PATH` environment variable can now contain utf-8
218 encoded paths. Previously, launching external commands could
221 https://github.com/git-cola/git-cola/issues/807
223 * Git Cola development sandboxes can now be stored on utf-8 encoded
224 filesystem paths. Previously, the interactive rebase feature
225 could be broken when running in that environment.
227 https://github.com/git-cola/git-cola/issues/825
229 * The log window now uses an ISO-8601 timestamp, which
230 avoids localized output in the log window.
232 https://github.com/git-cola/git-cola/issues/817
236 * The code base has been thoroughly sanitized using `pylint`, and
237 travis is now running pylint over the entire project.
239 * Miscellaneous improvements and code improvements.
241 https://github.com/git-cola/git-cola/issues/874
248 Usability, bells and whistles
249 -----------------------------
250 * The "Browser" widget learned to rename files using "git mv".
252 https://github.com/git-cola/git-cola/issues/239
254 * The "Diff" widget learned to diff images. Side-by-side and pixel diff
255 modes allow you to inspect changes to common images formats.
257 https://github.com/git-cola/git-cola/issues/444
259 https://github.com/git-cola/git-cola/pull/803
261 * Git LFS and Git Annex are natively supported by the image diff viewer.
263 * Git Annex operations are now included. `git annex init` can be performed on
264 repositories, and `git annex add` can be run on untracked files from the
265 status widget. Install `git-annex` to activate this feature.
267 * Git LFS operations are now included. `git lfs install` can be performed on
268 repositories, and `git lfs track` can be run on untracked files from the
269 status widget. Install `git-lfs` to activate this feature.
271 * The "Stash" tool learned to stash staged changes only. Select the
272 "Stage Index" option and only staged changes will be stashed away.
274 https://github.com/git-cola/git-cola/issues/413
276 * The "Stash" tool learned to use vim-like navigation keyboard shortcuts,
277 shows error messages when things go wrong, and now saves the "Stash Index"
278 and "Keep Index" options across sessions.
280 * The Edit menu's "Copy" and "Select All" actions now forward to either the
281 diff, status, recent, or favorites widgets, based on which widget has focus.
283 * The "File" and "Edit" menu can now be activated using `Alt-{f,e}` hotkeys.
285 https://github.com/git-cola/git-cola/issues/759
287 * It was easy to accidentally trigger the first action in the `Status` tool's
288 context menu when using a quick right-click to bring up the menu.
289 A short sub-second delay was added to ensure that the top-most action is not
290 triggered unless enough time has passed. This prevents accidental
291 activation of the first item (typically "Stage" or "Unstage") without
292 burdening common use cases.
294 https://github.com/git-cola/git-cola/pull/755
296 https://github.com/git-cola/git-cola/issues/643
298 * The "Ctrl+S" hotkey now works for the header items in the Status tool.
299 Selected the "Modified" header item and activating the "Stage" hotkey,
300 for example, will stage all modified files. This works for the "Staged",
301 "Modified", and "Untracked" headers. This is not enabled for the
302 "Unmerged" header by design.
304 https://github.com/git-cola/git-cola/issues/772
306 * The list of "Recent" repositories previously capped the number of
307 repositories shown to 8 repositories. This can be set to a higher
308 value by setting the `cola.maxrecent` configuration variable.
310 https://github.com/git-cola/git-cola/issues/752
312 * The "Create Branch" dialog now prevents invalid branch names.
314 https://github.com/git-cola/git-cola/issues/765
316 * Updated Turkish translation.
318 https://github.com/git-cola/git-cola/pull/756
320 * Updated Ukrainian translation.
322 https://github.com/git-cola/git-cola/pull/753
324 * Updated German translation.
326 https://github.com/git-cola/git-cola/pull/802
328 * Updated Czech translation
330 https://github.com/git-cola/git-cola/pull/792
332 https://github.com/git-cola/git-cola/pull/806
334 * The window title can be configured to not display the absolute path of the
337 https://github.com/git-cola/git-cola/issues/775
339 * The "Edit Remotes" editor learned to edit remote URLS.
341 * Bare repositories can now be created by selecting the
342 "New Bare Repository..." action from the `File` menu.
344 * The "Branches" widget learned to configure upstream branches.
346 * A new `git cola clone` sub-command was added for cloning repositories.
350 * The vendored `qtpy` library was updated to `v1.3.1`.
352 * The macOS installation was made simpler for better compatibility with
355 https://github.com/git-cola/git-cola/issues/636
357 * The Windows installer is now much simpler. Git Cola now bundles
358 Python and PyQt5, so users need only install the "Git for Windows"
359 and "Git Cola" installers to get things working.
363 * Uninitialized difftool errors will now be displayed graphically.
364 They were previously going to the shell.
366 https://github.com/git-cola/git-cola/issues/457
368 * Translations marked "fuzzy" will no longer be used when translating strings.
370 https://github.com/git-cola/git-cola/issues/782
372 * Deleted unmerged files will now correctly use a deleted icon.
374 https://github.com/git-cola/git-cola/issues/479
376 * The `Ctrl+C` "Copy" hotkey on the diff viewer has been fixed.
378 https://github.com/git-cola/git-cola/issues/767
380 * The "Create Tag" dialog did not correctly handle the case when a signed
381 tag is requested, but no message is provided, and the user chooses to
382 create an unannotated tag instead. This convenience fallback will now
383 properly create an unsigned, unannotated tag.
385 https://github.com/git-cola/git-cola/issues/696
387 * `.gitconfig` and `.git/config` values editable by the Preferences dialog
388 (aka `git cola config`) will now get unset when set to an empty value.
389 For example, setting a different `user.email` in the current repository,
390 followed by a subsequent emptying of that field, would previously result in
391 an empty string getting stored in the config. This has been fixed so that
392 the value will now get unset in the config instead.
394 https://github.com/git-cola/git-cola/issues/406
396 * Spelling and typofixes.
398 https://github.com/git-cola/git-cola/pull/748
400 * `core.commentChar` is now honored when set in the local repository
403 https://github.com/git-cola/git-cola/issues/766
405 * The log window was using a format string that did not display
406 correctly in all locales. A locale-aware format is now used.
408 https://github.com/git-cola/git-cola/pull/800
410 * The dialog displayed when prompting for a reference could sometimes
413 https://github.com/git-cola/git-cola/pull/804
420 Usability, bells and whistles
421 -----------------------------
422 * Updated Simplified Chinese translation.
424 https://github.com/git-cola/git-cola/pull/726
426 * Updated Ukrainian translation.
428 https://github.com/git-cola/git-cola/pull/723
430 * New Czech translation.
432 https://github.com/git-cola/git-cola/pull/736
434 https://github.com/git-cola/git-cola/pull/737
436 https://github.com/git-cola/git-cola/pull/740
438 https://github.com/git-cola/git-cola/pull/743
440 * The "name" field in the "Create Tag" dialog now includes autocompletion,
441 which makes it easy to see which tags currently exist.
443 * `git cola` now has configurable toolbars. Use the `View -> Add toolbar`
444 menu item to add a toolbar.
446 * Setting `cola.expandtab` to `true` will now expand tabs into spaces
447 in the commit message editor. The number of spaces to insert is determined
448 by consulting `cola.tabwidth`, which defaults to `8`.
450 * The "Copy SHA-1" hotkey is now `Alt + Ctrl + C`, to avoid clobbering the
451 ability to copy text from the DAG window.
453 https://github.com/git-cola/git-cola/pull/705
455 * The "Prepare Commit Message" action can now be invoked via the
456 `Ctrl+Shift+Return` shortcut.
458 https://github.com/git-cola/git-cola/pull/707
460 * The `Branches` pane now has a filter field that highlights branches whose
461 names match the string entered into its text field.
463 https://github.com/git-cola/git-cola/pull/713
465 * Actions that are triggered in response to button presses were being
466 triggered when the button was pressed, rather than when it was released,
467 which was a usability flaw. All buttons now respond when clicked
468 rather than when pressed.
470 https://github.com/git-cola/git-cola/pull/715
472 * The DAG window will now only refresh when object IDs change.
473 Previously, the DAG would redraw itself in response to inotify events,
474 such as filesystem operations, which was disruptive when inspecting a large
475 diff in its diff viewer. The DAG will now only redraw when the object IDs
476 corresponding to its query input changes. Furthermore, when redrawing, the
477 scrollbar positions are retained to minimize disruption to the viewport
480 https://github.com/git-cola/git-cola/issues/620
482 https://github.com/git-cola/git-cola/issues/724
484 * The "About" dialog now includes the SHA-1 where Git Cola was built.
486 https://github.com/git-cola/git-cola/issues/530
488 * The "Status" widget now has "Copy Leading Path to Clipboard" and
489 "Copy Basename to Clipboard" actions.
491 https://github.com/git-cola/git-cola/issues/435
493 https://github.com/git-cola/git-cola/issues/436
495 * The "Status" widget now supports custom "Copy ... to Clipboard" actions.
497 https://github.com/git-cola/git-cola/issues/437
499 * The main menu now has an "Edit" menu.
501 https://github.com/git-cola/git-cola/issues/725
503 * `git dag` learned to checkout commits into a detached HEAD state.
505 https://github.com/git-cola/git-cola/issues/698
507 * The `status` widget's context menus now omit actions selection-dependent
508 actions when no file is selected.
510 https://github.com/git-cola/git-cola/pull/731
512 * The startup dialog now focuses the repository list so that repositories
513 can be selected with the keyboard without mouse intervention.
515 https://github.com/git-cola/git-cola/issues/741
519 * `git dag` now prevents nodes from overlapping in more situations.
521 https://github.com/git-cola/git-cola/pull/689
523 * Adding untracked Git submodule repo directories previously ran
524 `git add submodule/` but we now call `git add submodule` without
525 the trailing slash (`/`) to avoid staging files that belong to the
526 submodule (which is possibly a `git` bug). By working around the
527 buggy behavior we allow users to recover by issuing the appropriate
528 `git submodule add` command to properly register the submodule.
530 https://github.com/git-cola/git-cola/pull/681
532 * We now avoid `git for-each-ref --sort=version:refname` on versions
533 of `git` older than `v2.7.0`. Previously we only avoided it for
534 versions older than `v2.0.0`, which was a mistake.
536 https://github.com/git-cola/git-cola/pull/686
538 * The error message displayed when `git` is not installed has been fixed.
540 https://github.com/git-cola/git-cola/pull/686
542 * Adding new remotes was silently broken.
544 https://github.com/git-cola/git-cola/issues/684
546 https://github.com/git-cola/git-cola/pull/685
548 * The repo selection dialog had errors during startup when the
549 `cola.refreshonfocus` feature was enabled, as reported on Ubuntu 16.04.
551 https://github.com/git-cola/git-cola/issues/690
553 * Restored support for PyQt 4.6 (Centos 6.8)
555 https://github.com/git-cola/git-cola/issues/692
557 * Switching repositories now resets the "Amend Mode" and other settings
560 https://github.com/git-cola/git-cola/issues/710
562 * `git rebase` error messages now displayed when rebasing fails or stops
563 via the standalone `git cola rebase` front-end.
565 https://github.com/git-cola/git-cola/issues/721
567 * `git cola` learned to stage broken symlinks.
569 https://github.com/git-cola/git-cola/issues/727
571 * The "View History" feature in the `Browser` tool was fixed, and now
572 disambiguates between refs and paths.
574 https://github.com/git-cola/git-cola/issues/732
576 * The diff editor now has better support for files with CRLF `\r\n`
579 https://github.com/git-cola/git-cola/issues/730
581 * `cola.inotify` in a repo-local config is now honored
582 when `git cola` is launched from a desktop entry (`git cola --prompt`).
584 https://github.com/git-cola/git-cola/issues/695
591 Usability, bells and whistles
592 -----------------------------
593 * New Ukrainian translation.
595 https://github.com/git-cola/git-cola/pull/670
597 https://github.com/git-cola/git-cola/pull/672
599 * New and improved French translations.
601 * The new `Branches` widget makes it easier to checkout, merge, push,
602 and pull branches from a single interface.
604 * `git cola` now includes a dark icon theme. The dark icon theme can be
605 activated either by setting the `GIT_COLA_ICON_THEME` environment variable
606 to `dark`, by configuring `cola.icontheme` to `dark`, or by specifying
607 `--icon-theme=dark` on the command line.
609 https://github.com/git-cola/git-cola/pull/638
611 * Autocompletion was added to the `Fetch`, `Push`, and `Pull` dialogs.
613 * The commit message editor now remembers the "Spellcheck" setting
616 https://github.com/git-cola/git-cola/pull/645
618 * `git dag` now uses an improved algorithm for laying out the graph,
619 which avoids collisions under certain graph configurations, and
620 avoids overlapping tag with commits.
622 https://github.com/git-cola/git-cola/pull/648
624 https://github.com/git-cola/git-cola/pull/651
626 https://github.com/git-cola/git-cola/pull/654
628 https://github.com/git-cola/git-cola/pull/656
630 https://github.com/git-cola/git-cola/pull/659
632 * `git dag` now remembers its column sizes across sessions.
634 https://github.com/git-cola/git-cola/issues/674
636 * `Grep` now shows a preview of the selected file's content in a split window
637 below the grep results.
639 * `Grep` now includes line numbers in the preview pane's output.
641 * `Edit Remotes` now remembers its window settings after exiting.
643 * `Diff` now has an option to display line numbers in the editor.
645 https://github.com/git-cola/git-cola/issues/136
647 * `Amend Last Commit` can now be triggered via the `Commit` menu in addition
648 to the commit message editor's options.
650 https://github.com/git-cola/git-cola/issues/640
652 * The `File Browser` tool was made much faster and can now operate on
653 much larger repositories.
655 https://github.com/git-cola/git-cola/issues/499
657 * A new "turbo" mode was added that allows you to opt-out of operations
658 that can slow `git cola` on large repositories. The turbo mode is
659 enabled by configuring `git config cola.turbo true`. Turbo mode
660 disables the background loading of Git commit messages and other
661 details in the `File Browser` widget.
663 * A new GitIgnore dialog allows adding custom gitignore patterns.
665 https://github.com/git-cola/git-cola/pull/653
667 * The spellchecker in `git cola` can now use an additional dictionary
668 by configuring `cola.dictionary` to the path to a file containing
669 a newline-separated list of words.
671 https://github.com/git-cola/git-cola/issues/663
673 * The stash, export patches, diff, and gitignore dialogs now remember
676 * A new `git cola recent` sub-command was added for finding recently
679 * The `Fetch` dialog now allows pruning remote branches.
681 https://github.com/git-cola/git-cola/issues/639
683 https://github.com/git-cola/git-cola/pull/680
687 * `git cola`'s spellchecker now supports the new `dict-common` filesystem
688 layout, and prefers the `/usr/share/dict/cracklib-small` file over the
689 `/usr/share/dict/words` provided on older distributions.
690 This makes the spellchecker compatible with Arch, which does not provide
691 a `words` symlink like Debian.
693 https://github.com/git-cola/git-cola/issues/663
695 * Properly handle the case where an existing file is untracked using
698 * Fix a quirk where the "Create Branch" dialog sometimes required clicking
699 twice on the radio buttons.
701 https://github.com/git-cola/git-cola/pull/662
703 * Fixed a focus issue to ensure that "Push", "Fetch", and "Pull" can
704 be executed with the press of a single enter key after being shown.
706 https://github.com/git-cola/git-cola/issues/661
708 * Committing is now allowed in when resolving a merge results in no
709 changes. This state was previously prevented by the commit message editor,
710 which prevented users from resolving merges that result in no changes.
712 https://github.com/git-cola/git-cola/pull/679
714 * The filesystem monitor would sometimes emit backtraces when directories
715 are modified. This has been fixed.
717 https://bugzilla.redhat.com/show_bug.cgi?id=1438522
719 * Absolute paths are now returned when querying for `.git`-relative paths
720 from within a submodule, which uses `.git`-files.
721 This fixes launching `git cola` from within a subdirectory of a submodule.
723 https://github.com/git-cola/git-cola/pull/675
730 Usability, bells and whistles
731 -----------------------------
732 * `git cola` can now invoke the `.git/hooks/cola-prepare-commit-msg`
733 hook to update the commit message. This hook takes the same parameters
734 as Git's `prepare-commit-message` hook. The default path to this hook
735 can be overridden by setting the `cola.prepareCommitMessageHook`
736 configuration variable.
738 http://git-cola.readthedocs.io/en/latest/git-cola.html#prepare-commit-message
740 * `git cola diff` (and the corresponding `Diff` menu actions) can now
741 launch difftool with the standard `Ctrl+D` hotkey. The `Ctrl+E` hotkey was
742 also added for launching an editor.
744 * Traditional Chinese (Taiwan) translation updates.
748 * `git cola` now works when installed in non-ascii, utf8-encoded paths.
750 https://github.com/git-cola/git-cola/issues/629
752 * Styling issues that caused black backgrounds in various widgets when using
753 PyQ5 on Mac OS X have been fixed.
755 https://github.com/git-cola/git-cola/issues/624
757 * The "Open Recent" menu action was broken and has been fixed.
759 https://github.com/git-cola/git-cola/issues/634
761 * Exiting `git cola` with a maximized main window would hang when reopened
764 https://github.com/git-cola/git-cola/issues/641
768 * `appdata.xml` files are now provided at
769 `share/appdata/git-cola.xml` and `share/appdata/git-dag.xml`
770 for use by the Linux software gallery.
772 https://people.freedesktop.org/~hughsient/appdata/
774 https://github.com/git-cola/git-cola/pull/627
783 * The "Open Recent" menu was updated to new bookmarks format.
785 https://github.com/git-cola/git-cola/issues/628
792 Usability, bells and whistles
793 -----------------------------
794 * New Polish translation thanks to Łukasz Wojniłowicz
796 https://github.com/git-cola/git-cola/pull/598
798 * The `Bypass Commit Hooks` feature now disables itself automatically
799 when a new commit is created. The new behavior turns the option into a
800 single-use flag, which helps prevent users from accidentally leaving it
801 active longer than intended.
803 https://github.com/git-cola/git-cola/pull/595
805 * `git dag` learned to launch an external diff viewer on selected commits.
806 The standard `Ctrl+D` shortcut can be used to view diffs.
808 https://github.com/git-cola/git-cola/issues/468
810 * `git dag` learned to launch directory diffs via `git difftool --dir-diff`.
811 The `Ctrl+Shift+D` shortcut launches difftool in directory-diff mode.
813 https://github.com/git-cola/git-cola/issues/468
815 * Items in the "Favorites" list can now be renamed, which makes it
816 easier to differentiate between several checkouts of the same repository.
818 https://github.com/git-cola/git-cola/issues/599
820 https://github.com/git-cola/git-cola/pull/601
822 * The startup screen now includes a logo and `git cola` version information.
824 https://github.com/git-cola/git-cola/issues/526
826 * The `About` page was revamped to contain multiple tabs. A new tab was added
827 that provides details about `git cola`''s dependencies. New tabs were also
828 added for giving credit to `git cola`'s authors and translators.
830 * The `About` page can now be accessed via `git cola about`.
832 * The "Fast-forward only" and "No fast-forward" options supported by
833 `git pull` are now accessible via `git cola pull`.
835 * Doing a forced push no longer requires selecting the remote branch.
837 https://github.com/git-cola/git-cola/pull/618
839 * `git cola push` now has an option to suppress the prompt that is shown
840 when pushing would create new remote branches.
842 https://github.com/git-cola/git-cola/issues/605
844 * `git dag` now shows commit messages in a more readable color.
846 https://github.com/git-cola/git-cola/issues/574
848 * `git cola browse` and the `status` widget learned to launch the OS-specified
849 default action for a file. When used on directories via `git cola browse`,
850 or when "Open Parent Directory" is used on files, the OS-specified
851 file browser will typically be used.
853 * `git cola browse` and the `status` widget learned to launch terminals.
857 * `git cola browse` was not updating when expanding items.
859 https://github.com/git-cola/git-cola/issues/588
861 * Typofixes in comments, naming, and strings have been applied.
863 https://github.com/git-cola/git-cola/pull/593
865 * The inotify and win32 filesystem monitoring no longer refreshes
866 when updates are made to ignored files.
868 https://github.com/git-cola/git-cola/issues/517
870 https://github.com/git-cola/git-cola/issues/516
872 * The `Refresh` button on the actions panel no longer raises an
873 exception when using PyQt5.
875 https://github.com/git-cola/git-cola/issues/604
877 * Fixed a typo in the inotify backend that is triggered when files are removed.
879 https://github.com/git-cola/git-cola/issues/607
881 * Fixed a typo when recovering from a failed attempt to open a repository.
883 https://github.com/git-cola/git-cola/issues/606
885 * `git dag` now properly updates itself when launched from the menubar.
887 https://github.com/git-cola/git-cola/pull/613
889 * If git-cola is invoked on Windows using `start pythonw git-cola`,
890 a console window will briefly flash on the screen each time
891 `git cola` invokes `git`. The console window is now suppressed.
893 * We now avoid some problematic Popen flags on Windows which were
894 breaking the `git rebase` feature on Windows.
896 * The `Save` button in `git dag`'s "Grab File..." feature now properly
897 prompts for a filename when saving files.
899 https://github.com/git-cola/git-cola/pull/617
903 * The `qtpy` symlink in the source tree has been removed to allow for easier
904 development on Windows.
906 https://github.com/git-cola/git-cola/issues/626
913 Usability, bells and whistles
914 -----------------------------
915 * `git cola push` learned to configure upstream branches.
917 https://github.com/git-cola/git-cola/issues/563
921 * The diffstat view is now properly updated when notifications are
922 received via inotify filesystem monitoring.
924 https://github.com/git-cola/git-cola/issues/577
926 * Python3 with PyQt5 had a bug that prevented `git cola` from starting.
928 https://github.com/git-cola/git-cola/pull/589
938 * When repositories stored in non-ASCII, UTF-8-encoded filesystem paths
939 were operated upon with `LC_ALL=C` set in the environment, unicode errors
940 would occur when using `python2`. `git cola` was made more robust and will
941 now operate correctly within this environment.
943 https://github.com/git-cola/git-cola/issues/581
945 * Support for the `GIT_WORK_TREE` environment variable was fixed.
947 https://github.com/git-cola/git-cola/pull/582
952 * The `unittest.mock` module is now used instead of the original `mock` module
953 when running the `git cola` test suite using Python3.
955 https://github.com/git-cola/git-cola/issues/569
960 * `git cola` is now compatible with *PyQt5*, *PyQt4*, and *Pyside*.
961 `git cola` previously supported *PyQt4* only, but will now use whichever
962 library is available. Users are not required to upgrade at this time,
963 but *PyQt5* support can be enabled anytime by making its python
966 https://github.com/git-cola/git-cola/issues/232
968 *NOTE*: We do not yet recommend using *PyQt5* because there are known
969 exit-on-segfault bugs in *Qt5* that have not yet been addressed.
970 `git cola` is sensitive to this bug and is known to crash on exit
971 when using `git dag` or the interactive rebase feature on *PyQt5*.
973 https://bugreports.qt.io/browse/QTBUG-52988
975 *PyQt4* is stable and there are no known issues when using it so
976 we recommend using it until the Qt5 bugs have been resolved.
978 * `git cola` now depends on *QtPy* and includes a bundled copy of the
979 `qtpy` library. If you are packaging `git cola` and would prefer to use
980 `qtpy` from your distribution instead of the built-in version then use
981 `make NO_VENDOR_LIBS=1` when building `git cola`. This will prevent
982 vendored libraries from being installed.
989 Usability, bells and whistles
990 -----------------------------
992 * A new "Reset" sub-menu provides access to running "git reset --mixed"
993 when resetting branch heads and "git reset --merge" when resetting
996 https://github.com/git-cola/git-cola/issues/542
998 * `git cola` now supports linked worktrees, i.e. worktrees created by
1001 https://github.com/git-cola/git-cola/issues/554
1006 * Diff highlighting is now robust to the user having
1007 diff.supressBlankEmpty=true in their git config.
1009 https://github.com/git-cola/git-cola/issues/541
1011 * The filesystem monitor now properly handles repositories that use
1012 `.git`-files, e.g. when using submodules.
1014 https://github.com/git-cola/git-cola/issues/545
1016 https://github.com/git-cola/git-cola/pulls/546
1018 * Per-repository git configuration is now properly detected when launching
1019 `git cola` from an application launcher.
1021 https://github.com/git-cola/git-cola/issues/548
1023 * `git cola` now cleans up after itself immediately to avoid leaving behind
1024 empty `/tmp/git-cola-XXXXXX` directories when the user uses `Ctrl+C`
1027 https://github.com/git-cola/git-cola/issues/566
1032 * It is now possible to install `git cola` to and from utf8-encoded filesystem
1033 paths. Previously, Python's stdlib would throw an encoding error during
1034 installation. We workaround the stdlib by forcing python2 to use utf-8,
1035 thus fixing assumptions in the stdlib library code.
1037 https://github.com/git-cola/git-cola/issues/551
1044 Usability, bells and whistles
1045 -----------------------------
1047 * The icon for untracked files was adjusted to better differentiate
1048 between files and the "Untracked" header.
1050 https://github.com/git-cola/git-cola/issues/509
1052 * Ctrl+O was added as a hotkey for opening repositories.
1054 https://github.com/git-cola/git-cola/pull/507
1056 * `git dag` now uses consistent edge colors across updates.
1058 https://github.com/git-cola/git-cola/issues/512
1060 * `git cola`'s Bookmarks widget can now be used to set a "Default Repository".
1061 Under the hood, we set the `cola.defaultrepo` configuration variable.
1062 The default repository is used whenever `git cola` is launched outside of
1063 a Git repository. When unset, or when set to a bogus value, `git cola`
1064 will prompt for a repository, as it previously did.
1066 https://github.com/git-cola/git-cola/issues/513
1068 * `git cola`'s Russian and Spanish translations were improved
1069 thanks to Vaiz and Zeioth.
1071 https://github.com/git-cola/git-cola/pull/514
1073 https://github.com/git-cola/git-cola/pull/515
1075 https://github.com/git-cola/git-cola/pull/523
1077 * `git cola` was translated to Turkish thanks to Barış ÇELİK.
1079 https://github.com/git-cola/git-cola/pull/520
1081 * The status view now supports launching `git gui blame`. It can be
1082 configured to use a different command by setting `cola.blameviewer`.
1084 https://github.com/git-cola/git-cola/pull/521
1086 * `git dag` now allows selecting non-contiguous ranges in the log widget.
1088 https://github.com/git-cola/git-cola/issues/468
1090 * Any font can now be chosen for the diff editor, not just monospace fonts.
1092 https://github.com/git-cola/git-cola/issues/525
1097 * `xfce4-terminal` and `gnome-terminal` are now supported when launching
1098 `git mergetool` to resolve merges. These terminals require that the command
1099 to execute is shell-quoted and passed as a single string argument to `-e`
1100 rather than as additional command line arguments.
1102 https://github.com/git-cola/git-cola/issues/524
1104 * Fixed a unicode problem when formatting the error message that is shown
1105 when `gitk` is not installed. We now handle unicode data in tracebacks
1106 generated by python itself.
1108 https://github.com/git-cola/git-cola/issues/528
1110 * The `New repository` feature was fixed.
1112 https://github.com/git-cola/git-cola/pull/533
1114 * We now use omit the extended description when creating "fixup!" commits,
1115 for consistency with the Git CLI. We now include only the one-line summary
1116 in the final commit message.
1118 https://github.com/git-cola/git-cola/issues/522
1125 Usability, bells and whistles
1126 -----------------------------
1128 * The user interface is now HiDPI-capable. git-cola now uses SVG
1129 icons, and its interface can be scaled by setting the `GIT_COLA_SCALE`
1130 environment variable.
1132 * `git dag` now supports the standard editor, difftool, and history hotkeys.
1133 It is now possible to invoke these actions from file widget's context
1134 menu and through the standard hotkeys.
1136 https://github.com/git-cola/git-cola/pull/473
1138 * The `Status` tool also learned about the history hotkey.
1139 Additionally, the `Alt-{j,k}` aliases are also supported in the `Status`
1140 tool for consistency with the other tools where the non-Alt hotkeys are not
1143 https://github.com/git-cola/git-cola/pull/488
1145 * The `File Browser` tool now has better default column sizes,
1146 and remembers its window size and placement.
1148 * The `File Browser` now supports the refresh hotkey, and has better
1149 behavior when refreshing. The selection is now retained, and new and
1150 removed files are found when refreshing.
1152 * A new `git-cola-completion.bash` completion script is provided in the
1153 `contrib/` directory. It must be used alongside Git's completion script.
1154 Source it from your `~/.bashrc` (or `~/.zshrc`, etc) after sourcing
1155 the `git-completion.bash` script and you will have command-line completion
1156 support for the `git cola` and `git dag` sub-commands.
1158 * The "checkout" dialog now offers completion for remote branches and other
1159 git refs. This makes it easier to checkout remote branches in a detached
1160 head state. Additionally, the checkout dialog also offers completion for
1161 remote branches that have not yet been checked out, which makes it easier to
1162 create a local tracking branch by just completing for that potential name.
1164 https://github.com/git-cola/git-cola/issues/390
1166 * The "create branch" and "create tag" dialogs now save and restore their
1169 * The "status" widget can now be configured to use a bold font with a darker
1170 background for the header items.
1172 https://github.com/git-cola/git-cola/pull/506
1174 * The "status" widget now remembers its horizontol scrollbar position across
1175 updates. This is helpful when working on projects with long paths.
1177 https://github.com/git-cola/git-cola/issues/494
1182 * When using *Git for Windows*, a `git` window would appear
1183 when running *Windows 8*. We now pass additional flags to
1184 `subprocess.Popen` to prevent a `git` window from appearing.
1186 https://github.com/git-cola/git-cola/issues/477
1188 https://github.com/git-cola/git-cola/pull/486
1190 * Launching difftool with `.PY` in `$PATHEXT` on Windows was fixed.
1192 https://github.com/git-cola/git-cola/issues/492
1194 * Creating a local branch tracking a remote branch that contains
1195 slashes in its name is now properly handled.
1197 https://github.com/git-cola/git-cola/issues/496
1199 * The "Browse Other Branch" feature was broken by Python3, and is now fixed.
1201 https://github.com/git-cola/git-cola/issues/501
1203 * We now avoid `long` for better Python3 compatibility.
1205 https://github.com/git-cola/git-cola/issues/502
1207 * We now use Git's default merge message when merging branches.
1209 https://github.com/git-cola/git-cola/issues/508
1211 * Miscellaneous fixes
1213 https://github.com/git-cola/git-cola/pull/485
1218 * git-cola's documentation no longer uses an intersphinx link mapping
1219 to docs.python.org. This fixes warnings when building rpms using koji,
1220 where network access is prevented.
1222 https://bugzilla.redhat.com/show_bug.cgi?id=1231812
1229 Usability, bells and whistles
1230 -----------------------------
1232 * The Interactive Rebase feature now works on Windows!
1234 https://github.com/git-cola/git-cola/issues/463
1236 * The `diff` editor now understands vim-style `hjkl` navigation hotkeys.
1238 https://github.com/git-cola/git-cola/issues/476
1240 * `Alt-{j,k}` navigation hotkeys were added to allow changing to the
1241 next/previous file from the diff and commit editors.
1243 * The `Rename branch` menu action is now disabled in empty repositories.
1245 https://github.com/git-cola/git-cola/pull/475
1247 https://github.com/git-cola/git-cola/issues/459
1249 * `git cola` now checks unmerged files for conflict markers before
1250 staging them. This feature can be disabled in the preferences.
1252 https://github.com/git-cola/git-cola/issues/464
1254 * `git dag` now remembers which commits were selected when refreshing
1255 so that it can restore the selection afterwards.
1257 https://github.com/git-cola/git-cola/issues/480
1259 * "Launch Editor", "Launch Difftool", "Stage/Unstage",
1260 and "Move Up/Down" hotkeys now work when the commit message
1263 https://github.com/git-cola/git-cola/issues/453
1265 * The diff editor now supports the `Ctrl+u` hotkey for reverting
1266 diff hunks and selected lines.
1268 * The `core.commentChar` Git configuration value is now honored.
1269 Commit messages and rebase instruction sheets will now use
1270 the configured character for comments. This allows having
1271 commit messages that start with `#` when `core.commentChar`
1272 is configured to its non-default value.
1274 https://github.com/git-cola/git-cola/issues/446
1279 * Diff syntax highlighting was improved to handle more edge cases
1280 and false positives.
1282 https://github.com/git-cola/git-cola/pull/467
1284 * Setting commands in the interactive rebase editor was fixed.
1286 https://github.com/git-cola/git-cola/issues/472
1288 * git-cola no longer clobbers the Ctrl+Backspace text editing shortcut
1289 in the commit message editor.
1291 https://github.com/git-cola/git-cola/issues/453
1293 * The copy/paste clipboard now persists after `git cola` exits.
1295 https://github.com/git-cola/git-cola/issues/484
1304 * Fixed the "Sign off" feature in the commit message editor.
1311 Usability, bells and whistles
1312 -----------------------------
1313 * Double-click will now choose a commit in the "Select commit" dialog.
1315 * `git cola` has a feature that reads `.git/MERGE_MSG` and friends for the
1316 commit message when a merge is in-progress. Upon refresh, `git cola` will
1317 now detect when a merge has completed and reset the commit message back to
1318 its previous state. It is only reset if the editor contains a message
1319 that was read from the file and has not been manually edited by the user.
1321 * The commit message editor's context menu now has a "Clear..." action for
1322 clearing the message across both the summary and description fields.
1324 * Traditional Chinese (Taiwan) translation updates.
1326 * The system theme's icons are now used wherever possible.
1328 https://github.com/git-cola/git-cola/pull/458
1332 * The stash viewer now uses ``git show --no-ext-diff`` to avoid running
1333 user-configured diff tools.
1335 * `git cola` now uses the `setsid()` system call to ensure that the
1336 `GIT_ASKPASS` and `SSH_ASKPASS` helper programs are used when pushing
1337 changes using `git`. The askpass helpers will now be used even when
1338 `git cola` is launched from a terminal.
1340 The behavior without `setsid()` is that `git cola` can appear to hang while
1341 pushing changes. The hang happens when `git` prompts the user for a
1342 password using the terminal, but the user never sees the prompt. `setsid()`
1343 detaches the terminal, which ensures that the askpass helpers are used.
1345 https://github.com/git-cola/git-cola/issues/218
1347 https://github.com/git-cola/git-cola/issues/262
1349 https://github.com/git-cola/git-cola/issues/377
1351 * `git dag`'s file list tool was updated to properly handle unicode paths.
1353 * `gnome-terminal` is no longer used by default when `cola.terminal` is unset.
1354 It is broken, as was detailed in #456.
1356 https://github.com/git-cola/git-cola/issues/456
1358 * The interactive rebase feature was not always setting `$GIT_EDITOR`
1359 to the value of `gui.editor`, thus there could be instances where rebase
1360 will seem to not stop, or hang, when performing "reword" actions.
1362 We now set the `$GIT_EDITOR` environment variable when performing the
1363 "Continue", "Skip", and "Edit Todo" rebase actions so that the correct
1364 editor is used during the rebase.
1366 https://github.com/git-cola/git-cola/issues/445
1370 * `git cola` moved from a 3-part version number to a simpler 2-part "vX.Y"
1371 version number. Most of our releases tend to contain new features.
1378 Usability, bells and whistles
1379 -----------------------------
1380 * Updated zh_TW translations.
1382 * `git cola rebase` now defaults to `@{upstream}`, and generally uses the same
1383 CLI syntax as `git rebase`.
1385 * The commit message editor now allows you to bypass commit hooks by selecting
1386 the "Bypass Commit Hooks" option. This is equivalent to passing the
1387 `--no-verify` option to `git commit`.
1389 https://github.com/git-cola/git-cola/issues/357
1391 * We now prevent the "Delete Files" action from creating a dialog that does
1394 https://github.com/git-cola/git-cola/issues/378
1396 * `git xbase` learned to edit rebase instruction sheets that contain
1399 * The diff colors are now configurable. `cola.color.{text,add,remove,header}`
1400 can now be set with 6-digit hexadecimal colors.
1401 See the `git cola manual <https://git-cola.readthedocs.io/en/latest/git-cola.html#configuration-variables>_`
1404 * Improved hotkey documentation.
1408 * `git cola` will now allow starting an interactive rebase with a dirty
1409 worktree when `rebase.autostash` is set.
1411 https://github.com/git-cola/git-cola/issues/360
1418 Usability, bells and whistles
1419 -----------------------------
1420 * A new "Find files" widget was added, and can be activated by
1421 using the `Ctrl+t` or `t` hotkeys.
1423 * A new `git cola find` sub-command was added for finding files.
1425 * `git cola` now remembers the text cursor's position when staging
1426 interactively with the keyboard. This makes it easier to use the keyboard
1427 arrows to select and stage lines.
1429 * The completion widgets will now select the top completion item
1430 when `Enter` or `Return` are pressed.
1432 * You can now refresh using `F5` in addition to the existing `Ctrl+R` hotkey.
1436 * `git cola` now passes `--no-abbrev-commit` to `git log` to override
1437 having `log.abbrevCommit = true` set in `.gitconfig`.
1443 Usability, bells and whistles
1444 -----------------------------
1445 * `git dag` now forwards all unknown arguments along to `git log`.
1447 https://github.com/git-cola/git-cola/issues/389
1449 * Line-by-line interactive staging was made more robust.
1451 https://github.com/git-cola/git-cola/pull/399
1453 * "Bookmarks" was renamed to "Favorites".
1455 https://github.com/git-cola/git-cola/issues/392
1457 * Untracked files are now displayed using a unique icon.
1459 https://github.com/git-cola/git-cola/pull/388
1463 * `git dag` was triggering a traceback on Fedora when parsing Git logs.
1465 https://bugzilla.redhat.com/show_bug.cgi?id=1181686
1467 * inotify expects unicode paths on Python3.
1469 https://github.com/git-cola/git-cola/pull/393
1471 * Untracked files are now assumed to be utf-8 encoded.
1473 https://github.com/git-cola/git-cola/issues/401
1479 Usability, bells and whistles
1480 -----------------------------
1481 * `git cola` can now create GPG-signed commits and merges.
1483 https://github.com/git-cola/git-cola/issues/149
1485 See the documentation for details about setting up a GPG agent.
1487 * The status widget learned to copy relative paths when `Ctrl+x` is pressed.
1489 https://github.com/git-cola/git-cola/issues/358
1491 * Custom GUI actions can now define their own keyboard shortcuts by
1492 setting `guitool.$name.shortcut` to a string understood by Qt's
1493 `QAction::setShortcut()` API, e.g. `Alt+X`.
1495 See http://qt-project.org/doc/qt-4.8/qkeysequence.html#QKeySequence-2
1496 for more details about the supported values.
1498 * `git cola` learned to rename branches.
1500 https://github.com/git-cola/git-cola/pull/364
1502 https://github.com/git-cola/git-cola/issues/278
1504 * `git dag` now has a "Show history" context menu which can be used to filter
1505 history using the selected paths.
1509 * `sphinxtogithub.py` was fixed for Python3.
1511 https://github.com/git-cola/git-cola/pull/353
1513 * The commit that changed how we read remotes from `git remote`
1514 to parsing `git config` was reverted since it created problems
1517 * Fixed a crash when using the `rebase edit` feature.
1519 https://github.com/git-cola/git-cola/issues/351
1521 * Better drag-and-drop behavior when dropping into gnome-terminal.
1523 https://github.com/git-cola/git-cola/issues/373
1527 * The `git-cola-folder-handler.desktop` file handler was fixed
1528 to pass validation by `desktop-file-validate`.
1530 https://github.com/git-cola/git-cola/issues/356
1532 * The `git.svg` icon was renamed to `git-cola.svg`, and `git cola` was taught
1533 to prefer icons from the desktop theme when available.
1539 Usability, bells and whistles
1540 -----------------------------
1541 * New hotkey: `Ctrl+Shift+M` merges branches.
1543 * New hotkey: `Ctrl+R` refreshes the DAG viewer.
1545 https://github.com/git-cola/git-cola/issues/347
1549 * We now use `git config` to parse the list of remotes
1550 instead of parsing the output of `git remote`, which
1551 is a Git porcelain and should not be used by scripts.
1553 * Avoid "C++ object has been deleted" errors from PyQt4.
1555 https://github.com/git-cola/git-cola/issues/346
1559 * The `make install` target now uses `install` instead of `cp`.
1565 Usability, bells and whistles
1566 -----------------------------
1567 * Updated Brazillian Portuguese translation.
1569 * The status and browse widgets now allow drag-and-drop into
1570 external applications.
1572 https://github.com/git-cola/git-cola/issues/335
1574 * We now show a progress bar when cloning repositories.
1576 https://github.com/git-cola/git-cola/issues/312
1578 * The bookmarks widget was simplified to not need a
1581 https://github.com/git-cola/git-cola/issues/289
1583 * Updated Traditional Chinese translation.
1585 * We now display a warning when trying to rebase with uncommitted changes.
1587 https://github.com/git-cola/git-cola/issues/338
1589 * The status widget learned to filter paths.
1590 `Ctrl+Shift+S` toggles the filter widget.
1592 https://github.com/git-cola/git-cola/issues/337
1594 https://github.com/git-cola/git-cola/pull/339
1596 * The status widget learned to move files to the trash
1597 when the `send2trash <https://github.com/hsoft/send2trash>`_
1598 module is installed.
1600 https://github.com/git-cola/git-cola/issues/341
1602 * "Recent repositories" is now a dedicated widget.
1604 https://github.com/git-cola/git-cola/issues/342
1606 * New Spanish translation thanks to Pilar Molina Lopez.
1608 https://github.com/git-cola/git-cola/pull/344
1612 * Newly added remotes are now properly seen by the fetch/push/pull dialogs.
1614 https://github.com/git-cola/git-cola/issues/343
1620 Usability, bells and whistles
1621 -----------------------------
1622 * New Brazillian Portuguese translation thanks to Vitor Lobo.
1624 * New Indonesian translation thanks to Samsul Ma'arif.
1626 * Updated Simplified Chinese translation thanks to Zhang Han.
1628 * `Ctrl+Backspace` is now a hotkey for "delete untracked files" in
1631 * Fetch/Push/Pull dialogs now use the configured remote of the current
1634 https://github.com/git-cola/git-cola/pull/324
1638 * We now use `os.getcwd()` on Python3.
1640 https://github.com/git-cola/git-cola/pull/316
1642 https://github.com/git-cola/git-cola/pull/326
1644 * The `Ctrl+P` hotkey was overloaded to both "push" and "cherry-pick",
1645 so "cherry-pick" was moved to `Ctrl+Shift+C`.
1647 * Custom GUI tools with mixed-case names are now properly supported.
1649 * "Diff Region" is now referred to as "Diff Hunk" for consistency
1650 with common terminology from diff/patch tools.
1652 https://github.com/git-cola/git-cola/issues/328
1654 * git-cola's test suite is now portable to MS Windows.
1656 https://github.com/git-cola/git-cola/pull/332
1662 Usability, bells and whistles
1663 -----------------------------
1664 * We now handle the case when inotify `add_watch()` fails
1665 and display instructions on how to increase the number of watches.
1667 https://github.com/git-cola/git-cola/issues/263
1669 * New and improved zh_TW localization thanks to V字龍(Vdragon).
1671 https://github.com/git-cola/git-cola/pull/265
1673 https://github.com/git-cola/git-cola/pull/267
1675 https://github.com/git-cola/git-cola/pull/268
1677 https://github.com/git-cola/git-cola/issues/269
1679 https://github.com/git-cola/git-cola/pull/270
1681 https://github.com/git-cola/git-cola/pull/271
1683 https://github.com/git-cola/git-cola/pull/272
1685 * New hotkeys: `Ctrl+F` for fetch, `Ctrl+P` for push,
1686 and `Ctrl+Shift+P` for pull.
1688 * The bookmarks widget's context menu actions were made clearer.
1690 https://github.com/git-cola/git-cola/issues/281
1692 * The term "Staging Area" is used consistently in the UI
1693 to allow for better localization.
1695 https://github.com/git-cola/git-cola/issues/283
1697 * The "Section" term is now referred to as "Diff Region"
1700 https://github.com/git-cola/git-cola/issues/297
1702 * The localization documentation related to the LANGUAGE
1703 environment variable was improved.
1705 https://github.com/git-cola/git-cola/pull/293
1707 * The "Actions" panel now contains tooltips for each button
1708 in case the button labels gets truncated by Qt.
1710 https://github.com/git-cola/git-cola/issues/292
1712 * Custom `git config`-defined actions can now be run in the
1713 background by setting `guitool.<name>.background` to `true`.
1717 * We now use bold fonts instead of SmallCaps to avoid
1718 artifacts on several configurations.
1720 * We now pickup `user.email`, `cola.tabwidth`, and similar settings
1721 when defined in /etc/gitconfig.
1723 https://github.com/git-cola/git-cola/issues/259
1725 * Better support for unicode paths when using inotify.
1727 https://bugzilla.redhat.com/show_bug.cgi?id=1104181
1729 * Unicode fixes for non-ascii locales.
1731 https://github.com/git-cola/git-cola/issues/266
1733 https://github.com/git-cola/git-cola/issues/273
1735 https://github.com/git-cola/git-cola/issues/276
1737 https://github.com/git-cola/git-cola/issues/282
1739 https://github.com/git-cola/git-cola/issues/298
1741 https://github.com/git-cola/git-cola/issues/302
1743 https://github.com/git-cola/git-cola/issues/303
1745 https://github.com/git-cola/git-cola/issues/305
1747 * Viewing history from the file browser was fixed for Python3.
1749 https://github.com/git-cola/git-cola/issues/274
1751 * setup.py was fixed to install the `*.rst` documentation.
1753 https://github.com/git-cola/git-cola/issues/279
1755 * Patch export was fixed for Python3.
1757 https://github.com/git-cola/git-cola/issues/290
1759 * Fixed adding a bookmark with trailing slashes.
1761 https://github.com/git-cola/git-cola/pull/295
1763 * The default `git dag` layout is now setup so that its widgets
1764 can be freely resized on Linux.
1766 https://github.com/git-cola/git-cola/issues/299
1768 * Invalid tag names are now reported when creating tags.
1770 https://github.com/git-cola/git-cola/pull/296
1776 Usability, bells and whistles
1777 -----------------------------
1778 * `git cola` no longer prompts after successfully creating a new branch.
1780 https://github.com/git-cola/git-cola/pull/251
1782 * Hitting enter on simple dialogs now accepts them.
1784 https://github.com/git-cola/git-cola/pull/255
1788 * `git dag` no longer relies on `sys.maxint`, which is
1789 not available in Python3.
1791 https://github.com/git-cola/git-cola/issues/249
1793 * Python3-related fixes.
1795 https://github.com/git-cola/git-cola/pull/254
1797 * Python3-on-Windows-related fixes.
1799 https://github.com/git-cola/git-cola/pull/250
1801 https://github.com/git-cola/git-cola/pull/252
1803 https://github.com/git-cola/git-cola/pull/253
1805 * Switching repositories using the bookmarks widget was not
1806 refreshing the inotify watcher.
1808 https://github.com/git-cola/git-cola/pull/256
1810 * Special commit messages trailers (e.g. "Acked-by:") are now special-cased to
1811 fix word wrapping lines that start with "foo:".
1813 https://github.com/git-cola/git-cola/issues/257
1815 * `git dag` sometimes left behind selection artifacts.
1816 We now refresh the view to avoid them.
1818 https://github.com/git-cola/git-cola/issues/204
1824 Usability, bells and whistles
1825 -----------------------------
1826 * Better inotify support for file creation and deletion.
1828 https://github.com/git-cola/git-cola/issues/240
1830 * `git cola` now supports the X11 Session Management Protocol
1831 and remembers its state across logout/reboot.
1833 https://github.com/git-cola/git-cola/issues/164
1835 * `git cola` has a new icon.
1837 https://github.com/git-cola/git-cola/issues/190
1841 * Building the documentation no longer requires `asciidoc`.
1842 We now use `Sphinx <http://sphinx-doc.org/>`_ for building
1843 html documentation and man pages.
1847 * Reworked the git-dag gravatar icon code to avoid a unicode
1850 * Commit message line-wrapping was made to better match the GUI editor.
1852 https://github.com/git-cola/git-cola/issues/242
1854 * Better support for Python3 on Windows
1856 https://github.com/git-cola/git-cola/issues/246
1860 * git-cola no longer depends on Asciidoc for building its documentation
1861 and man-pages. We now depend on [Sphinx](http://sphinx-doc.org/) only.
1867 Usability, bells and whistles
1868 -----------------------------
1869 * Some context menu actions are now hidden when selected
1872 https://github.com/git-cola/git-cola/issues/238
1876 * The build-git-cola.sh contrib script was improved.
1878 https://github.com/git-cola/git-cola/pull/235
1880 * Non-ascii worktrees work properly again.
1882 https://github.com/git-cola/git-cola/issues/234
1884 * The browser now guards itself against missing files.
1886 https://bugzilla.redhat.com/show_bug.cgi?id=1071378
1888 * Saving widget state now works under Python3.
1890 https://github.com/git-cola/git-cola/pull/236
1898 * git-cola now runs on Python 3 thanks to Virgil Dupras.
1900 https://github.com/git-cola/git-cola/pull/233
1902 * Python 2.6, 2.7, and 3.2+ are now supported.
1903 Python 2.5 is no longer supported.
1907 * i18n test fixes thanks to Virgil Dupras.
1909 https://github.com/git-cola/git-cola/pull/231
1911 * git-cola.app build fixes thanks to Maicon D. Filippsen.
1913 https://github.com/git-cola/git-cola/pull/230
1915 * Lots of pylint improvements thanks to Alex Chernetz.
1917 https://github.com/git-cola/git-cola/pull/229
1923 Usability, bells and whistles
1924 -----------------------------
1925 * The new `Bookmarks` tool makes it really easy to switch between repositories.
1927 * There is now a dedicated dialog for applying patches.
1928 See the ``File -> Apply Patches`` menu item.
1930 https://github.com/git-cola/git-cola/issues/215
1932 * A new `git cola am` sub-command was added for applying patches.
1936 * Fixed a typo that caused inotify events to be silently ignored.
1938 * Fixed the sys.path setup for Mac OS X (Homebrew).
1940 https://github.com/git-cola/git-cola/issues/221
1942 * Lots of pylint fixes thanks to Alex Chernetz.
1948 Usability, bells and whistles
1949 -----------------------------
1950 * `git cola --amend` now starts the editor in `amend` mode.
1952 https://github.com/git-cola/git-cola/issues/187
1954 * Multiple lines of text can now be pasted into the `summary` field.
1955 All text beyond the first newline will be automatically moved to the
1956 `extended description` field.
1958 https://github.com/git-cola/git-cola/issues/212
1962 * Stray whitespace in `.git` files is now ignored.
1964 https://github.com/git-cola/git-cola/issues/213
1966 * Fix "known incorrect sRGB profile" in `staged-item.png`.
1968 http://comments.gmane.org/gmane.linux.gentoo.devel/85066
1976 * Fix a traceback when `git push` fails.
1978 https://bugzilla.redhat.com/show_bug.cgi?id=1034778
1982 * Most of the git-cola sub-packages have been removed.
1983 The only remaining packages are `cola`, `cola.models`,
1986 * The translation file for Simplified Chinese was renamed
1989 https://github.com/git-cola/git-cola/issues/209
1997 * `git cola version --brief` now prints the brief version number.
2001 * Resurrected the "make dist" target, for those that prefer to create
2004 * Fixed the typo that broke the preferences dialog.
2010 Usability, bells and whistles
2011 -----------------------------
2012 * We now ship a full-featured interactive `git rebase` editor.
2013 The rebase todo file is edited using the `git xbase` script which
2014 is provided at `$prefix/share/git-cola/bin/git-xbase`.
2015 This script can be used standalone by setting the `$GIT_SEQUENCE_EDITOR`
2016 before running `git rebase --interactive`.
2018 https://github.com/git-cola/git-cola/issues/1
2020 * Fixup commit messages can now be loaded from the commit message editor.
2022 * Tool widgets can be locked in place by using the "Tools/Lock Layout"
2025 https://github.com/git-cola/git-cola/issues/202
2027 * You can now push to several remotes simultaneously by selecting
2028 multiple remotes in the "Push" dialog.
2030 https://github.com/git-cola/git-cola/issues/148
2032 * The `grep` tool learned to search using three different modes:
2033 basic regular expressions (default), extended regular expressions,
2038 * `git cola` now depends on the `argparse` Python module.
2039 This module is part of the stdlib in Python 2.7 and must
2040 be installed separately when using Python 2.6 and below.
2044 * Support unicode in the output from `fetch`, `push`, and `pull`.
2050 Usability, bells and whistles
2051 -----------------------------
2052 * We now detect when the editor or history browser are misconfigured.
2054 https://github.com/git-cola/git-cola/issues/197
2056 https://bugzilla.redhat.com/show_bug.cgi?id=886826
2058 * Display of untracked files can be disabled from the Preferences dialog
2059 or by setting the `gui.displayuntracked` configuration variable to `false`.
2061 http://thread.gmane.org/gmane.comp.version-control.git/232683
2065 * Unicode stash names are now supported
2067 https://github.com/git-cola/git-cola/issues/198
2069 * The diffs produced when reverting workspace changes were made more robust.
2074 =======================
2075 Usability, bells and whistles
2076 -----------------------------
2077 * Brand new German translation thanks to Sven Claussner.
2079 * The "File" menu now provides a "New Repository..." menu action.
2081 * `git dag` now uses a dock-widget interface so that its widgets can
2082 be laid-out and arranged. Customizations are saved and restored
2083 the next time `git dag` is launched.
2085 * `git dag` now has a "Zoom Best Fit" button next alongside the
2086 "Zoom In" and "Zoom Out" buttons.
2088 * `Ctrl+L` now focuses the "Search" field in the `git dag` tool.
2090 * Right-clicking in the "diff" viewer now updates the cursor position
2091 before performing actions, which makes it much easier to click around
2092 and selectively stage sections. Previously, the current cursor position
2093 was used which meant that it required two clicks (left-click to update
2094 the position followed by right-click to get the context menu) for the
2095 desired section to be used. This is now a single right-click operation.
2097 * The `Ctrl+D` "Launch Diff Tool" action learned to automatically choose
2098 between `git difftool` and `git mergetool`. If the file is unmerged then
2099 we automatically launch `git mergetool` on the path, otherwise we use
2100 `git difftool`. We do this because `git difftool` is not intended to
2101 be used on unmerged paths. Automatically using `git mergetool` when
2102 appropriate is the most intuitive and muscle-memory-friendly thing to do.
2104 * You can now right-click on folders in your standard file browser
2105 and choose "Open With -> Git Cola" (Linux-only).
2109 * Python 2.6 on Mac OS X Snow Leopard does not provide a namedtuple
2110 at `sys.version_info`. We now avoid using that variable for better
2113 * We now read the user's Git configuration from `~/.config/git/config`
2114 if that file is available, otherwise we use the traditional `~/.gitconfig`
2115 path, just like Git itself.
2117 * Some edge cases were fixed when applying partial/selected diffs.
2119 * The diff viewer is now properly cleared when refreshing.
2121 https://github.com/git-cola/git-cola/issues/194
2127 Usability, bells and whistles
2128 -----------------------------
2129 * The diff viewer now has an "Options" menu which can be
2130 used to set "git diff" options. This can be used to
2131 ignore whitespace changes or to show a change with its
2132 surrounding function as context.
2134 https://github.com/git-cola/git-cola/issues/150
2136 * `git cola` now remembers your commit message and will restore it
2137 when `git cola` is restarted.
2139 https://github.com/git-cola/git-cola/pull/175
2141 * `Ctrl+M` can now be used to toggle the "Amend last commit"
2142 checkbox in the commit message editor.
2144 https://github.com/git-cola/git-cola/pull/161
2146 * Deleting remote branches can now be done from the "Branch" menu.
2148 https://github.com/git-cola/git-cola/issues/152
2150 * The commit message editor now has a built-in spell checker.
2154 * We now avoid invoking external diffs when showing diffstats.
2156 https://github.com/git-cola/git-cola/pull/163
2158 * The `Status` tool learned to reselect files when refreshing.
2160 https://github.com/git-cola/git-cola/issues/165
2162 * `git cola` now remembers whether it has been maximized and will restore the
2163 maximized state when `git cola` is restarted.
2165 https://github.com/git-cola/git-cola/issues/172
2167 * Performance is now vastly improved when staging hundreds or
2170 * `git cola` was not correctly saving repo-specific configuration.
2172 https://github.com/git-cola/git-cola/issues/174
2174 * Fix a UnicodeDecode in sphinxtogithub when building from source.
2180 Usability, bells and whistles
2181 -----------------------------
2182 * We now automatically remove missing repositories from the
2183 "Select Repository" dialog.
2185 https://github.com/git-cola/git-cola/issues/145
2187 * A new `git cola diff` sub-command was added for diffing changed files.
2191 * The inotify auto-refresh feature makes it difficult to select text in
2192 the "diff" editor when files are being continually modified by another
2193 process. The auto-refresh causes it to lose the currently selected text,
2194 which is not wanted. We now avoid this problem by saving and restoring
2195 the selection when refreshing the editor.
2197 https://github.com/git-cola/git-cola/issues/155
2199 * More strings have been marked for l10n.
2201 https://github.com/git-cola/git-cola/issues/157
2203 * Fixed the Alt+D Diffstat shortcut.
2205 https://github.com/git-cola/git-cola/issues/159
2209 * Better error handling when cloning repositories.
2211 We were not handling the case where a git URL has
2212 no basename, e.g. `https://git.example.com/`.
2213 `git cola` originally rejected these URLs instead of
2214 allowing users to clone them. It now allows these URLs
2215 when they point to valid git repositories.
2217 Additionally, `git cola` learned to echo the errors
2218 reported by `git clone` when it fails.
2220 https://github.com/git-cola/git-cola/issues/156
2226 Usability, bells and whistles
2227 -----------------------------
2228 * `git dag` got a big visual upgrade.
2230 * `Ctrl+G` now launches the "Grep" tool.
2232 * `Ctrl+D` launches difftool and `Ctrl+E` launches your editor
2233 when in the diff panel.
2235 * git-cola can now be told to use an alternative language.
2236 For example, if the native language is German and we want git-cola to
2237 use English then we can create a `~/.config/git-cola/language` file with
2238 "en" as its contents:
2240 $ echo en >~/.config/git-cola/language
2242 https://github.com/git-cola/git-cola/issues/140
2244 * A new `git cola merge` sub-command was added for merging branches.
2246 * Less blocking in the main UI
2250 * Autocomplete issues on KDE
2252 https://github.com/git-cola/git-cola/issues/144
2254 * The "recently opened repositories" startup dialog did not
2255 display itself in the absence of bookmarks.
2257 https://github.com/git-cola/git-cola/issues/139
2263 Usability, bells and whistles
2264 -----------------------------
2265 * `git cola` learned to honor `.gitattributes` when showing and
2266 interactively applying diffs. This makes it possible to store
2267 files in git using a non-utf-8 encoding and `git cola` will
2268 properly accept them. This must be enabled by settings
2269 `cola.fileattributes` to true, as it incurs a small performance
2272 https://github.com/git-cola/git-cola/issues/96
2274 * `git cola` now wraps commit messages at 72 columns automatically.
2275 This is configurable using the `cola.linebreak` variable to enable/disable
2276 the feature, and `cola.textwidth` to configure the limit.
2278 https://github.com/git-cola/git-cola/issues/133
2280 * A new "Open Recent" sub-menu was added to the "File" menu.
2281 This makes it easy to open a recently-edited repository.
2283 https://github.com/git-cola/git-cola/issues/135
2285 * We now show a preview for untracked files when they are clicked
2286 using the `Status` tool.
2287 * A new "Open Using Default Application" action was added to the
2288 `Status` tool. It is activated using either `Spacebar` or through
2289 the context menu. This action uses `xdg-open` on Linux and
2291 * A new "Open Parent Directory" action was added to the `Status` tool.
2292 It is activated using either `Shift+Spacebar` or through the
2294 * `git dag` learned to honor the `log.date` git configuration variable.
2295 This makes the date display follow whatever format the user has
2297 * A new `git cola config` sub-command was added for quickly
2298 tweaking `git cola`'s git configuration settings.
2299 * Some small usability tweaks -- some user confirmation prompts
2300 were defaulting to "Cancel" when they should have been defaulting
2301 to the affirmative option instead.
2305 * Properly handle arbitrarily-named branches.
2306 * We went back to launching `git mergetool` using an xterm.
2307 The reason is that there are a couple of places where `git mergetool`
2308 requires a terminal for user interaction not covered by `--no-prompt`.
2309 * We now properly handle an edge case when applying short diffs at
2310 the start of a file.
2316 Usability, bells and whistles
2317 -----------------------------
2318 * New and improved `grep` mode lets you instantly find and edit files.
2319 * New `git cola grep` standalone mode.
2320 * Support for passing arguments to the configured editors, e.g. `gvim -p`
2321 This makes it possible to select multiple files in the status
2322 window and use `Ctrl-e` to edit them all at once.
2323 * Remote operations now prompt on errors only.
2324 * The `Tab` key now jumps to the extended description when editing the summary.
2325 * More shortcut key labels and misc. UX improvements.
2329 * Selecting an item no longer copies its filename to the copy/paste buffer.
2330 `Ctrl-c` or the "Copy" context-menu action can be used instead.
2331 * The repository monitoring feature on Windows learned to ignore
2332 changes within the ".git" directory. Thanks to Andreas Sommer.
2334 https://github.com/git-cola/git-cola/issues/120
2340 Usability, bells and whistles
2341 -----------------------------
2342 * `git dag` learned to color-code branchy edges.
2343 The edge colors change when a new branch is detected,
2344 which makes the history much easier to follow.
2345 A huge thanks to Uri Okrent for making it happen.
2347 * New GUI for editing remote repositories.
2349 * New `git cola archive` and `git cola remote` sub-commands.
2351 * `git cola browser` learned an 'Untrack' command.
2353 * The diff editor learned to staged/unstaged while amending.
2355 * The status tool can now scroll horizontally.
2357 * New git repositories can be created by clicking 'New' on the
2358 `git cola --prompt` startup screen.
2364 Usability, bells and whistles
2365 -----------------------------
2366 * Auto-completion was added to more tools.
2368 * `git dag` is easier to use on smaller displays -- the author
2369 field elides its text which allows for a more compact display.
2371 * Selected commits in `git dag` were made more prominent and
2374 * 'Create Branch' learned to fetch remote branches and uses a
2375 background thread to do so.
2377 * User-configured GUI tools are listed alphabetically in the 'Actions' menu.
2379 * The 'Pull' dialog remembers the value of the 'Rebase' checkbox
2380 between invocations.
2388 * Detect Homebrew so that OS X users do not need to set PYTHONPATH.
2390 * `git dag` can export patches again.
2396 Usability, bells and whistles
2397 -----------------------------
2398 * The 'Classic' tool was renamed to 'Browser' and learned to
2399 limit history to the current branch.
2401 * `git dag` learned about gravatar and uses it to show images
2404 * `git dag` learned to use OpenGL for rendering resulting in
2405 much faster rendering.
2407 * More dialogs learned vim-style keyboard shortcuts.
2409 * The commit message editor learned better arrow key navigation.
2415 Usability, bells and whistles
2416 -----------------------------
2417 * `git cola` learned a few new sub commands:
2425 * `Return` in the summary field jumps to the extended description.
2427 * `Ctrl+Return` is now a shortcut for 'Commit'.
2429 * Better French translation for 'Sign-off'.
2431 * The 'Search' widget now has a much simpler and streamlined
2434 * vim-style `h,j,k,l` navigation shortcuts were added to the DAG widget.
2436 * `git dag` no longer prompts for files when diffing commits if the
2437 text field contains paths.
2439 * General user interface and performance improvements.
2443 * The diff viewer no longer changes font size when holding `Control`
2444 while scrolling with the mouse wheel.
2446 * Files with a typechange (e.g. symlinks that become files, etc.)
2447 are now correctly identified as being modified.
2451 * The `cola.controllers` and `cola.views` packages were removed.
2457 Usability, bells and whistles
2458 -----------------------------
2459 * `git cola` can now launch sub commands, e.g.:
2470 * `git dag` is more responsive when gathering auto-completions.
2472 * Keyboard shortcuts are displayed when the '?' key is pressed.
2474 * Various keyboard shortcuts were added for improved usability.
2476 * The status widget now lists unmerged files before modified files.
2478 * vim-style `h,j,k,l` navigation shortcuts were added to the status widget.
2480 * A 'Recently Modified Files...' tool was added.
2482 * Tools can now be hidden with `Alt + #` (where `#` is a keyboard number)
2483 and focused with `Alt + Shift + #`.
2485 * The syntax highlighting colors for diffs was made less intrusive.
2487 * The commit message editor was redesigned to have a more compact
2488 and keyboard-convenient user interface.
2490 * Keyboard shortcuts for adding a Signed-off-by (`Ctrl + i`)
2491 and creating a commit (`Ctrl + m`) were added.
2493 * The status widget was adjusted to use less screen real-estate.
2497 * Avoid updating the index when responding to inotify events.
2498 This avoids interfering with operations such as `git rebase --interactive`.
2500 https://github.com/git-cola/git-cola/issues/99
2504 * Create `git-dag.pyw` in the win32 installer.
2506 * win32 shortcuts now contain explicit calls to `pythonw.exe` instead of
2507 calling the `.pyw` file directly.
2511 * The 'Apply Changes from Branch...' feature was removed.
2512 `git dag`'s 'Grab File...' feature used alongside the index/worktree editor
2513 is a simpler alternative.
2521 * Further enhanced the staging/unstaging behavior in the status widget.
2523 https://github.com/git-cola/git-cola/issues/97
2525 * Unmerged files are no longer listed as modified.
2529 The `cola-$version` tarballs on github were originally setup to
2530 have the same contents as the old tarballs hosted on tuxfamily.
2531 The `make dist` target was changed to write files to a
2532 `git-cola-$version` subdirectory and tarball.
2534 This makes the filenames consistent for the source tarball,
2535 the darwin .app tarball, and the win32 .exe installer.
2541 Usability, bells and whistles
2542 -----------------------------
2543 * Refined the staging/unstaging behavior for code reviews.
2545 https://github.com/git-cola/git-cola/issues/97
2547 * Added more styling and icons to menus and buttons.
2549 * Adjusted some terminology to more closely match the git CLI.
2553 * Boolean `git config` settings with no value are now supported
2554 (these are not created by git these days but exist in legacy repositories).
2556 * Unicode branches and tags are supported in the "branch diff" tool.
2558 * Guard against low-memory conditions and more interrupted system calls.
2562 * Added desktop launchers for git-cola.desktop and git-dag.desktop.
2563 This replaces the old cola.desktop, so some adjustments to RPM .spec
2564 and debian/ files will be needed.
2566 * Fixed the darwin app-tarball Makefile target to create relative paths.
2570 * The `--style` option was removed. `git cola` follows the system theme
2571 so there's no need for this option these days.
2577 Usability, bells and whistles
2578 -----------------------------
2579 * Export a patch series from `git dag` into a `patches/` directory.
2581 * `git dag` learned to diff commits, slice history along paths, etc.
2583 * Added instant-preview to the `git stash` widget.
2585 * A simpler preferences editor is used to edit `git config` values.
2587 https://github.com/git-cola/git-cola/issues/90
2589 https://github.com/git-cola/git-cola/issues/89
2591 * Previous commit messages can be re-loaded from the message editor.
2593 https://github.com/git-cola/git-cola/issues/33
2597 * Display commits with no file changes.
2599 https://github.com/git-cola/git-cola/issues/82
2601 * Improved the diff editor's copy/paste behavior
2603 https://github.com/git-cola/git-cola/issues/90
2607 * Bumped version number to ceil(minimum git version).
2608 `git cola` now requires `git` >= 1.6.3.
2610 * Simplified git-cola's versioning when building from tarballs
2611 outside of git. We no longer check for a 'version' file at
2612 the root of the repository. We instead keep a default version
2613 in `cola/version.py` and use it when `git cola`'s `.git` repository
2620 Usability, bells and whistles
2621 -----------------------------
2622 * inotify is much snappier and available on Windows
2623 thanks to Karl Bielefeldt.
2625 * New right-click command to add untracked files to .gitignore
2626 thanks to Audrius Karabanovas.
2628 * Stash, fetch, push, and pull usability improvements
2630 * General usability improvements
2632 * stderr is logged when applying partial diffs.
2636 * Files can be unstaged when amending.
2638 https://github.com/git-cola/git-cola/issues/82
2640 * Show the configured remote.$remote.pushurl in the GUI
2642 https://github.com/git-cola/git-cola/issues/83
2644 * Removed usage of the "user" module.
2646 https://github.com/git-cola/git-cola/issues/86
2648 * Avoids an extra `git update-index` call during startup.
2655 Usability, bells and whistles
2656 -----------------------------
2657 * We now provide better feedback when `git push` fails.
2659 https://github.com/git-cola/git-cola/issues/69
2661 * The Fetch, Push, and Pull dialogs now give better feedback
2662 when interacting with remotes. The dialogs are modal and
2663 a progress dialog is used.
2667 * More unicode fixes, again. It is now possible to have
2668 unicode branch names, repository paths, home directories, etc.
2669 This continued the work initiated by Redhat's bugzilla #694806.
2671 https://bugzilla.redhat.com/show_bug.cgi?id=694806
2677 Usability, bells and whistles
2678 -----------------------------
2679 * The `git cola` desktop launchers now prompt for a repo
2680 by default. This is done by using the new `--prompt`
2681 flag which tells `git cola` to ignore any git repositories
2682 in the current directory and prompt for one instead.
2686 * More Unicode fixes for repositories and home directories with
2687 embedded unicode characters. Thanks to Christian Jann for
2688 patience and helpful bug reports.
2690 * Fix the 'Clone' button in the startup dialog.
2696 Usability, bells and whistles
2697 -----------------------------
2698 * Faster startup time! `git cola` now offloads initialization
2699 to a background thread so that the GUI appears almost instantly.
2701 * Specialized diff options for p4merge, vimdiff, araxis, emerge,
2702 and ecmerge in difftool (backported from git.git).
2706 * Fix launching commands in the background on Windows
2707 (e.g. when launching `git difftool`).
2709 * Fix unicode errors when home or repository directories contain
2712 https://github.com/git-cola/git-cola/issues/74
2714 Redhat's bugzilla #694806
2716 https://bugzilla.redhat.com/show_bug.cgi?id=694806
2722 Usability, bells and whistles
2723 -----------------------------
2724 * The `cola classic` tool can be now configured to be dockable.
2726 https://github.com/git-cola/git-cola/issues/56
2728 * The `cola classic` tool now uses visual sigils to indicate a file's status.
2729 The idea and icons were provided by Uri Okrent.
2731 * Include the 'Rescan' button in the 'Actions' widget regardless
2732 of whether inotify is installed.
2736 * Fix installation of translations per Fedora
2737 This incorporates Fedora's fix for the translations path
2738 which originally appeared in cola-1.4.3-translations.patch.
2740 * Mac OS X git-cola developers can now generate git-cola.app
2741 application bundles using 'make app-bundle'.
2745 * Fixed a stacktrace when trying to use "Get Commit Message Template"
2746 with an unconfigured "commit.template" git config variable.
2748 https://github.com/git-cola/git-cola/issues/72
2750 This bug originated in Redhat's bugzilla #675721 via a Fedora user.
2752 https://bugzilla.redhat.com/show_bug.cgi?id=675721
2754 * Properly raise the main window on Mac OS X.
2756 * Properly handle staging a huge numbers of files at once.
2758 * Speed up 'git config' usage by fixing cola's caching proxy.
2760 * Guard against damaged ~/.cola files.
2766 Usability, bells and whistles
2767 -----------------------------
2768 * `git dag` now has a separate display area
2769 for displaying commit metadata. This area will soon
2770 grow additional functionality such as cherry-picking,
2775 * Fixed tests from a previous refactoring.
2777 * Guard against 'diff.external' configuration by always
2778 calling 'git diff' with the '--no-ext-diff' option.
2780 https://github.com/git-cola/git-cola/issues/67
2782 * Respect 'gui.diffcontext' so that cola's diff display
2783 shows the correct number of context lines.
2785 * Raise the GUI so that it is in the foreground on OS X.
2789 * We now allow distutils to rewrite cola's shebang line.
2790 This allows us to run on systems where "which python"
2791 is Python3k. This is exposed by setting the `PYTHON`
2792 Makefile variable to the location of python2.x.
2794 * git-cola.app is now a tiny download because it no longer
2795 contains Qt and PyQt. These libraries are provided as a
2798 http://code.google.com/p/git-cola/downloads/list
2804 Usability, bells and whistles
2805 -----------------------------
2806 * Clicking on paths in the status widget copies them into the
2807 copy/paste buffer for easy middle-clicking into terminals.
2809 * `Ctrl+C` in diff viewer copies the selected diff to the clipboard.
2813 * Fixed the disappearing actions buttons on PyQt 4.7.4
2814 as reported by Arch and Ubuntu 10.10.
2816 https://github.com/git-cola/git-cola/issues/62
2818 * Fixed mouse interaction with the status widget where some
2819 items could not be de-selected.
2823 * Removed hard-coded reference to lib/ when calculating Python's
2824 site-packages directory.
2830 Usability, bells and whistles
2831 -----------------------------
2832 * Removed "single-click to (un)stage" in the status view.
2833 This is a usability improvement since we no longer perform
2834 different actions depending on where a row is clicked.
2836 * Added ability to create unsigned, annotated tags.
2840 * Updated documentation to use `cola.git` instead of `cola.gitcmd`.
2846 Usability, bells and whistles
2847 -----------------------------
2848 * Allow un/staging by right-clicking top-level items
2850 https://github.com/git-cola/git-cola/issues/57
2852 * Running 'commit' with no staged changes prompts to allow
2855 https://github.com/git-cola/git-cola/issues/55
2857 * Fetch, Push, and Pull are now available via the menus
2859 https://github.com/git-cola/git-cola/issues/58
2863 * Simplified the actions widget to work around a regression
2866 https://github.com/git-cola/git-cola/issues/62
2872 Usability, bells and whistles
2873 -----------------------------
2874 * `git dag` interaction was made faster.
2878 * Added '...' indicators to the buttons for
2879 'Fetch...', 'Push...', 'Pull...', and 'Stash...'.
2881 https://github.com/git-cola/git-cola/issues/51
2883 * Fixed a hang-on-exit bug in the cola-provided
2884 'ssh-askpass' implementation.
2890 Usability, bells and whistles
2891 -----------------------------
2892 * Staging and unstaging is faster.
2894 https://github.com/git-cola/git-cola/issues/48
2896 * `git dag` reads history in a background thread.
2900 * Added :data:`cola.compat.hashlib` for `Python 2.4` compatibility
2901 * Improved `PyQt 4.1.x` compatibility.
2905 * Configured menu actions use ``sh -c`` for Windows portability.
2912 Usability, bells and whistles
2913 -----------------------------
2914 * Added support for the configurable ``guitool.<tool>.*``
2915 actions as described in ``git-config(1)``.
2917 https://github.com/git-cola/git-cola/issues/44
2919 http://schacon.github.com/git/git-config.html
2921 This makes it possible to add new actions to `git cola`
2922 by simply editing ``~/.gitconfig``. This implements the
2923 same guitool support as `git gui`.
2924 * Introduced a stat cache to speed up `git config` and
2925 repository status checks.
2926 * Added Alt-key shortcuts to the main `git cola` interface.
2927 * The `Actions` dock widget switches between a horizontal
2928 and vertical layout when resized.
2929 * We now use ``git diff --submodule`` for submodules
2930 (used when git >= 1.6.6).
2931 * The context menu for modified submodules includes an option
2932 to launch `git cola`.
2934 https://github.com/git-cola/git-cola/issues/17
2936 * Prefer ``$VISUAL`` over ``$EDITOR`` when both are defined.
2937 These are used to set a default editor in lieu of `core.editor`
2939 * Force the editor to be ``gvim`` when we see ``vim``.
2940 This prevents us from launching an editor in the (typically
2941 unattached) parent terminal and creating zombie editors
2942 that cannot be easily killed.
2943 * Selections are remembered and restored across updates.
2944 This makes the `partial-staging` workflow easier since the
2945 diff view will show the updated diff after staging.
2946 * Show the path to the current repository in a tooltip
2947 over the commit message editor.
2949 https://github.com/git-cola/git-cola/issues/45
2951 * Log internal ``git`` commands when ``GIT_COLA_TRACE`` is defined.
2953 https://github.com/git-cola/git-cola/issues/39
2957 * Improved backwards compatibility for Python 2.4.
2958 * `Review mode` can now review the current branch; it no longer
2959 requires you to checkout the branch into which the reviewed
2960 branch will be merged.
2961 * Guard against `color.ui = always` configuration when using
2962 `git log` by passing ``--no-color``.
2963 * ``yes`` and ``no`` are now supported as valid booleans
2964 by the `git config` parser.
2965 * Better defaults are used for `fetch`, `push`, and `pull`..
2967 https://github.com/git-cola/git-cola/issues/43
2971 * Removed colon (`:`) from the applilcation name on Windows
2973 https://github.com/git-cola/git-cola/issues/41
2975 * Fixed bugs with the Windows installer
2977 https://github.com/git-cola/git-cola/issues/40
2979 * Added a more standard i18n infrastructure. The install
2980 tree now has the common ``share/locale/$lang/LC_MESSAGES/git-cola.mo``
2981 layout in use by several projects.
2983 * Started trying to accommodate Mac OSX 10.6 (Snow Leopard)
2984 in the ``darwin/`` build scripts but our tester is yet to
2985 report success building a `.app` bundle.
2987 * Replaced use of ``perl`` in Sphinx/documentation Makefile
2988 with more-portable ``sed`` constructs. Thanks to
2989 Stefan Naewe for discovering the portability issues and
2990 providing msysgit-friendly patches.
2996 Usability, bells and whistles
2997 -----------------------------
2998 * It is now possible to checkout from the index as well
2999 as from `HEAD`. This corresponds to the
3000 `Removed Unstaged Changes` action in the `Repository Status` tool.
3001 * The `remote` dialogs (fetch, push, pull) are now slightly
3003 * Bookmarks can be selected when `git cola` is run outside of a git repository.
3004 * Added more user documentation. We now include many links to
3005 external git resources.
3006 * Added `git dag` to the available tools.
3007 `git dag` is a node-based DAG history browser.
3008 It doesn't do much yet, but it's been merged so that we can start
3009 building and improving upon it.
3013 * Fixed a missing ``import`` when showing `right-click` actions
3014 for unmerged files in the `Repository Status` tool.
3015 * ``git update-index --refresh`` is no longer run every time
3016 ``git cola version`` is run.
3017 * Don't try to watch non-existent directories when using `inotify`.
3018 * Use ``git rev-parse --symbolic-full-name`` plumbing to find
3019 the name of the current branch.
3023 * The ``Makefile`` will now conditionally include a ``config.mak``
3024 file located at the root of the project. This allows for user
3025 customizations such as changes to the `prefix` variable
3026 to be stored in a file so that custom settings do not need to
3027 be specified every time on the command-line.
3028 * The build scripts no longer require a ``.git`` directory to
3029 generate the ``builtin_version.py`` module. The release tarballs
3030 now include a ``version`` file at the root of the project which
3031 is used in lieu of having the git repository available.
3032 This allows for ``make clean && make`` to function outside of
3034 * Added maintainer's ``make dist`` target to the ``Makefile``.
3035 * The built-in `simplejson` and `jsonpickle` libraries can be
3036 excluded from ``make install`` by specifying the ``standalone=true``
3037 `make` variable. For example, ``make standalone=true install``.
3038 This corresponds to the ``--standalone`` option to ``setup.py``.
3045 Usability, bells and whistles
3046 -----------------------------
3047 * We now use patience diff by default when it is available via
3048 `git diff --patience`.
3049 * Allow closing the `cola classic` tool with `Ctrl+W`.
3053 * Fixed an unbound variable error in the `push` dialog.
3057 * Don't include `simplejson` in MANIFEST.in.
3058 * Update desktop entry to read `Cola Git GUI`.
3065 This feature release adds two new features directly from
3066 `git cola`'s github issues backlog. On the developer
3067 front, further work was done towards modularizing the code base.
3069 Usability, bells and whistles
3070 -----------------------------
3071 * Dragging and dropping patches invokes `git am`
3073 https://github.com/git-cola/git-cola/issues/3
3075 * A dialog to allow opening or cloning a repository
3076 is presented when `git cola` is launched outside of a git repository.
3078 https://github.com/git-cola/git-cola/issues/22
3080 * Warn when `push` is used to create a new branch
3082 https://github.com/git-cola/git-cola/issues/35
3084 * Optimized startup time by removing several calls to `git`.
3089 * `git cola` is once again compatible with PyQt 4.3.x.
3093 * `cola.gitcmds` was added to factor out git command-line utilities
3094 * `cola.gitcfg` was added for interacting with `git config`
3095 * `cola.models.browser` was added to factor out repobrowser data
3105 * Fix launching external applications on Windows
3106 * Ensure that the `amend` checkbox is unchecked when switching modes
3107 * Update the status tree when amending commits
3116 * Fix Lintian warnings
3125 * Fix X11 warnings on application startup
3134 * Added missing 'Exit Diff Mode' button for 'Diff Expression' mode
3136 https://github.com/git-cola/git-cola/issues/31
3138 * Fix a bug when initializing fonts on Windows
3140 https://github.com/git-cola/git-cola/issues/32
3149 * Keep entries in sorted order in the `cola classic` tool
3150 * Fix staging untracked files
3152 https://github.com/git-cola/git-cola/issues/27
3154 * Fix the `show` command in the Stash dialog
3156 https://github.com/git-cola/git-cola/issues/29
3158 * Fix a typo when loading merge commit messages
3160 https://github.com/git-cola/git-cola/issues/30
3167 This release focuses on a redesign of the git-cola user interface,
3168 a tags interface, and better integration of the `cola classic` tool.
3169 A flexible interface based on configurable docks is used to manage the
3170 various cola widgets.
3172 Usability, bells and whistles
3173 -----------------------------
3174 * New GUI is flexible and user-configurable
3175 * Individual widgets can be detached and rearranged arbitrarily
3176 * Add an interface for creating tags
3177 * Provide a fallback `SSH_ASKPASS` implementation to prompt for
3178 SSH passwords on fetch/push/pull
3179 * The commit message editor displays the current row/column and
3180 warns when lines get too long
3181 * The `cola classic` tool displays upstream changes
3182 * `git cola --classic` launches `cola classic` in standalone mode
3183 * Provide more information in log messages
3187 * Inherit the window manager's font settings
3188 * Miscellaneous PyQt4 bug fixes and workarounds
3192 * Removed all usage of Qt Designer `.ui` files
3193 * Simpler model/view architecture
3194 * Selection is now shared across tools
3195 * Centralized notifications are used to keep views in sync
3196 * The `cola.git` command class was made thread-safe
3197 * Less coupling between model and view actions
3198 * The status view was rewritten to use the MVC architecture
3199 * Added more documentation and tests
3206 Usability, bells and whistles
3207 -----------------------------
3208 * Added a `cola classic` tool for browsing the entire repository
3209 * Handle diff expressions with spaces
3210 * Handle renamed files
3214 * Handle carat `^` characters in diff expressions on Windows
3215 * Worked around a PyQt 4.5/4.6 QThreadPool bug
3219 * Added a keyboard shortcuts reference page
3220 * Added developer API documentation
3224 * Fix the diff expression used when reviewing branches
3225 * Fix a bug when pushing branches
3226 * Fix X11 warnings at startup
3227 * Fix more interrupted system calls on Mac OS X
3234 Usability, bells and whistles
3235 -----------------------------
3236 * Fresh and tasty SVG logos
3237 * Added `Branch Review` mode for reviewing topic branches
3238 * Added diff modes for diffing between tags, branches,
3239 or arbitrary `git diff` expressions
3240 * The push dialog selects the current branch by default.
3241 This is in preparation for `git 1.7.0` where unconfigured `git push`
3242 will refuse to push when run without specifying the remote name
3243 and branch. See the `git` release notes for more information
3244 * Support `open` and `clone` commands on Windows
3245 * Allow saving cola UI layouts
3246 * Re-enabled `double-click-to-stage` for unmerged entries.
3247 Disabling it for unmerged items was inconsistent, though safer.
3248 * Show diffs when navigating the status tree with the keyboard
3252 * Worked around `pyuic4` bugs in the `setup.py` build script
3253 * Added Mac OSX application bundles to the download page
3262 * `git difftool` became an official git command in `git 1.6.3`.
3263 * `git difftool` learned `--no-prompt` / `-y` and a corresponding
3264 `difftool.prompt` configuration variable
3266 Usability, bells and whistles
3267 -----------------------------
3268 * Warn when `non-fast-forward` is used with fetch, push or pull
3269 * Allow `Ctrl+C` to exit cola when run from the command line
3273 * Support Unicode font names
3274 * Handle interrupted system calls
3278 * `PEP-8`-ified more of the cola code base
3283 * All resources are now installed into `$prefix/share/git-cola`.
3284 Closed Debian bug #519972
3286 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=519972
3295 * Added support for Kompare in `git difftool`
3296 * Added a separate configuration namespace for `git difftool`
3297 * Added the `diff.tool` configuration variable to define the default diff tool
3299 Usability, bells and whistles
3300 -----------------------------
3301 * The stash dialog allows passing the `--keep-index` option to `git stash`
3302 * Amending a published commit warns at commit time
3303 * Simplified the file-across-revisions comparison dialog
3304 * `origin` is selected by default in fetch/push/pull
3305 * Removed the search field from the log widget
3306 * The log window moved into a drawer widget at the bottom of the UI
3307 * Log window display can be configured with
3308 `cola.showoutput` = `{never, always, errors}`. `errors` is the default.
3309 * `NOTE` -- `cola.showoutput` was removed with the GUI rewrite in 1.4.0.
3313 * Improved nose unittest usage
3317 * Added a Windows/msysGit installer
3318 * Included private versions of `simplejson` and `jsonpickle`
3319 for ease of installation and development