8 :ref:`v3.1 <v3.1>` is the latest stable release.
13 Clone the git-cola repo to get the latest development version:
15 ``git clone git://github.com/git-cola/git-cola.git``
22 Usability, bells and whistles
23 -----------------------------
24 * The `git cola dag` DAG window now supports `git revert`.
26 https://github.com/git-cola/git-cola/issues/843
28 * `git stash pop` is now supported by the stash dialog.
30 https://github.com/git-cola/git-cola/issues/844
32 * The status widget now ensures that each item is visible when selection
33 changes. Previously, if you scrolled to the right to see the name of
34 a long filename, and then selected a short filename above it, the widget
35 may not have shown the short filename in the viewport. We now ensure
36 that the filenames are visible when the selection changes.
38 https://github.com/git-cola/git-cola/pull/828
40 * The `git xbase` rebase editor no longer displays an error when
41 cancelling an interactive rebase.
43 https://github.com/git-cola/git-cola/issues/814
45 * The dialog shown when renaming remotes has been simplified.
47 https://github.com/git-cola/git-cola/pull/840
49 https://github.com/git-cola/git-cola/issues/838
51 * The help dialog in the `git-xbase` Rebase editor is now scrollable.
53 https://github.com/git-cola/git-cola/issues/855
57 * Updated Brazilian translation
59 https://github.com/git-cola/git-cola/pull/845
61 * Updated Czech translation
63 https://github.com/git-cola/git-cola/pull/854
65 https://github.com/git-cola/git-cola/pull/853
67 https://github.com/git-cola/git-cola/pull/835
69 https://github.com/git-cola/git-cola/pull/813
71 * Update Spanish translation
73 https://github.com/git-cola/git-cola/pull/862
77 * The Makefile is now resilient to DESTDIR and prefix containing whitespace.
79 https://github.com/git-cola/git-cola/pull/858
81 * The vendored `qtpy` library was updated to `v1.4.2`.
83 * `python3-distutils` is needed to build cola on Debian.
85 https://github.com/git-cola/git-cola/issues/837
89 * Dock widgets sizes are now properly saved and restored when the main
92 https://github.com/git-cola/git-cola/issues/848
94 * The spellcheck feature was broken under Python3.
96 https://github.com/git-cola/git-cola/issues/857
98 * A regression when saving stashes was fixed.
100 https://github.com/git-cola/git-cola/issues/847
102 * Diffing image files was not updating the available context menus,
103 which prevented the "Stage" action from being present in the menu.
105 https://github.com/git-cola/git-cola/issues/841
107 * `git cola` now detects when `git lfs uninstall` has been run. This allows
108 you to re-initialize "Git LFS" in an existing repository where it had been
109 previously uninstalled.
111 https://github.com/git-cola/git-cola/issues/842
113 * Custom color values that did not contain any hexadecimal digits in the
114 `a-f` range were being converted into integers by the config reader. This
115 then caused the configured colors to be ignored.
117 These color values are now interpreted correctly. Additionally, color
118 values can now use an optional HTML-like `#` prefix.
120 Example `.gitconfig` snippet::
125 https://github.com/git-cola/git-cola/pull/836
127 https://github.com/git-cola/git-cola/issues/849
129 * We now display an error message graphically when `Git` is not installed.
130 Previously, the message went to stderr only.
132 https://github.com/git-cola/git-cola/issues/830
134 * Changing diff options was causing resulting in an exception.
136 https://github.com/git-cola/git-cola/issues/833
138 https://github.com/git-cola/git-cola/pull/834
140 * The DAG window now updates itself when branches and tags are created.
142 https://github.com/git-cola/git-cola/issues/814
144 * The user's `$PATH` environment variable can now contain utf-8
145 encoded paths. Previously, launching external commands could
148 https://github.com/git-cola/git-cola/issues/807
150 * Git Cola development sandboxes can now be stored on utf-8 encoded
151 filesystem paths. Previously, the interactive rebase feature
152 could be broken when running in that environment.
154 https://github.com/git-cola/git-cola/issues/825
156 * The log window now uses an ISO-8601 timestamp, which
157 avoids localized output in the log window.
159 https://github.com/git-cola/git-cola/issues/817
166 Usability, bells and whistles
167 -----------------------------
168 * The "Browser" widget learned to rename files using "git mv".
170 https://github.com/git-cola/git-cola/issues/239
172 * The "Diff" widget learned to diff images. Side-by-side and pixel diff
173 modes allow you to inspect changes to common images formats.
175 https://github.com/git-cola/git-cola/issues/444
177 https://github.com/git-cola/git-cola/pull/803
179 * Git LFS and Git Annex are natively supported by the image diff viewer.
181 * Git Annex operations are now included. `git annex init` can be performed on
182 repositories, and `git annex add` can be run on untracked files from the
183 status widget. Install `git-annex` to activate this feature.
185 * Git LFS operations are now included. `git lfs install` can be performed on
186 repositories, and `git lfs track` can be run on untracked files from the
187 status widget. Install `git-lfs` to activate this feature.
189 * The "Stash" tool learned to stash staged changes only. Select the
190 "Stage Index" option and only staged changes will be stashed away.
192 https://github.com/git-cola/git-cola/issues/413
194 * The "Stash" tool learned to use vim-like navigation keyboard shortcuts,
195 shows error messages when things go wrong, and now saves the "Stash Index"
196 and "Keep Index" options across sessions.
198 * The Edit menu's "Copy" and "Select All" actions now forward to either the
199 diff, status, recent, or favorites widgets, based on which widget has focus.
201 * The "File" and "Edit" menu can now be activated using `Alt-{f,e}` hotkeys.
203 https://github.com/git-cola/git-cola/issues/759
205 * It was easy to accidentally trigger the first action in the `Status` tool's
206 context menu when using a quick right-click to bring up the menu.
207 A short sub-second delay was added to ensure that the top-most action is not
208 triggered unless enough time has passed. This prevents accidental
209 activation of the first item (typically "Stage" or "Unstage") without
210 burdening common use cases.
212 https://github.com/git-cola/git-cola/pull/755
214 https://github.com/git-cola/git-cola/issues/643
216 * The "Ctrl+S" hotkey now works for the header items in the Status tool.
217 Selected the "Modified" header item and activating the "Stage" hotkey,
218 for example, will stage all modified files. This works for the "Staged",
219 "Modified", and "Untracked" headers. This is not enabled for the
220 "Unmerged" header by design.
222 https://github.com/git-cola/git-cola/issues/772
224 * The list of "Recent" repositories previously capped the number of
225 repositories shown to 8 repositories. This can be set to a higher
226 value by setting the `cola.maxrecent` configuration variable.
228 https://github.com/git-cola/git-cola/issues/752
230 * The "Create Branch" dialog now prevents invalid branch names.
232 https://github.com/git-cola/git-cola/issues/765
234 * Updated Turkish translation.
236 https://github.com/git-cola/git-cola/pull/756
238 * Updated Ukrainian translation.
240 https://github.com/git-cola/git-cola/pull/753
242 * Updated German translation.
244 https://github.com/git-cola/git-cola/pull/802
246 * Updated Czech translation
248 https://github.com/git-cola/git-cola/pull/792
250 https://github.com/git-cola/git-cola/pull/806
252 * The window title can be configured to not display the absolute path of the
255 https://github.com/git-cola/git-cola/issues/775
257 * The "Edit Remotes" editor learned to edit remote URLS.
259 * Bare repositories can now be created by selecting the
260 "New Bare Repository..." action from the `File` menu.
262 * The "Branches" widget learned to configure upstream branches.
264 * A new `git cola clone` sub-command was added for cloning repositories.
268 * The vendored `qtpy` library was updated to `v1.3.1`.
270 * The macOS installation was made simpler for better compatibility with
273 https://github.com/git-cola/git-cola/issues/636
275 * The Windows installer is now much simpler. Git Cola now bundles
276 Python and PyQt5, so users need only install the "Git for Windows"
277 and "Git Cola" installers to get things working.
281 * Uninitialized difftool errors will now be displayed graphically.
282 They were previously going to the shell.
284 https://github.com/git-cola/git-cola/issues/457
286 * Translations marked "fuzzy" will no longer be used when translating strings.
288 https://github.com/git-cola/git-cola/issues/782
290 * Deleted unmerged files will now correctly use a deleted icon.
292 https://github.com/git-cola/git-cola/issues/479
294 * The `Ctrl+C` "Copy" hotkey on the diff viewer has been fixed.
296 https://github.com/git-cola/git-cola/issues/767
298 * The "Create Tag" dialog did not correctly handle the case when a signed
299 tag is requested, but no message is provided, and the user chooses to
300 create an unannotated tag instead. This convenience fallback will now
301 properly create an unsigned, unannotated tag.
303 https://github.com/git-cola/git-cola/issues/696
305 * `.gitconfig` and `.git/config` values editable by the Preferences dialog
306 (aka `git cola config`) will now get unset when set to an empty value.
307 For example, setting a different `user.email` in the current repository,
308 followed by a subsequent emptying of that field, would previously result in
309 an empty string getting stored in the config. This has been fixed so that
310 the value will now get unset in the config instead.
312 https://github.com/git-cola/git-cola/issues/406
314 * Spelling and typofixes.
316 https://github.com/git-cola/git-cola/pull/748
318 * `core.commentChar` is now honored when set in the local repository
321 https://github.com/git-cola/git-cola/issues/766
323 * The log window was using a format string that did not display
324 correctly in all locales. A locale-aware format is now used.
326 https://github.com/git-cola/git-cola/pull/800
328 * The dialog displayed when prompting for a reference could sometimes
331 https://github.com/git-cola/git-cola/pull/804
338 Usability, bells and whistles
339 -----------------------------
340 * Updated Simplified Chinese translation.
342 https://github.com/git-cola/git-cola/pull/726
344 * Updated Ukrainian translation.
346 https://github.com/git-cola/git-cola/pull/723
348 * New Czech translation.
350 https://github.com/git-cola/git-cola/pull/736
352 https://github.com/git-cola/git-cola/pull/737
354 https://github.com/git-cola/git-cola/pull/740
356 https://github.com/git-cola/git-cola/pull/743
358 * The "name" field in the "Create Tag" dialog now includes autocompletion,
359 which makes it easy to see which tags currently exist.
361 * `git cola` now has configurable toolbars. Use the `View -> Add toolbar`
362 menu item to add a toolbar.
364 * Setting `cola.expandtab` to `true` will now expand tabs into spaces
365 in the commit message editor. The number of spaces to insert is determined
366 by consulting `cola.tabwidth`, which defaults to `8`.
368 * The "Copy SHA-1" hotkey is now `Alt + Ctrl + C`, to avoid clobbering the
369 ability to copy text from the DAG window.
371 https://github.com/git-cola/git-cola/pull/705
373 * The "Prepare Commit Message" action can now be invoked via the
374 `Ctrl+Shift+Return` shortcut.
376 https://github.com/git-cola/git-cola/pull/707
378 * The `Branches` pane now has a filter field that highlights branches whose
379 names match the string entered into its text field.
381 https://github.com/git-cola/git-cola/pull/713
383 * Actions that are triggered in response to button presses were being
384 triggered when the button was pressed, rather than when it was released,
385 which was a usability flaw. All buttons now respond when clicked
386 rather than when pressed.
388 https://github.com/git-cola/git-cola/pull/715
390 * The DAG window will now only refresh when object IDs change.
391 Previously, the DAG would redraw itself in response to inotify events,
392 such as filesystem operations, which was disruptive when inspecting a large
393 diff in its diff viewer. The DAG will now only redraw when the object IDs
394 corresponding to its query input changes. Furthermore, when redrawing, the
395 scrollbar positions are retained to minimize disruption to the viewport
398 https://github.com/git-cola/git-cola/issues/620
400 https://github.com/git-cola/git-cola/issues/724
402 * The "About" dialog now includes the SHA-1 where Git Cola was built.
404 https://github.com/git-cola/git-cola/issues/530
406 * The "Status" widget now has "Copy Leading Path to Clipboard" and
407 "Copy Basename to Clipboard" actions.
409 https://github.com/git-cola/git-cola/issues/435
411 https://github.com/git-cola/git-cola/issues/436
413 * The "Status" widget now supports custom "Copy ... to Clipboard" actions.
415 https://github.com/git-cola/git-cola/issues/437
417 * The main menu now has an "Edit" menu.
419 https://github.com/git-cola/git-cola/issues/725
421 * `git dag` learned to checkout commits into a detached HEAD state.
423 https://github.com/git-cola/git-cola/issues/698
425 * The `status` widget's context menus now omit actions selection-dependent
426 actions when no file is selected.
428 https://github.com/git-cola/git-cola/pull/731
430 * The startup dialog now focuses the repository list so that repositories
431 can be selected with the keyboard without mouse intervention.
433 https://github.com/git-cola/git-cola/issues/741
437 * `git dag` now prevents nodes from overlapping in more situations.
439 https://github.com/git-cola/git-cola/pull/689
441 * Adding untracked Git submodule repo directories previously ran
442 `git add submodule/` but we now call `git add submodule` without
443 the trailing slash (`/`) to avoid staging files that belong to the
444 submodule (which is possibly a `git` bug). By working around the
445 buggy behavior we allow users to recover by issuing the appropriate
446 `git submodule add` command to properly register the submodule.
448 https://github.com/git-cola/git-cola/pull/681
450 * We now avoid `git for-each-ref --sort=version:refname` on versions
451 of `git` older than `v2.7.0`. Previously we only avoided it for
452 versions older than `v2.0.0`, which was a mistake.
454 https://github.com/git-cola/git-cola/pull/686
456 * The error message displayed when `git` is not installed has been fixed.
458 https://github.com/git-cola/git-cola/pull/686
460 * Adding new remotes was silently broken.
462 https://github.com/git-cola/git-cola/issues/684
464 https://github.com/git-cola/git-cola/pull/685
466 * The repo selection dialog had errors during startup when the
467 `cola.refreshonfocus` feature was enabled, as reported on Ubuntu 16.04.
469 https://github.com/git-cola/git-cola/issues/690
471 * Restored support for PyQt 4.6 (Centos 6.8)
473 https://github.com/git-cola/git-cola/issues/692
475 * Switching repositories now resets the "Amend Mode" and other settings
478 https://github.com/git-cola/git-cola/issues/710
480 * `git rebase` error messages now displayed when rebasing fails or stops
481 via the standalone `git cola rebase` front-end.
483 https://github.com/git-cola/git-cola/issues/721
485 * `git cola` learned to stage broken symlinks.
487 https://github.com/git-cola/git-cola/issues/727
489 * The "View History" feature in the `Browser` tool was fixed, and now
490 disambiguates between refs and paths.
492 https://github.com/git-cola/git-cola/issues/732
494 * The diff editor now has better support for files with CRLF `\r\n`
497 https://github.com/git-cola/git-cola/issues/730
499 * `cola.inotify` in a repo-local config is now honored
500 when `git cola` is launched from a desktop entry (`git cola --prompt`).
502 https://github.com/git-cola/git-cola/issues/695
509 Usability, bells and whistles
510 -----------------------------
511 * New Ukrainian translation.
513 https://github.com/git-cola/git-cola/pull/670
515 https://github.com/git-cola/git-cola/pull/672
517 * New and improved French translations.
519 * The new `Branches` widget makes it easier to checkout, merge, push,
520 and pull branches from a single interface.
522 * `git cola` now includes a dark icon theme. The dark icon theme can be
523 activated either by setting the `GIT_COLA_ICON_THEME` environment variable
524 to `dark`, by configuring `cola.icontheme` to `dark`, or by specifying
525 `--icon-theme=dark` on the command line.
527 https://github.com/git-cola/git-cola/pull/638
529 * Autocompletion was added to the `Fetch`, `Push`, and `Pull` dialogs.
531 * The commit message editor now remembers the "Spellcheck" setting
534 https://github.com/git-cola/git-cola/pull/645
536 * `git dag` now uses an improved algorithm for laying out the graph,
537 which avoids collisions under certain graph configurations, and
538 avoids overlapping tag with commits.
540 https://github.com/git-cola/git-cola/pull/648
542 https://github.com/git-cola/git-cola/pull/651
544 https://github.com/git-cola/git-cola/pull/654
546 https://github.com/git-cola/git-cola/pull/656
548 https://github.com/git-cola/git-cola/pull/659
550 * `git dag` now remembers its column sizes across sessions.
552 https://github.com/git-cola/git-cola/issues/674
554 * `Grep` now shows a preview of the selected file's content in a split window
555 below the grep results.
557 * `Grep` now includes line numbers in the preview pane's output.
559 * `Edit Remotes` now remembers its window settings after exiting.
561 * `Diff` now has an option to display line numbers in the editor.
563 https://github.com/git-cola/git-cola/issues/136
565 * `Amend Last Commit` can now be triggered via the `Commit` menu in addition
566 to the commit message editor's options.
568 https://github.com/git-cola/git-cola/issues/640
570 * The `File Browser` tool was made much faster and can now operate on
571 much larger repositories.
573 https://github.com/git-cola/git-cola/issues/499
575 * A new "turbo" mode was added that allows you to opt-out of operations
576 that can slow `git cola` on large repositories. The turbo mode is
577 enabled by configuring `git config cola.turbo true`. Turbo mode
578 disables the background loading of Git commit messages and other
579 details in the `File Browser` widget.
581 * A new GitIgnore dialog allows adding custom gitignore patterns.
583 https://github.com/git-cola/git-cola/pull/653
585 * The spellchecker in `git cola` can now use an additional dictionary
586 by configuring `cola.dictionary` to the path to a file containing
587 a newline-separated list of words.
589 https://github.com/git-cola/git-cola/issues/663
591 * The stash, export patches, diff, and gitignore dialogs now remember
594 * A new `git cola recent` sub-command was added for finding recently
597 * The `Fetch` dialog now allows pruning remote branches.
599 https://github.com/git-cola/git-cola/issues/639
601 https://github.com/git-cola/git-cola/pull/680
605 * `git cola`'s spellchecker now supports the new `dict-common` filesystem
606 layout, and prefers the `/usr/share/dict/cracklib-small` file over the
607 `/usr/share/dict/words` provided on older distributions.
608 This makes the spellchecker compatible with Arch, which does not provide
609 a `words` symlink like Debian.
611 https://github.com/git-cola/git-cola/issues/663
613 * Properly handle the case where an existing file is untracked using
616 * Fix a quirk where the "Create Branch" dialog sometimes required clicking
617 twice on the radio buttons.
619 https://github.com/git-cola/git-cola/pull/662
621 * Fixed a focus issue to ensure that "Push", "Fetch", and "Pull" can
622 be executed with the press of a single enter key after being shown.
624 https://github.com/git-cola/git-cola/issues/661
626 * Committing is now allowed in when resolving a merge results in no
627 changes. This state was previously prevented by the commit message editor,
628 which prevented users from resolving merges that result in no changes.
630 https://github.com/git-cola/git-cola/pull/679
632 * The filesystem monitor would sometimes emit backtraces when directories
633 are modified. This has been fixed.
635 https://bugzilla.redhat.com/show_bug.cgi?id=1438522
637 * Absolute paths are now returned when querying for `.git`-relative paths
638 from within a submodule, which uses `.git`-files.
639 This fixes launching `git cola` from within a subdirectory of a submodule.
641 https://github.com/git-cola/git-cola/pull/675
648 Usability, bells and whistles
649 -----------------------------
650 * `git cola` can now invoke the `.git/hooks/cola-prepare-commit-msg`
651 hook to update the commit message. This hook takes the same parameters
652 as Git's `prepare-commit-message` hook. The default path to this hook
653 can be overridden by setting the `cola.prepareCommitMessageHook`
654 configuration variable.
656 http://git-cola.readthedocs.io/en/latest/git-cola.html#prepare-commit-message
658 * `git cola diff` (and the corresponding `Diff` menu actions) can now
659 launch difftool with the standard `Ctrl+D` hotkey. The `Ctrl+E` hotkey was
660 also added for launching an editor.
662 * Traditional Chinese (Taiwan) translation updates.
666 * `git cola` now works when installed in non-ascii, utf8-encoded paths.
668 https://github.com/git-cola/git-cola/issues/629
670 * Styling issues that caused black backgrounds in various widgets when using
671 PyQ5 on Mac OS X have been fixed.
673 https://github.com/git-cola/git-cola/issues/624
675 * The "Open Recent" menu action was broken and has been fixed.
677 https://github.com/git-cola/git-cola/issues/634
679 * Exiting `git cola` with a maximized main window would hang when reopened
682 https://github.com/git-cola/git-cola/issues/641
686 * `appdata.xml` files are now provided at
687 `share/appdata/git-cola.xml` and `share/appdata/git-dag.xml`
688 for use by the Linux software gallery.
690 https://people.freedesktop.org/~hughsient/appdata/
692 https://github.com/git-cola/git-cola/pull/627
701 * The "Open Recent" menu was updated to new bookmarks format.
703 https://github.com/git-cola/git-cola/issues/628
710 Usability, bells and whistles
711 -----------------------------
712 * New Polish translation thanks to Łukasz Wojniłowicz
714 https://github.com/git-cola/git-cola/pull/598
716 * The `Bypass Commit Hooks` feature now disables itself automatically
717 when a new commit is created. The new behavior turns the option into a
718 single-use flag, which helps prevent users from accidentally leaving it
719 active longer than intended.
721 https://github.com/git-cola/git-cola/pull/595
723 * `git dag` learned to launch an external diff viewer on selected commits.
724 The standard `Ctrl+D` shortcut can be used to view diffs.
726 https://github.com/git-cola/git-cola/issues/468
728 * `git dag` learned to launch directory diffs via `git difftool --dir-diff`.
729 The `Ctrl+Shift+D` shortcut launches difftool in directory-diff mode.
731 https://github.com/git-cola/git-cola/issues/468
733 * Items in the "Favorites" list can now be renamed, which makes it
734 easier to differentiate between several checkouts of the same repository.
736 https://github.com/git-cola/git-cola/issues/599
738 https://github.com/git-cola/git-cola/pull/601
740 * The startup screen now includes a logo and `git cola` version information.
742 https://github.com/git-cola/git-cola/issues/526
744 * The `About` page was revamped to contain multiple tabs. A new tab was added
745 that provides details about `git cola`''s dependencies. New tabs were also
746 added for giving credit to `git cola`'s authors and translators.
748 * The `About` page can now be accessed via `git cola about`.
750 * The "Fast-forward only" and "No fast-forward" options supported by
751 `git pull` are now accessible via `git cola pull`.
753 * Doing a forced push no longer requires selecting the remote branch.
755 https://github.com/git-cola/git-cola/pull/618
757 * `git cola push` now has an option to suppress the prompt that is shown
758 when pushing would create new remote branches.
760 https://github.com/git-cola/git-cola/issues/605
762 * `git dag` now shows commit messages in a more readable color.
764 https://github.com/git-cola/git-cola/issues/574
766 * `git cola browse` and the `status` widget learned to launch the OS-specified
767 default action for a file. When used on directories via `git cola browse`,
768 or when "Open Parent Directory" is used on files, the OS-specified
769 file browser will typically be used.
771 * `git cola browse` and the `status` widget learned to launch terminals.
775 * `git cola browse` was not updating when expanding items.
777 https://github.com/git-cola/git-cola/issues/588
779 * Typofixes in comments, naming, and strings have been applied.
781 https://github.com/git-cola/git-cola/pull/593
783 * The inotify and win32 filesystem monitoring no longer refreshes
784 when updates are made to ignored files.
786 https://github.com/git-cola/git-cola/issues/517
788 https://github.com/git-cola/git-cola/issues/516
790 * The `Refresh` button on the actions panel no longer raises an
791 exception when using PyQt5.
793 https://github.com/git-cola/git-cola/issues/604
795 * Fixed a typo in the inotify backend that is triggered when files are removed.
797 https://github.com/git-cola/git-cola/issues/607
799 * Fixed a typo when recovering from a failed attempt to open a repository.
801 https://github.com/git-cola/git-cola/issues/606
803 * `git dag` now properly updates itself when launched from the menubar.
805 https://github.com/git-cola/git-cola/pull/613
807 * If git-cola is invoked on Windows using `start pythonw git-cola`,
808 a console window will briefly flash on the screen each time
809 `git cola` invokes `git`. The console window is now suppressed.
811 * We now avoid some problematic Popen flags on Windows which were
812 breaking the `git rebase` feature on Windows.
814 * The `Save` button in `git dag`'s "Grab File..." feature now properly
815 prompts for a filename when saving files.
817 https://github.com/git-cola/git-cola/pull/617
821 * The `qtpy` symlink in the source tree has been removed to allow for easier
822 development on Windows.
824 https://github.com/git-cola/git-cola/issues/626
831 Usability, bells and whistles
832 -----------------------------
833 * `git cola push` learned to configure upstream branches.
835 https://github.com/git-cola/git-cola/issues/563
839 * The diffstat view is now properly updated when notifications are
840 received via inotify filesystem monitoring.
842 https://github.com/git-cola/git-cola/issues/577
844 * Python3 with PyQt5 had a bug that prevented `git cola` from starting.
846 https://github.com/git-cola/git-cola/pull/589
856 * When repositories stored in non-ASCII, UTF-8-encoded filesystem paths
857 were operated upon with `LC_ALL=C` set in the environment, unicode errors
858 would occur when using `python2`. `git cola` was made more robust and will
859 now operate correctly within this environment.
861 https://github.com/git-cola/git-cola/issues/581
863 * Support for the `GIT_WORK_TREE` environment variable was fixed.
865 https://github.com/git-cola/git-cola/pull/582
870 * The `unittest.mock` module is now used instead of the original `mock` module
871 when running the `git cola` test suite using Python3.
873 https://github.com/git-cola/git-cola/issues/569
878 * `git cola` is now compatible with *PyQt5*, *PyQt4*, and *Pyside*.
879 `git cola` previously supported *PyQt4* only, but will now use whichever
880 library is available. Users are not required to upgrade at this time,
881 but *PyQt5* support can be enabled anytime by making its python
884 https://github.com/git-cola/git-cola/issues/232
886 *NOTE*: We do not yet recommend using *PyQt5* because there are known
887 exit-on-segfault bugs in *Qt5* that have not yet been addressed.
888 `git cola` is sensitive to this bug and is known to crash on exit
889 when using `git dag` or the interactive rebase feature on *PyQt5*.
891 https://bugreports.qt.io/browse/QTBUG-52988
893 *PyQt4* is stable and there are no known issues when using it so
894 we recommend using it until the Qt5 bugs have been resolved.
896 * `git cola` now depends on *QtPy* and includes a bundled copy of the
897 `qtpy` library. If you are packaging `git cola` and would prefer to use
898 `qtpy` from your distribution instead of the built-in version then use
899 `make NO_VENDOR_LIBS=1` when building `git cola`. This will prevent
900 vendored libraries from being installed.
907 Usability, bells and whistles
908 -----------------------------
910 * A new "Reset" sub-menu provides access to running "git reset --mixed"
911 when resetting branch heads and "git reset --merge" when resetting
914 https://github.com/git-cola/git-cola/issues/542
916 * `git cola` now supports linked worktrees, i.e. worktrees created by
919 https://github.com/git-cola/git-cola/issues/554
924 * Diff highlighting is now robust to the user having
925 diff.supressBlankEmpty=true in their git config.
927 https://github.com/git-cola/git-cola/issues/541
929 * The filesystem monitor now properly handles repositories that use
930 `.git`-files, e.g. when using submodules.
932 https://github.com/git-cola/git-cola/issues/545
934 https://github.com/git-cola/git-cola/pulls/546
936 * Per-repository git configuration is now properly detected when launching
937 `git cola` from an application launcher.
939 https://github.com/git-cola/git-cola/issues/548
941 * `git cola` now cleans up after itself immediately to avoid leaving behind
942 empty `/tmp/git-cola-XXXXXX` directories when the user uses `Ctrl+C`
945 https://github.com/git-cola/git-cola/issues/566
950 * It is now possible to install `git cola` to and from utf8-encoded filesystem
951 paths. Previously, Python's stdlib would throw an encoding error during
952 installation. We workaround the stdlib by forcing python2 to use utf-8,
953 thus fixing assumptions in the stdlib library code.
955 https://github.com/git-cola/git-cola/issues/551
962 Usability, bells and whistles
963 -----------------------------
965 * The icon for untracked files was adjusted to better differentiate
966 between files and the "Untracked" header.
968 https://github.com/git-cola/git-cola/issues/509
970 * Ctrl+O was added as a hotkey for opening repositories.
972 https://github.com/git-cola/git-cola/pull/507
974 * `git dag` now uses consistent edge colors across updates.
976 https://github.com/git-cola/git-cola/issues/512
978 * `git cola`'s Bookmarks widget can now be used to set a "Default Repository".
979 Under the hood, we set the `cola.defaultrepo` configuration variable.
980 The default repository is used whenever `git cola` is launched outside of
981 a Git repository. When unset, or when set to a bogus value, `git cola`
982 will prompt for a repository, as it previously did.
984 https://github.com/git-cola/git-cola/issues/513
986 * `git cola`'s Russian and Spanish translations were improved
987 thanks to Vaiz and Zeioth.
989 https://github.com/git-cola/git-cola/pull/514
991 https://github.com/git-cola/git-cola/pull/515
993 https://github.com/git-cola/git-cola/pull/523
995 * `git cola` was translated to Turkish thanks to Barış ÇELİK.
997 https://github.com/git-cola/git-cola/pull/520
999 * The status view now supports launching `git gui blame`. It can be
1000 configured to use a different command by setting `cola.blameviewer`.
1002 https://github.com/git-cola/git-cola/pull/521
1004 * `git dag` now allows selecting non-contiguous ranges in the log widget.
1006 https://github.com/git-cola/git-cola/issues/468
1008 * Any font can now be chosen for the diff editor, not just monospace fonts.
1010 https://github.com/git-cola/git-cola/issues/525
1015 * `xfce4-terminal` and `gnome-terminal` are now supported when launching
1016 `git mergetool` to resolve merges. These terminals require that the command
1017 to execute is shell-quoted and passed as a single string argument to `-e`
1018 rather than as additional command line arguments.
1020 https://github.com/git-cola/git-cola/issues/524
1022 * Fixed a unicode problem when formatting the error message that is shown
1023 when `gitk` is not installed. We now handle unicode data in tracebacks
1024 generated by python itself.
1026 https://github.com/git-cola/git-cola/issues/528
1028 * The `New repository` feature was fixed.
1030 https://github.com/git-cola/git-cola/pull/533
1032 * We now use omit the extended description when creating "fixup!" commits,
1033 for consistency with the Git CLI. We now include only the one-line summary
1034 in the final commit message.
1036 https://github.com/git-cola/git-cola/issues/522
1043 Usability, bells and whistles
1044 -----------------------------
1046 * The user interface is now HiDPI-capable. git-cola now uses SVG
1047 icons, and its interface can be scaled by setting the `GIT_COLA_SCALE`
1048 environment variable.
1050 * `git dag` now supports the standard editor, difftool, and history hotkeys.
1051 It is now possible to invoke these actions from file widget's context
1052 menu and through the standard hotkeys.
1054 https://github.com/git-cola/git-cola/pull/473
1056 * The `Status` tool also learned about the history hotkey.
1057 Additionally, the `Alt-{j,k}` aliases are also supported in the `Status`
1058 tool for consistency with the other tools where the non-Alt hotkeys are not
1061 https://github.com/git-cola/git-cola/pull/488
1063 * The `File Browser` tool now has better default column sizes,
1064 and remembers its window size and placement.
1066 * The `File Browser` now supports the refresh hotkey, and has better
1067 behavior when refreshing. The selection is now retained, and new and
1068 removed files are found when refreshing.
1070 * A new `git-cola-completion.bash` completion script is provided in the
1071 `contrib/` directory. It must be used alongside Git's completion script.
1072 Source it from your `~/.bashrc` (or `~/.zshrc`, etc) after sourcing
1073 the `git-completion.bash` script and you will have command-line completion
1074 support for the `git cola` and `git dag` sub-commands.
1076 * The "checkout" dialog now offers completion for remote branches and other
1077 git refs. This makes it easier to checkout remote branches in a detached
1078 head state. Additionally, the checkout dialog also offers completion for
1079 remote branches that have not yet been checked out, which makes it easier to
1080 create a local tracking branch by just completing for that potential name.
1082 https://github.com/git-cola/git-cola/issues/390
1084 * The "create branch" and "create tag" dialogs now save and restore their
1087 * The "status" widget can now be configured to use a bold font with a darker
1088 background for the header items.
1090 https://github.com/git-cola/git-cola/pull/506
1092 * The "status" widget now remembers its horizontol scrollbar position across
1093 updates. This is helpful when working on projects with long paths.
1095 https://github.com/git-cola/git-cola/issues/494
1100 * When using *Git for Windows*, a `git` window would appear
1101 when running *Windows 8*. We now pass additional flags to
1102 `subprocess.Popen` to prevent a `git` window from appearing.
1104 https://github.com/git-cola/git-cola/issues/477
1106 https://github.com/git-cola/git-cola/pull/486
1108 * Launching difftool with `.PY` in `$PATHEXT` on Windows was fixed.
1110 https://github.com/git-cola/git-cola/issues/492
1112 * Creating a local branch tracking a remote branch that contains
1113 slashes in its name is now properly handled.
1115 https://github.com/git-cola/git-cola/issues/496
1117 * The "Browse Other Branch" feature was broken by Python3, and is now fixed.
1119 https://github.com/git-cola/git-cola/issues/501
1121 * We now avoid `long` for better Python3 compatibility.
1123 https://github.com/git-cola/git-cola/issues/502
1125 * We now use Git's default merge message when merging branches.
1127 https://github.com/git-cola/git-cola/issues/508
1129 * Miscellaneous fixes
1131 https://github.com/git-cola/git-cola/pull/485
1136 * git-cola's documentation no longer uses an intersphinx link mapping
1137 to docs.python.org. This fixes warnings when building rpms using koji,
1138 where network access is prevented.
1140 https://bugzilla.redhat.com/show_bug.cgi?id=1231812
1147 Usability, bells and whistles
1148 -----------------------------
1150 * The Interactive Rebase feature now works on Windows!
1152 https://github.com/git-cola/git-cola/issues/463
1154 * The `diff` editor now understands vim-style `hjkl` navigation hotkeys.
1156 https://github.com/git-cola/git-cola/issues/476
1158 * `Alt-{j,k}` navigation hotkeys were added to allow changing to the
1159 next/previous file from the diff and commit editors.
1161 * The `Rename branch` menu action is now disabled in empty repositories.
1163 https://github.com/git-cola/git-cola/pull/475
1165 https://github.com/git-cola/git-cola/issues/459
1167 * `git cola` now checks unmerged files for conflict markers before
1168 staging them. This feature can be disabled in the preferences.
1170 https://github.com/git-cola/git-cola/issues/464
1172 * `git dag` now remembers which commits were selected when refreshing
1173 so that it can restore the selection afterwards.
1175 https://github.com/git-cola/git-cola/issues/480
1177 * "Launch Editor", "Launch Difftool", "Stage/Unstage",
1178 and "Move Up/Down" hotkeys now work when the commit message
1181 https://github.com/git-cola/git-cola/issues/453
1183 * The diff editor now supports the `Ctrl+u` hotkey for reverting
1184 diff hunks and selected lines.
1186 * The `core.commentChar` Git configuration value is now honored.
1187 Commit messages and rebase instruction sheets will now use
1188 the configured character for comments. This allows having
1189 commit messages that start with `#` when `core.commentChar`
1190 is configured to its non-default value.
1192 https://github.com/git-cola/git-cola/issues/446
1197 * Diff syntax highlighting was improved to handle more edge cases
1198 and false positives.
1200 https://github.com/git-cola/git-cola/pull/467
1202 * Setting commands in the interactive rebase editor was fixed.
1204 https://github.com/git-cola/git-cola/issues/472
1206 * git-cola no longer clobbers the Ctrl+Backspace text editing shortcut
1207 in the commit message editor.
1209 https://github.com/git-cola/git-cola/issues/453
1211 * The copy/paste clipboard now persists after `git cola` exits.
1213 https://github.com/git-cola/git-cola/issues/484
1222 * Fixed the "Sign off" feature in the commit message editor.
1229 Usability, bells and whistles
1230 -----------------------------
1231 * Double-click will now choose a commit in the "Select commit" dialog.
1233 * `git cola` has a feature that reads `.git/MERGE_MSG` and friends for the
1234 commit message when a merge is in-progress. Upon refresh, `git cola` will
1235 now detect when a merge has completed and reset the commit message back to
1236 its previous state. It is only reset if the editor contains a message
1237 that was read from the file and has not been manually edited by the user.
1239 * The commit message editor's context menu now has a "Clear..." action for
1240 clearing the message across both the summary and description fields.
1242 * Traditional Chinese (Taiwan) translation updates.
1244 * The system theme's icons are now used wherever possible.
1246 https://github.com/git-cola/git-cola/pull/458
1250 * The stash viewer now uses ``git show --no-ext-diff`` to avoid running
1251 user-configured diff tools.
1253 * `git cola` now uses the `setsid()` system call to ensure that the
1254 `GIT_ASKPASS` and `SSH_ASKPASS` helper programs are used when pushing
1255 changes using `git`. The askpass helpers will now be used even when
1256 `git cola` is launched from a terminal.
1258 The behavior without `setsid()` is that `git cola` can appear to hang while
1259 pushing changes. The hang happens when `git` prompts the user for a
1260 password using the terminal, but the user never sees the prompt. `setsid()`
1261 detaches the terminal, which ensures that the askpass helpers are used.
1263 https://github.com/git-cola/git-cola/issues/218
1265 https://github.com/git-cola/git-cola/issues/262
1267 https://github.com/git-cola/git-cola/issues/377
1269 * `git dag`'s file list tool was updated to properly handle unicode paths.
1271 * `gnome-terminal` is no longer used by default when `cola.terminal` is unset.
1272 It is broken, as was detailed in #456.
1274 https://github.com/git-cola/git-cola/issues/456
1276 * The interactive rebase feature was not always setting `$GIT_EDITOR`
1277 to the value of `gui.editor`, thus there could be instances where rebase
1278 will seem to not stop, or hang, when performing "reword" actions.
1280 We now set the `$GIT_EDITOR` environment variable when performing the
1281 "Continue", "Skip", and "Edit Todo" rebase actions so that the correct
1282 editor is used during the rebase.
1284 https://github.com/git-cola/git-cola/issues/445
1288 * `git cola` moved from a 3-part version number to a simpler 2-part "vX.Y"
1289 version number. Most of our releases tend to contain new features.
1296 Usability, bells and whistles
1297 -----------------------------
1298 * Updated zh_TW translations.
1300 * `git cola rebase` now defaults to `@{upstream}`, and generally uses the same
1301 CLI syntax as `git rebase`.
1303 * The commit message editor now allows you to bypass commit hooks by selecting
1304 the "Bypass Commit Hooks" option. This is equivalent to passing the
1305 `--no-verify` option to `git commit`.
1307 https://github.com/git-cola/git-cola/issues/357
1309 * We now prevent the "Delete Files" action from creating a dialog that does
1312 https://github.com/git-cola/git-cola/issues/378
1314 * `git xbase` learned to edit rebase instruction sheets that contain
1317 * The diff colors are now configurable. `cola.color.{text,add,remove,header}`
1318 can now be set with 6-digit hexadecimal colors.
1319 See the `git cola manual <https://git-cola.readthedocs.io/en/latest/git-cola.html#configuration-variables>_`
1322 * Improved hotkey documentation.
1326 * `git cola` will now allow starting an interactive rebase with a dirty
1327 worktree when `rebase.autostash` is set.
1329 https://github.com/git-cola/git-cola/issues/360
1336 Usability, bells and whistles
1337 -----------------------------
1338 * A new "Find files" widget was added, and can be activated by
1339 using the `Ctrl+t` or `t` hotkeys.
1341 * A new `git cola find` sub-command was added for finding files.
1343 * `git cola` now remembers the text cursor's position when staging
1344 interactively with the keyboard. This makes it easier to use the keyboard
1345 arrows to select and stage lines.
1347 * The completion widgets will now select the top completion item
1348 when `Enter` or `Return` are pressed.
1350 * You can now refresh using `F5` in addition to the existing `Ctrl+R` hotkey.
1354 * `git cola` now passes `--no-abbrev-commit` to `git log` to override
1355 having `log.abbrevCommit = true` set in `.gitconfig`.
1361 Usability, bells and whistles
1362 -----------------------------
1363 * `git dag` now forwards all unknown arguments along to `git log`.
1365 https://github.com/git-cola/git-cola/issues/389
1367 * Line-by-line interactive staging was made more robust.
1369 https://github.com/git-cola/git-cola/pull/399
1371 * "Bookmarks" was renamed to "Favorites".
1373 https://github.com/git-cola/git-cola/issues/392
1375 * Untracked files are now displayed using a unique icon.
1377 https://github.com/git-cola/git-cola/pull/388
1381 * `git dag` was triggering a traceback on Fedora when parsing Git logs.
1383 https://bugzilla.redhat.com/show_bug.cgi?id=1181686
1385 * inotify expects unicode paths on Python3.
1387 https://github.com/git-cola/git-cola/pull/393
1389 * Untracked files are now assumed to be utf-8 encoded.
1391 https://github.com/git-cola/git-cola/issues/401
1397 Usability, bells and whistles
1398 -----------------------------
1399 * `git cola` can now create GPG-signed commits and merges.
1401 https://github.com/git-cola/git-cola/issues/149
1403 See the documentation for details about setting up a GPG agent.
1405 * The status widget learned to copy relative paths when `Ctrl+x` is pressed.
1407 https://github.com/git-cola/git-cola/issues/358
1409 * Custom GUI actions can now define their own keyboard shortcuts by
1410 setting `guitool.$name.shortcut` to a string understood by Qt's
1411 `QAction::setShortcut()` API, e.g. `Alt+X`.
1413 See http://qt-project.org/doc/qt-4.8/qkeysequence.html#QKeySequence-2
1414 for more details about the supported values.
1416 * `git cola` learned to rename branches.
1418 https://github.com/git-cola/git-cola/pull/364
1420 https://github.com/git-cola/git-cola/issues/278
1422 * `git dag` now has a "Show history" context menu which can be used to filter
1423 history using the selected paths.
1427 * `sphinxtogithub.py` was fixed for Python3.
1429 https://github.com/git-cola/git-cola/pull/353
1431 * The commit that changed how we read remotes from `git remote`
1432 to parsing `git config` was reverted since it created problems
1435 * Fixed a crash when using the `rebase edit` feature.
1437 https://github.com/git-cola/git-cola/issues/351
1439 * Better drag-and-drop behavior when dropping into gnome-terminal.
1441 https://github.com/git-cola/git-cola/issues/373
1445 * The `git-cola-folder-handler.desktop` file handler was fixed
1446 to pass validation by `desktop-file-validate`.
1448 https://github.com/git-cola/git-cola/issues/356
1450 * The `git.svg` icon was renamed to `git-cola.svg`, and `git cola` was taught
1451 to prefer icons from the desktop theme when available.
1457 Usability, bells and whistles
1458 -----------------------------
1459 * New hotkey: `Ctrl+Shift+M` merges branches.
1461 * New hotkey: `Ctrl+R` refreshes the DAG viewer.
1463 https://github.com/git-cola/git-cola/issues/347
1467 * We now use `git config` to parse the list of remotes
1468 instead of parsing the output of `git remote`, which
1469 is a Git porcelain and should not be used by scripts.
1471 * Avoid "C++ object has been deleted" errors from PyQt4.
1473 https://github.com/git-cola/git-cola/issues/346
1477 * The `make install` target now uses `install` instead of `cp`.
1483 Usability, bells and whistles
1484 -----------------------------
1485 * Updated Brazillian Portuguese translation.
1487 * The status and browse widgets now allow drag-and-drop into
1488 external applications.
1490 https://github.com/git-cola/git-cola/issues/335
1492 * We now show a progress bar when cloning repositories.
1494 https://github.com/git-cola/git-cola/issues/312
1496 * The bookmarks widget was simplified to not need a
1499 https://github.com/git-cola/git-cola/issues/289
1501 * Updated Traditional Chinese translation.
1503 * We now display a warning when trying to rebase with uncommitted changes.
1505 https://github.com/git-cola/git-cola/issues/338
1507 * The status widget learned to filter paths.
1508 `Ctrl+Shift+S` toggles the filter widget.
1510 https://github.com/git-cola/git-cola/issues/337
1512 https://github.com/git-cola/git-cola/pull/339
1514 * The status widget learned to move files to the trash
1515 when the `send2trash <https://github.com/hsoft/send2trash>`_
1516 module is installed.
1518 https://github.com/git-cola/git-cola/issues/341
1520 * "Recent repositories" is now a dedicated widget.
1522 https://github.com/git-cola/git-cola/issues/342
1524 * New Spanish translation thanks to Pilar Molina Lopez.
1526 https://github.com/git-cola/git-cola/pull/344
1530 * Newly added remotes are now properly seen by the fetch/push/pull dialogs.
1532 https://github.com/git-cola/git-cola/issues/343
1538 Usability, bells and whistles
1539 -----------------------------
1540 * New Brazillian Portuguese translation thanks to Vitor Lobo.
1542 * New Indonesian translation thanks to Samsul Ma'arif.
1544 * Updated Simplified Chinese translation thanks to Zhang Han.
1546 * `Ctrl+Backspace` is now a hotkey for "delete untracked files" in
1549 * Fetch/Push/Pull dialogs now use the configured remote of the current
1552 https://github.com/git-cola/git-cola/pull/324
1556 * We now use `os.getcwd()` on Python3.
1558 https://github.com/git-cola/git-cola/pull/316
1560 https://github.com/git-cola/git-cola/pull/326
1562 * The `Ctrl+P` hotkey was overloaded to both "push" and "cherry-pick",
1563 so "cherry-pick" was moved to `Ctrl+Shift+C`.
1565 * Custom GUI tools with mixed-case names are now properly supported.
1567 * "Diff Region" is now referred to as "Diff Hunk" for consistency
1568 with common terminology from diff/patch tools.
1570 https://github.com/git-cola/git-cola/issues/328
1572 * git-cola's test suite is now portable to MS Windows.
1574 https://github.com/git-cola/git-cola/pull/332
1580 Usability, bells and whistles
1581 -----------------------------
1582 * We now handle the case when inotify `add_watch()` fails
1583 and display instructions on how to increase the number of watches.
1585 https://github.com/git-cola/git-cola/issues/263
1587 * New and improved zh_TW localization thanks to V字龍(Vdragon).
1589 https://github.com/git-cola/git-cola/pull/265
1591 https://github.com/git-cola/git-cola/pull/267
1593 https://github.com/git-cola/git-cola/pull/268
1595 https://github.com/git-cola/git-cola/issues/269
1597 https://github.com/git-cola/git-cola/pull/270
1599 https://github.com/git-cola/git-cola/pull/271
1601 https://github.com/git-cola/git-cola/pull/272
1603 * New hotkeys: `Ctrl+F` for fetch, `Ctrl+P` for push,
1604 and `Ctrl+Shift+P` for pull.
1606 * The bookmarks widget's context menu actions were made clearer.
1608 https://github.com/git-cola/git-cola/issues/281
1610 * The term "Staging Area" is used consistently in the UI
1611 to allow for better localization.
1613 https://github.com/git-cola/git-cola/issues/283
1615 * The "Section" term is now referred to as "Diff Region"
1618 https://github.com/git-cola/git-cola/issues/297
1620 * The localization documentation related to the LANGUAGE
1621 environment variable was improved.
1623 https://github.com/git-cola/git-cola/pull/293
1625 * The "Actions" panel now contains tooltips for each button
1626 in case the button labels gets truncated by Qt.
1628 https://github.com/git-cola/git-cola/issues/292
1630 * Custom `git config`-defined actions can now be run in the
1631 background by setting `guitool.<name>.background` to `true`.
1635 * We now use bold fonts instead of SmallCaps to avoid
1636 artifacts on several configurations.
1638 * We now pickup `user.email`, `cola.tabwidth`, and similar settings
1639 when defined in /etc/gitconfig.
1641 https://github.com/git-cola/git-cola/issues/259
1643 * Better support for unicode paths when using inotify.
1645 https://bugzilla.redhat.com/show_bug.cgi?id=1104181
1647 * Unicode fixes for non-ascii locales.
1649 https://github.com/git-cola/git-cola/issues/266
1651 https://github.com/git-cola/git-cola/issues/273
1653 https://github.com/git-cola/git-cola/issues/276
1655 https://github.com/git-cola/git-cola/issues/282
1657 https://github.com/git-cola/git-cola/issues/298
1659 https://github.com/git-cola/git-cola/issues/302
1661 https://github.com/git-cola/git-cola/issues/303
1663 https://github.com/git-cola/git-cola/issues/305
1665 * Viewing history from the file browser was fixed for Python3.
1667 https://github.com/git-cola/git-cola/issues/274
1669 * setup.py was fixed to install the `*.rst` documentation.
1671 https://github.com/git-cola/git-cola/issues/279
1673 * Patch export was fixed for Python3.
1675 https://github.com/git-cola/git-cola/issues/290
1677 * Fixed adding a bookmark with trailing slashes.
1679 https://github.com/git-cola/git-cola/pull/295
1681 * The default `git dag` layout is now setup so that its widgets
1682 can be freely resized on Linux.
1684 https://github.com/git-cola/git-cola/issues/299
1686 * Invalid tag names are now reported when creating tags.
1688 https://github.com/git-cola/git-cola/pull/296
1694 Usability, bells and whistles
1695 -----------------------------
1696 * `git cola` no longer prompts after successfully creating a new branch.
1698 https://github.com/git-cola/git-cola/pull/251
1700 * Hitting enter on simple dialogs now accepts them.
1702 https://github.com/git-cola/git-cola/pull/255
1706 * `git dag` no longer relies on `sys.maxint`, which is
1707 not available in Python3.
1709 https://github.com/git-cola/git-cola/issues/249
1711 * Python3-related fixes.
1713 https://github.com/git-cola/git-cola/pull/254
1715 * Python3-on-Windows-related fixes.
1717 https://github.com/git-cola/git-cola/pull/250
1719 https://github.com/git-cola/git-cola/pull/252
1721 https://github.com/git-cola/git-cola/pull/253
1723 * Switching repositories using the bookmarks widget was not
1724 refreshing the inotify watcher.
1726 https://github.com/git-cola/git-cola/pull/256
1728 * Special commit messages trailers (e.g. "Acked-by:") are now special-cased to
1729 fix word wrapping lines that start with "foo:".
1731 https://github.com/git-cola/git-cola/issues/257
1733 * `git dag` sometimes left behind selection artifacts.
1734 We now refresh the view to avoid them.
1736 https://github.com/git-cola/git-cola/issues/204
1742 Usability, bells and whistles
1743 -----------------------------
1744 * Better inotify support for file creation and deletion.
1746 https://github.com/git-cola/git-cola/issues/240
1748 * `git cola` now supports the X11 Session Management Protocol
1749 and remembers its state across logout/reboot.
1751 https://github.com/git-cola/git-cola/issues/164
1753 * `git cola` has a new icon.
1755 https://github.com/git-cola/git-cola/issues/190
1759 * Building the documentation no longer requires `asciidoc`.
1760 We now use `Sphinx <http://sphinx-doc.org/>`_ for building
1761 html documentation and man pages.
1765 * Reworked the git-dag gravatar icon code to avoid a unicode
1768 * Commit message line-wrapping was made to better match the GUI editor.
1770 https://github.com/git-cola/git-cola/issues/242
1772 * Better support for Python3 on Windows
1774 https://github.com/git-cola/git-cola/issues/246
1778 * git-cola no longer depends on Asciidoc for building its documentation
1779 and man-pages. We now depend on [Sphinx](http://sphinx-doc.org/) only.
1785 Usability, bells and whistles
1786 -----------------------------
1787 * Some context menu actions are now hidden when selected
1790 https://github.com/git-cola/git-cola/issues/238
1794 * The build-git-cola.sh contrib script was improved.
1796 https://github.com/git-cola/git-cola/pull/235
1798 * Non-ascii worktrees work properly again.
1800 https://github.com/git-cola/git-cola/issues/234
1802 * The browser now guards itself against missing files.
1804 https://bugzilla.redhat.com/show_bug.cgi?id=1071378
1806 * Saving widget state now works under Python3.
1808 https://github.com/git-cola/git-cola/pull/236
1816 * git-cola now runs on Python 3 thanks to Virgil Dupras.
1818 https://github.com/git-cola/git-cola/pull/233
1820 * Python 2.6, 2.7, and 3.2+ are now supported.
1821 Python 2.5 is no longer supported.
1825 * i18n test fixes thanks to Virgil Dupras.
1827 https://github.com/git-cola/git-cola/pull/231
1829 * git-cola.app build fixes thanks to Maicon D. Filippsen.
1831 https://github.com/git-cola/git-cola/pull/230
1833 * Lots of pylint improvements thanks to Alex Chernetz.
1835 https://github.com/git-cola/git-cola/pull/229
1841 Usability, bells and whistles
1842 -----------------------------
1843 * The new `Bookmarks` tool makes it really easy to switch between repositories.
1845 * There is now a dedicated dialog for applying patches.
1846 See the ``File -> Apply Patches`` menu item.
1848 https://github.com/git-cola/git-cola/issues/215
1850 * A new `git cola am` sub-command was added for applying patches.
1854 * Fixed a typo that caused inotify events to be silently ignored.
1856 * Fixed the sys.path setup for Mac OS X (Homebrew).
1858 https://github.com/git-cola/git-cola/issues/221
1860 * Lots of pylint fixes thanks to Alex Chernetz.
1866 Usability, bells and whistles
1867 -----------------------------
1868 * `git cola --amend` now starts the editor in `amend` mode.
1870 https://github.com/git-cola/git-cola/issues/187
1872 * Multiple lines of text can now be pasted into the `summary` field.
1873 All text beyond the first newline will be automatically moved to the
1874 `extended description` field.
1876 https://github.com/git-cola/git-cola/issues/212
1880 * Stray whitespace in `.git` files is now ignored.
1882 https://github.com/git-cola/git-cola/issues/213
1884 * Fix "known incorrect sRGB profile" in `staged-item.png`.
1886 http://comments.gmane.org/gmane.linux.gentoo.devel/85066
1894 * Fix a traceback when `git push` fails.
1896 https://bugzilla.redhat.com/show_bug.cgi?id=1034778
1900 * Most of the git-cola sub-packages have been removed.
1901 The only remaining packages are `cola`, `cola.models`,
1904 * The translation file for Simplified Chinese was renamed
1907 https://github.com/git-cola/git-cola/issues/209
1915 * `git cola version --brief` now prints the brief version number.
1919 * Resurrected the "make dist" target, for those that prefer to create
1922 * Fixed the typo that broke the preferences dialog.
1928 Usability, bells and whistles
1929 -----------------------------
1930 * We now ship a full-featured interactive `git rebase` editor.
1931 The rebase todo file is edited using the `git xbase` script which
1932 is provided at `$prefix/share/git-cola/bin/git-xbase`.
1933 This script can be used standalone by setting the `$GIT_SEQUENCE_EDITOR`
1934 before running `git rebase --interactive`.
1936 https://github.com/git-cola/git-cola/issues/1
1938 * Fixup commit messages can now be loaded from the commit message editor.
1940 * Tool widgets can be locked in place by using the "Tools/Lock Layout"
1943 https://github.com/git-cola/git-cola/issues/202
1945 * You can now push to several remotes simultaneously by selecting
1946 multiple remotes in the "Push" dialog.
1948 https://github.com/git-cola/git-cola/issues/148
1950 * The `grep` tool learned to search using three different modes:
1951 basic regular expressions (default), extended regular expressions,
1956 * `git cola` now depends on the `argparse` Python module.
1957 This module is part of the stdlib in Python 2.7 and must
1958 be installed separately when using Python 2.6 and below.
1962 * Support unicode in the output from `fetch`, `push`, and `pull`.
1968 Usability, bells and whistles
1969 -----------------------------
1970 * We now detect when the editor or history browser are misconfigured.
1972 https://github.com/git-cola/git-cola/issues/197
1974 https://bugzilla.redhat.com/show_bug.cgi?id=886826
1976 * Display of untracked files can be disabled from the Preferences dialog
1977 or by setting the `gui.displayuntracked` configuration variable to `false`.
1979 http://thread.gmane.org/gmane.comp.version-control.git/232683
1983 * Unicode stash names are now supported
1985 https://github.com/git-cola/git-cola/issues/198
1987 * The diffs produced when reverting workspace changes were made more robust.
1992 =======================
1993 Usability, bells and whistles
1994 -----------------------------
1995 * Brand new German translation thanks to Sven Claussner.
1997 * The "File" menu now provides a "New Repository..." menu action.
1999 * `git dag` now uses a dock-widget interface so that its widgets can
2000 be laid-out and arranged. Customizations are saved and restored
2001 the next time `git dag` is launched.
2003 * `git dag` now has a "Zoom Best Fit" button next alongside the
2004 "Zoom In" and "Zoom Out" buttons.
2006 * `Ctrl+L` now focuses the "Search" field in the `git dag` tool.
2008 * Right-clicking in the "diff" viewer now updates the cursor position
2009 before performing actions, which makes it much easier to click around
2010 and selectively stage sections. Previously, the current cursor position
2011 was used which meant that it required two clicks (left-click to update
2012 the position followed by right-click to get the context menu) for the
2013 desired section to be used. This is now a single right-click operation.
2015 * The `Ctrl+D` "Launch Diff Tool" action learned to automatically choose
2016 between `git difftool` and `git mergetool`. If the file is unmerged then
2017 we automatically launch `git mergetool` on the path, otherwise we use
2018 `git difftool`. We do this because `git difftool` is not intended to
2019 be used on unmerged paths. Automatically using `git mergetool` when
2020 appropriate is the most intuitive and muscle-memory-friendly thing to do.
2022 * You can now right-click on folders in your standard file browser
2023 and choose "Open With -> Git Cola" (Linux-only).
2027 * Python 2.6 on Mac OS X Snow Leopard does not provide a namedtuple
2028 at `sys.version_info`. We now avoid using that variable for better
2031 * We now read the user's Git configuration from `~/.config/git/config`
2032 if that file is available, otherwise we use the traditional `~/.gitconfig`
2033 path, just like Git itself.
2035 * Some edge cases were fixed when applying partial/selected diffs.
2037 * The diff viewer is now properly cleared when refreshing.
2039 https://github.com/git-cola/git-cola/issues/194
2045 Usability, bells and whistles
2046 -----------------------------
2047 * The diff viewer now has an "Options" menu which can be
2048 used to set "git diff" options. This can be used to
2049 ignore whitespace changes or to show a change with its
2050 surrounding function as context.
2052 https://github.com/git-cola/git-cola/issues/150
2054 * `git cola` now remembers your commit message and will restore it
2055 when `git cola` is restarted.
2057 https://github.com/git-cola/git-cola/pull/175
2059 * `Ctrl+M` can now be used to toggle the "Amend last commit"
2060 checkbox in the commit message editor.
2062 https://github.com/git-cola/git-cola/pull/161
2064 * Deleting remote branches can now be done from the "Branch" menu.
2066 https://github.com/git-cola/git-cola/issues/152
2068 * The commit message editor now has a built-in spell checker.
2072 * We now avoid invoking external diffs when showing diffstats.
2074 https://github.com/git-cola/git-cola/pull/163
2076 * The `Status` tool learned to reselect files when refreshing.
2078 https://github.com/git-cola/git-cola/issues/165
2080 * `git cola` now remembers whether it has been maximized and will restore the
2081 maximized state when `git cola` is restarted.
2083 https://github.com/git-cola/git-cola/issues/172
2085 * Performance is now vastly improved when staging hundreds or
2088 * `git cola` was not correctly saving repo-specific configuration.
2090 https://github.com/git-cola/git-cola/issues/174
2092 * Fix a UnicodeDecode in sphinxtogithub when building from source.
2098 Usability, bells and whistles
2099 -----------------------------
2100 * We now automatically remove missing repositories from the
2101 "Select Repository" dialog.
2103 https://github.com/git-cola/git-cola/issues/145
2105 * A new `git cola diff` sub-command was added for diffing changed files.
2109 * The inotify auto-refresh feature makes it difficult to select text in
2110 the "diff" editor when files are being continually modified by another
2111 process. The auto-refresh causes it to lose the currently selected text,
2112 which is not wanted. We now avoid this problem by saving and restoring
2113 the selection when refreshing the editor.
2115 https://github.com/git-cola/git-cola/issues/155
2117 * More strings have been marked for l10n.
2119 https://github.com/git-cola/git-cola/issues/157
2121 * Fixed the Alt+D Diffstat shortcut.
2123 https://github.com/git-cola/git-cola/issues/159
2127 * Better error handling when cloning repositories.
2129 We were not handling the case where a git URL has
2130 no basename, e.g. `https://git.example.com/`.
2131 `git cola` originally rejected these URLs instead of
2132 allowing users to clone them. It now allows these URLs
2133 when they point to valid git repositories.
2135 Additionally, `git cola` learned to echo the errors
2136 reported by `git clone` when it fails.
2138 https://github.com/git-cola/git-cola/issues/156
2144 Usability, bells and whistles
2145 -----------------------------
2146 * `git dag` got a big visual upgrade.
2148 * `Ctrl+G` now launches the "Grep" tool.
2150 * `Ctrl+D` launches difftool and `Ctrl+E` launches your editor
2151 when in the diff panel.
2153 * git-cola can now be told to use an alternative language.
2154 For example, if the native language is German and we want git-cola to
2155 use English then we can create a `~/.config/git-cola/language` file with
2156 "en" as its contents:
2158 $ echo en >~/.config/git-cola/language
2160 https://github.com/git-cola/git-cola/issues/140
2162 * A new `git cola merge` sub-command was added for merging branches.
2164 * Less blocking in the main UI
2168 * Autocomplete issues on KDE
2170 https://github.com/git-cola/git-cola/issues/144
2172 * The "recently opened repositories" startup dialog did not
2173 display itself in the absence of bookmarks.
2175 https://github.com/git-cola/git-cola/issues/139
2181 Usability, bells and whistles
2182 -----------------------------
2183 * `git cola` learned to honor `.gitattributes` when showing and
2184 interactively applying diffs. This makes it possible to store
2185 files in git using a non-utf-8 encoding and `git cola` will
2186 properly accept them. This must be enabled by settings
2187 `cola.fileattributes` to true, as it incurs a small performance
2190 https://github.com/git-cola/git-cola/issues/96
2192 * `git cola` now wraps commit messages at 72 columns automatically.
2193 This is configurable using the `cola.linebreak` variable to enable/disable
2194 the feature, and `cola.textwidth` to configure the limit.
2196 https://github.com/git-cola/git-cola/issues/133
2198 * A new "Open Recent" sub-menu was added to the "File" menu.
2199 This makes it easy to open a recently-edited repository.
2201 https://github.com/git-cola/git-cola/issues/135
2203 * We now show a preview for untracked files when they are clicked
2204 using the `Status` tool.
2205 * A new "Open Using Default Application" action was added to the
2206 `Status` tool. It is activated using either `Spacebar` or through
2207 the context menu. This action uses `xdg-open` on Linux and
2209 * A new "Open Parent Directory" action was added to the `Status` tool.
2210 It is activated using either `Shift+Spacebar` or through the
2212 * `git dag` learned to honor the `log.date` git configuration variable.
2213 This makes the date display follow whatever format the user has
2215 * A new `git cola config` sub-command was added for quickly
2216 tweaking `git cola`'s git configuration settings.
2217 * Some small usability tweaks -- some user confirmation prompts
2218 were defaulting to "Cancel" when they should have been defaulting
2219 to the affirmative option instead.
2223 * Properly handle arbitrarily-named branches.
2224 * We went back to launching `git mergetool` using an xterm.
2225 The reason is that there are a couple of places where `git mergetool`
2226 requires a terminal for user interaction not covered by `--no-prompt`.
2227 * We now properly handle an edge case when applying short diffs at
2228 the start of a file.
2234 Usability, bells and whistles
2235 -----------------------------
2236 * New and improved `grep` mode lets you instantly find and edit files.
2237 * New `git cola grep` standalone mode.
2238 * Support for passing arguments to the configured editors, e.g. `gvim -p`
2239 This makes it possible to select multiple files in the status
2240 window and use `Ctrl-e` to edit them all at once.
2241 * Remote operations now prompt on errors only.
2242 * The `Tab` key now jumps to the extended description when editing the summary.
2243 * More shortcut key labels and misc. UX improvements.
2247 * Selecting an item no longer copies its filename to the copy/paste buffer.
2248 `Ctrl-c` or the "Copy" context-menu action can be used instead.
2249 * The repository monitoring feature on Windows learned to ignore
2250 changes within the ".git" directory. Thanks to Andreas Sommer.
2252 https://github.com/git-cola/git-cola/issues/120
2258 Usability, bells and whistles
2259 -----------------------------
2260 * `git dag` learned to color-code branchy edges.
2261 The edge colors change when a new branch is detected,
2262 which makes the history much easier to follow.
2263 A huge thanks to Uri Okrent for making it happen.
2265 * New GUI for editing remote repositories.
2267 * New `git cola archive` and `git cola remote` sub-commands.
2269 * `git cola browser` learned an 'Untrack' command.
2271 * The diff editor learned to staged/unstaged while amending.
2273 * The status tool can now scroll horizontally.
2275 * New git repositories can be created by clicking 'New' on the
2276 `git cola --prompt` startup screen.
2282 Usability, bells and whistles
2283 -----------------------------
2284 * Auto-completion was added to more tools.
2286 * `git dag` is easier to use on smaller displays -- the author
2287 field elides its text which allows for a more compact display.
2289 * Selected commits in `git dag` were made more prominent and
2292 * 'Create Branch' learned to fetch remote branches and uses a
2293 background thread to do so.
2295 * User-configured GUI tools are listed alphabetically in the 'Actions' menu.
2297 * The 'Pull' dialog remembers the value of the 'Rebase' checkbox
2298 between invocations.
2306 * Detect Homebrew so that OS X users do not need to set PYTHONPATH.
2308 * `git dag` can export patches again.
2314 Usability, bells and whistles
2315 -----------------------------
2316 * The 'Classic' tool was renamed to 'Browser' and learned to
2317 limit history to the current branch.
2319 * `git dag` learned about gravatar and uses it to show images
2322 * `git dag` learned to use OpenGL for rendering resulting in
2323 much faster rendering.
2325 * More dialogs learned vim-style keyboard shortcuts.
2327 * The commit message editor learned better arrow key navigation.
2333 Usability, bells and whistles
2334 -----------------------------
2335 * `git cola` learned a few new sub commands:
2343 * `Return` in the summary field jumps to the extended description.
2345 * `Ctrl+Return` is now a shortcut for 'Commit'.
2347 * Better French translation for 'Sign-off'.
2349 * The 'Search' widget now has a much simpler and streamlined
2352 * vim-style `h,j,k,l` navigation shortcuts were added to the DAG widget.
2354 * `git dag` no longer prompts for files when diffing commits if the
2355 text field contains paths.
2357 * General user interface and performance improvements.
2361 * The diff viewer no longer changes font size when holding `Control`
2362 while scrolling with the mouse wheel.
2364 * Files with a typechange (e.g. symlinks that become files, etc.)
2365 are now correctly identified as being modified.
2369 * The `cola.controllers` and `cola.views` packages were removed.
2375 Usability, bells and whistles
2376 -----------------------------
2377 * `git cola` can now launch sub commands, e.g.:
2388 * `git dag` is more responsive when gathering auto-completions.
2390 * Keyboard shortcuts are displayed when the '?' key is pressed.
2392 * Various keyboard shortcuts were added for improved usability.
2394 * The status widget now lists unmerged files before modified files.
2396 * vim-style `h,j,k,l` navigation shortcuts were added to the status widget.
2398 * A 'Recently Modified Files...' tool was added.
2400 * Tools can now be hidden with `Alt + #` (where `#` is a keyboard number)
2401 and focused with `Alt + Shift + #`.
2403 * The syntax highlighting colors for diffs was made less intrusive.
2405 * The commit message editor was redesigned to have a more compact
2406 and keyboard-convenient user interface.
2408 * Keyboard shortcuts for adding a Signed-off-by (`Ctrl + i`)
2409 and creating a commit (`Ctrl + m`) were added.
2411 * The status widget was adjusted to use less screen real-estate.
2415 * Avoid updating the index when responding to inotify events.
2416 This avoids interfering with operations such as `git rebase --interactive`.
2418 https://github.com/git-cola/git-cola/issues/99
2422 * Create `git-dag.pyw` in the win32 installer.
2424 * win32 shortcuts now contain explicit calls to `pythonw.exe` instead of
2425 calling the `.pyw` file directly.
2429 * The 'Apply Changes from Branch...' feature was removed.
2430 `git dag`'s 'Grab File...' feature used alongside the index/worktree editor
2431 is a simpler alternative.
2439 * Further enhanced the staging/unstaging behavior in the status widget.
2441 https://github.com/git-cola/git-cola/issues/97
2443 * Unmerged files are no longer listed as modified.
2447 The `cola-$version` tarballs on github were originally setup to
2448 have the same contents as the old tarballs hosted on tuxfamily.
2449 The `make dist` target was changed to write files to a
2450 `git-cola-$version` subdirectory and tarball.
2452 This makes the filenames consistent for the source tarball,
2453 the darwin .app tarball, and the win32 .exe installer.
2459 Usability, bells and whistles
2460 -----------------------------
2461 * Refined the staging/unstaging behavior for code reviews.
2463 https://github.com/git-cola/git-cola/issues/97
2465 * Added more styling and icons to menus and buttons.
2467 * Adjusted some terminology to more closely match the git CLI.
2471 * Boolean `git config` settings with no value are now supported
2472 (these are not created by git these days but exist in legacy repositories).
2474 * Unicode branches and tags are supported in the "branch diff" tool.
2476 * Guard against low-memory conditions and more interrupted system calls.
2480 * Added desktop launchers for git-cola.desktop and git-dag.desktop.
2481 This replaces the old cola.desktop, so some adjustments to RPM .spec
2482 and debian/ files will be needed.
2484 * Fixed the darwin app-tarball Makefile target to create relative paths.
2488 * The `--style` option was removed. `git cola` follows the system theme
2489 so there's no need for this option these days.
2495 Usability, bells and whistles
2496 -----------------------------
2497 * Export a patch series from `git dag` into a `patches/` directory.
2499 * `git dag` learned to diff commits, slice history along paths, etc.
2501 * Added instant-preview to the `git stash` widget.
2503 * A simpler preferences editor is used to edit `git config` values.
2505 https://github.com/git-cola/git-cola/issues/90
2507 https://github.com/git-cola/git-cola/issues/89
2509 * Previous commit messages can be re-loaded from the message editor.
2511 https://github.com/git-cola/git-cola/issues/33
2515 * Display commits with no file changes.
2517 https://github.com/git-cola/git-cola/issues/82
2519 * Improved the diff editor's copy/paste behavior
2521 https://github.com/git-cola/git-cola/issues/90
2525 * Bumped version number to ceil(minimum git version).
2526 `git cola` now requires `git` >= 1.6.3.
2528 * Simplified git-cola's versioning when building from tarballs
2529 outside of git. We no longer check for a 'version' file at
2530 the root of the repository. We instead keep a default version
2531 in `cola/version.py` and use it when `git cola`'s `.git` repository
2538 Usability, bells and whistles
2539 -----------------------------
2540 * inotify is much snappier and available on Windows
2541 thanks to Karl Bielefeldt.
2543 * New right-click command to add untracked files to .gitignore
2544 thanks to Audrius Karabanovas.
2546 * Stash, fetch, push, and pull usability improvements
2548 * General usability improvements
2550 * stderr is logged when applying partial diffs.
2554 * Files can be unstaged when amending.
2556 https://github.com/git-cola/git-cola/issues/82
2558 * Show the configured remote.$remote.pushurl in the GUI
2560 https://github.com/git-cola/git-cola/issues/83
2562 * Removed usage of the "user" module.
2564 https://github.com/git-cola/git-cola/issues/86
2566 * Avoids an extra `git update-index` call during startup.
2573 Usability, bells and whistles
2574 -----------------------------
2575 * We now provide better feedback when `git push` fails.
2577 https://github.com/git-cola/git-cola/issues/69
2579 * The Fetch, Push, and Pull dialogs now give better feedback
2580 when interacting with remotes. The dialogs are modal and
2581 a progress dialog is used.
2585 * More unicode fixes, again. It is now possible to have
2586 unicode branch names, repository paths, home directories, etc.
2587 This continued the work initiated by Redhat's bugzilla #694806.
2589 https://bugzilla.redhat.com/show_bug.cgi?id=694806
2595 Usability, bells and whistles
2596 -----------------------------
2597 * The `git cola` desktop launchers now prompt for a repo
2598 by default. This is done by using the new `--prompt`
2599 flag which tells `git cola` to ignore any git repositories
2600 in the current directory and prompt for one instead.
2604 * More Unicode fixes for repositories and home directories with
2605 embedded unicode characters. Thanks to Christian Jann for
2606 patience and helpful bug reports.
2608 * Fix the 'Clone' button in the startup dialog.
2614 Usability, bells and whistles
2615 -----------------------------
2616 * Faster startup time! `git cola` now offloads initialization
2617 to a background thread so that the GUI appears almost instantly.
2619 * Specialized diff options for p4merge, vimdiff, araxis, emerge,
2620 and ecmerge in difftool (backported from git.git).
2624 * Fix launching commands in the background on Windows
2625 (e.g. when launching `git difftool`).
2627 * Fix unicode errors when home or repository directories contain
2630 https://github.com/git-cola/git-cola/issues/74
2632 Redhat's bugzilla #694806
2634 https://bugzilla.redhat.com/show_bug.cgi?id=694806
2640 Usability, bells and whistles
2641 -----------------------------
2642 * The `cola classic` tool can be now configured to be dockable.
2644 https://github.com/git-cola/git-cola/issues/56
2646 * The `cola classic` tool now uses visual sigils to indicate a file's status.
2647 The idea and icons were provided by Uri Okrent.
2649 * Include the 'Rescan' button in the 'Actions' widget regardless
2650 of whether inotify is installed.
2654 * Fix installation of translations per Fedora
2655 This incorporates Fedora's fix for the translations path
2656 which originally appeared in cola-1.4.3-translations.patch.
2658 * Mac OS X git-cola developers can now generate git-cola.app
2659 application bundles using 'make app-bundle'.
2663 * Fixed a stacktrace when trying to use "Get Commit Message Template"
2664 with an unconfigured "commit.template" git config variable.
2666 https://github.com/git-cola/git-cola/issues/72
2668 This bug originated in Redhat's bugzilla #675721 via a Fedora user.
2670 https://bugzilla.redhat.com/show_bug.cgi?id=675721
2672 * Properly raise the main window on Mac OS X.
2674 * Properly handle staging a huge numbers of files at once.
2676 * Speed up 'git config' usage by fixing cola's caching proxy.
2678 * Guard against damaged ~/.cola files.
2684 Usability, bells and whistles
2685 -----------------------------
2686 * `git dag` now has a separate display area
2687 for displaying commit metadata. This area will soon
2688 grow additional functionality such as cherry-picking,
2693 * Fixed tests from a previous refactoring.
2695 * Guard against 'diff.external' configuration by always
2696 calling 'git diff' with the '--no-ext-diff' option.
2698 https://github.com/git-cola/git-cola/issues/67
2700 * Respect 'gui.diffcontext' so that cola's diff display
2701 shows the correct number of context lines.
2703 * Raise the GUI so that it is in the foreground on OS X.
2707 * We now allow distutils to rewrite cola's shebang line.
2708 This allows us to run on systems where "which python"
2709 is Python3k. This is exposed by setting the `PYTHON`
2710 Makefile variable to the location of python2.x.
2712 * git-cola.app is now a tiny download because it no longer
2713 contains Qt and PyQt. These libraries are provided as a
2716 http://code.google.com/p/git-cola/downloads/list
2722 Usability, bells and whistles
2723 -----------------------------
2724 * Clicking on paths in the status widget copies them into the
2725 copy/paste buffer for easy middle-clicking into terminals.
2727 * `Ctrl+C` in diff viewer copies the selected diff to the clipboard.
2731 * Fixed the disappearing actions buttons on PyQt 4.7.4
2732 as reported by Arch and Ubuntu 10.10.
2734 https://github.com/git-cola/git-cola/issues/62
2736 * Fixed mouse interaction with the status widget where some
2737 items could not be de-selected.
2741 * Removed hard-coded reference to lib/ when calculating Python's
2742 site-packages directory.
2748 Usability, bells and whistles
2749 -----------------------------
2750 * Removed "single-click to (un)stage" in the status view.
2751 This is a usability improvement since we no longer perform
2752 different actions depending on where a row is clicked.
2754 * Added ability to create unsigned, annotated tags.
2758 * Updated documentation to use `cola.git` instead of `cola.gitcmd`.
2764 Usability, bells and whistles
2765 -----------------------------
2766 * Allow un/staging by right-clicking top-level items
2768 https://github.com/git-cola/git-cola/issues/57
2770 * Running 'commit' with no staged changes prompts to allow
2773 https://github.com/git-cola/git-cola/issues/55
2775 * Fetch, Push, and Pull are now available via the menus
2777 https://github.com/git-cola/git-cola/issues/58
2781 * Simplified the actions widget to work around a regression
2784 https://github.com/git-cola/git-cola/issues/62
2790 Usability, bells and whistles
2791 -----------------------------
2792 * `git dag` interaction was made faster.
2796 * Added '...' indicators to the buttons for
2797 'Fetch...', 'Push...', 'Pull...', and 'Stash...'.
2799 https://github.com/git-cola/git-cola/issues/51
2801 * Fixed a hang-on-exit bug in the cola-provided
2802 'ssh-askpass' implementation.
2808 Usability, bells and whistles
2809 -----------------------------
2810 * Staging and unstaging is faster.
2812 https://github.com/git-cola/git-cola/issues/48
2814 * `git dag` reads history in a background thread.
2818 * Added :data:`cola.compat.hashlib` for `Python 2.4` compatibility
2819 * Improved `PyQt 4.1.x` compatibility.
2823 * Configured menu actions use ``sh -c`` for Windows portability.
2830 Usability, bells and whistles
2831 -----------------------------
2832 * Added support for the configurable ``guitool.<tool>.*``
2833 actions as described in ``git-config(1)``.
2835 https://github.com/git-cola/git-cola/issues/44
2837 http://schacon.github.com/git/git-config.html
2839 This makes it possible to add new actions to `git cola`
2840 by simply editing ``~/.gitconfig``. This implements the
2841 same guitool support as `git gui`.
2842 * Introduced a stat cache to speed up `git config` and
2843 repository status checks.
2844 * Added Alt-key shortcuts to the main `git cola` interface.
2845 * The `Actions` dock widget switches between a horizontal
2846 and vertical layout when resized.
2847 * We now use ``git diff --submodule`` for submodules
2848 (used when git >= 1.6.6).
2849 * The context menu for modified submodules includes an option
2850 to launch `git cola`.
2852 https://github.com/git-cola/git-cola/issues/17
2854 * Prefer ``$VISUAL`` over ``$EDITOR`` when both are defined.
2855 These are used to set a default editor in lieu of `core.editor`
2857 * Force the editor to be ``gvim`` when we see ``vim``.
2858 This prevents us from launching an editor in the (typically
2859 unattached) parent terminal and creating zombie editors
2860 that cannot be easily killed.
2861 * Selections are remembered and restored across updates.
2862 This makes the `partial-staging` workflow easier since the
2863 diff view will show the updated diff after staging.
2864 * Show the path to the current repository in a tooltip
2865 over the commit message editor.
2867 https://github.com/git-cola/git-cola/issues/45
2869 * Log internal ``git`` commands when ``GIT_COLA_TRACE`` is defined.
2871 https://github.com/git-cola/git-cola/issues/39
2875 * Improved backwards compatibility for Python 2.4.
2876 * `Review mode` can now review the current branch; it no longer
2877 requires you to checkout the branch into which the reviewed
2878 branch will be merged.
2879 * Guard against `color.ui = always` configuration when using
2880 `git log` by passing ``--no-color``.
2881 * ``yes`` and ``no`` are now supported as valid booleans
2882 by the `git config` parser.
2883 * Better defaults are used for `fetch`, `push`, and `pull`..
2885 https://github.com/git-cola/git-cola/issues/43
2889 * Removed colon (`:`) from the applilcation name on Windows
2891 https://github.com/git-cola/git-cola/issues/41
2893 * Fixed bugs with the Windows installer
2895 https://github.com/git-cola/git-cola/issues/40
2897 * Added a more standard i18n infrastructure. The install
2898 tree now has the common ``share/locale/$lang/LC_MESSAGES/git-cola.mo``
2899 layout in use by several projects.
2901 * Started trying to accommodate Mac OSX 10.6 (Snow Leopard)
2902 in the ``darwin/`` build scripts but our tester is yet to
2903 report success building a `.app` bundle.
2905 * Replaced use of ``perl`` in Sphinx/documentation Makefile
2906 with more-portable ``sed`` constructs. Thanks to
2907 Stefan Naewe for discovering the portability issues and
2908 providing msysgit-friendly patches.
2914 Usability, bells and whistles
2915 -----------------------------
2916 * It is now possible to checkout from the index as well
2917 as from `HEAD`. This corresponds to the
2918 `Removed Unstaged Changes` action in the `Repository Status` tool.
2919 * The `remote` dialogs (fetch, push, pull) are now slightly
2921 * Bookmarks can be selected when `git cola` is run outside of a git repository.
2922 * Added more user documentation. We now include many links to
2923 external git resources.
2924 * Added `git dag` to the available tools.
2925 `git dag` is a node-based DAG history browser.
2926 It doesn't do much yet, but it's been merged so that we can start
2927 building and improving upon it.
2931 * Fixed a missing ``import`` when showing `right-click` actions
2932 for unmerged files in the `Repository Status` tool.
2933 * ``git update-index --refresh`` is no longer run every time
2934 ``git cola version`` is run.
2935 * Don't try to watch non-existent directories when using `inotify`.
2936 * Use ``git rev-parse --symbolic-full-name`` plumbing to find
2937 the name of the current branch.
2941 * The ``Makefile`` will now conditionally include a ``config.mak``
2942 file located at the root of the project. This allows for user
2943 customizations such as changes to the `prefix` variable
2944 to be stored in a file so that custom settings do not need to
2945 be specified every time on the command-line.
2946 * The build scripts no longer require a ``.git`` directory to
2947 generate the ``builtin_version.py`` module. The release tarballs
2948 now include a ``version`` file at the root of the project which
2949 is used in lieu of having the git repository available.
2950 This allows for ``make clean && make`` to function outside of
2952 * Added maintainer's ``make dist`` target to the ``Makefile``.
2953 * The built-in `simplejson` and `jsonpickle` libraries can be
2954 excluded from ``make install`` by specifying the ``standalone=true``
2955 `make` variable. For example, ``make standalone=true install``.
2956 This corresponds to the ``--standalone`` option to ``setup.py``.
2963 Usability, bells and whistles
2964 -----------------------------
2965 * We now use patience diff by default when it is available via
2966 `git diff --patience`.
2967 * Allow closing the `cola classic` tool with `Ctrl+W`.
2971 * Fixed an unbound variable error in the `push` dialog.
2975 * Don't include `simplejson` in MANIFEST.in.
2976 * Update desktop entry to read `Cola Git GUI`.
2983 This feature release adds two new features directly from
2984 `git cola`'s github issues backlog. On the developer
2985 front, further work was done towards modularizing the code base.
2987 Usability, bells and whistles
2988 -----------------------------
2989 * Dragging and dropping patches invokes `git am`
2991 https://github.com/git-cola/git-cola/issues/3
2993 * A dialog to allow opening or cloning a repository
2994 is presented when `git cola` is launched outside of a git repository.
2996 https://github.com/git-cola/git-cola/issues/22
2998 * Warn when `push` is used to create a new branch
3000 https://github.com/git-cola/git-cola/issues/35
3002 * Optimized startup time by removing several calls to `git`.
3007 * `git cola` is once again compatible with PyQt 4.3.x.
3011 * `cola.gitcmds` was added to factor out git command-line utilities
3012 * `cola.gitcfg` was added for interacting with `git config`
3013 * `cola.models.browser` was added to factor out repobrowser data
3023 * Fix launching external applications on Windows
3024 * Ensure that the `amend` checkbox is unchecked when switching modes
3025 * Update the status tree when amending commits
3034 * Fix Lintian warnings
3043 * Fix X11 warnings on application startup
3052 * Added missing 'Exit Diff Mode' button for 'Diff Expression' mode
3054 https://github.com/git-cola/git-cola/issues/31
3056 * Fix a bug when initializing fonts on Windows
3058 https://github.com/git-cola/git-cola/issues/32
3067 * Keep entries in sorted order in the `cola classic` tool
3068 * Fix staging untracked files
3070 https://github.com/git-cola/git-cola/issues/27
3072 * Fix the `show` command in the Stash dialog
3074 https://github.com/git-cola/git-cola/issues/29
3076 * Fix a typo when loading merge commit messages
3078 https://github.com/git-cola/git-cola/issues/30
3085 This release focuses on a redesign of the git-cola user interface,
3086 a tags interface, and better integration of the `cola classic` tool.
3087 A flexible interface based on configurable docks is used to manage the
3088 various cola widgets.
3090 Usability, bells and whistles
3091 -----------------------------
3092 * New GUI is flexible and user-configurable
3093 * Individual widgets can be detached and rearranged arbitrarily
3094 * Add an interface for creating tags
3095 * Provide a fallback `SSH_ASKPASS` implementation to prompt for
3096 SSH passwords on fetch/push/pull
3097 * The commit message editor displays the current row/column and
3098 warns when lines get too long
3099 * The `cola classic` tool displays upstream changes
3100 * `git cola --classic` launches `cola classic` in standalone mode
3101 * Provide more information in log messages
3105 * Inherit the window manager's font settings
3106 * Miscellaneous PyQt4 bug fixes and workarounds
3110 * Removed all usage of Qt Designer `.ui` files
3111 * Simpler model/view architecture
3112 * Selection is now shared across tools
3113 * Centralized notifications are used to keep views in sync
3114 * The `cola.git` command class was made thread-safe
3115 * Less coupling between model and view actions
3116 * The status view was rewritten to use the MVC architecture
3117 * Added more documentation and tests
3124 Usability, bells and whistles
3125 -----------------------------
3126 * Added a `cola classic` tool for browsing the entire repository
3127 * Handle diff expressions with spaces
3128 * Handle renamed files
3132 * Handle carat `^` characters in diff expressions on Windows
3133 * Worked around a PyQt 4.5/4.6 QThreadPool bug
3137 * Added a keyboard shortcuts reference page
3138 * Added developer API documentation
3142 * Fix the diff expression used when reviewing branches
3143 * Fix a bug when pushing branches
3144 * Fix X11 warnings at startup
3145 * Fix more interrupted system calls on Mac OS X
3152 Usability, bells and whistles
3153 -----------------------------
3154 * Fresh and tasty SVG logos
3155 * Added `Branch Review` mode for reviewing topic branches
3156 * Added diff modes for diffing between tags, branches,
3157 or arbitrary `git diff` expressions
3158 * The push dialog selects the current branch by default.
3159 This is in preparation for `git 1.7.0` where unconfigured `git push`
3160 will refuse to push when run without specifying the remote name
3161 and branch. See the `git` release notes for more information
3162 * Support `open` and `clone` commands on Windows
3163 * Allow saving cola UI layouts
3164 * Re-enabled `double-click-to-stage` for unmerged entries.
3165 Disabling it for unmerged items was inconsistent, though safer.
3166 * Show diffs when navigating the status tree with the keyboard
3170 * Worked around `pyuic4` bugs in the `setup.py` build script
3171 * Added Mac OSX application bundles to the download page
3180 * `git difftool` became an official git command in `git 1.6.3`.
3181 * `git difftool` learned `--no-prompt` / `-y` and a corresponding
3182 `difftool.prompt` configuration variable
3184 Usability, bells and whistles
3185 -----------------------------
3186 * Warn when `non-fast-forward` is used with fetch, push or pull
3187 * Allow `Ctrl+C` to exit cola when run from the command line
3191 * Support Unicode font names
3192 * Handle interrupted system calls
3196 * `PEP-8`-ified more of the cola code base
3201 * All resources are now installed into `$prefix/share/git-cola`.
3202 Closed Debian bug #519972
3204 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=519972
3213 * Added support for Kompare in `git difftool`
3214 * Added a separate configuration namespace for `git difftool`
3215 * Added the `diff.tool` configuration variable to define the default diff tool
3217 Usability, bells and whistles
3218 -----------------------------
3219 * The stash dialog allows passing the `--keep-index` option to `git stash`
3220 * Amending a published commit warns at commit time
3221 * Simplified the file-across-revisions comparison dialog
3222 * `origin` is selected by default in fetch/push/pull
3223 * Removed the search field from the log widget
3224 * The log window moved into a drawer widget at the bottom of the UI
3225 * Log window display can be configured with
3226 `cola.showoutput` = `{never, always, errors}`. `errors` is the default.
3227 * `NOTE` -- `cola.showoutput` was removed with the GUI rewrite in 1.4.0.
3231 * Improved nose unittest usage
3235 * Added a Windows/msysGit installer
3236 * Included private versions of `simplejson` and `jsonpickle`
3237 for ease of installation and development