* The Rebase editor is now aware of the drop, break, label,
merge and reset commands that were added in recent versions
of Git.
* Desktop notifications can now be enabled when pushing remotes
by enabling the "Notify on Push" option in the preferences.
* Faster and easier commit hash copying in DAG. Left-clicking
on the Commit ID will now copy it directly into the clipboard
without any further action.
* "Grab File from Parent Commit" actions have been added to the
DAG.
* The Unstage Selected action was added to the context menu for
unmerged files.
* git cola rebase now provides a --rebase-merges option and
passes the same option to git rebase when Git v1.18.0 or
newer is detected.
* Pre-commits hooks were updated.
* The Pull dialog now selects the remote branch automatically.
OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm/git-cola?expand=0&rev=159
* launchable tags were added to the flatpak app metainfo files.
* The Rebase editor (git-cola-sequence-editor) can now add
"remarks" to commits. Remarks are simple numbered flags (0-9)
that allow you to mark commits. This lets you visually
highlight commits to aid you when rebasing and grouping
related commits across a large patch series. Remarks can be
added to a single commit or to all commits that touch a file.
(#1375)
* Invalid commit.template configuration is now reported in the
Console tool instead of presenting an error traceback dialog
via a UsageError exception.
* The file system monitor was corrected to catch
PermissionError exceptions. (bz #2260155)
* If the polib module (e.g. sudo apt install python3-polib) is
installed then it will be used instead of the vendored
cola.polib module. This makes it easier for distributions to
remove the vendored module from the cola namespace. polib is
now listed as an install requirement in pyproject.toml. (bz
#2264526)
* The flatpak metainfo now contains the required developer name
field.
* The "actions/cache" and "styfle/cancel-workflow-action"
github actions were upgraded.
* The test suite now uses ruff to validate python code. pylint
is no longer used. (#1353)
OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm/git-cola?expand=0&rev=155
* Usability, bells and whistles
* The remote messages dialog is now displayed for the Pull and
Push actions in the
* Branches widget only. This dialog is disabled by default and
enabled in the
* main Push and Pull dialog settings.
* The whole-file staging actions in the Diff widget's right-
click menu are now listed
* after the selection and hunk staging actions. This helps
prevent accidental clicks
* from clobbering the index for the entire file.
* The completion popup no longer reappears after an item is
selected in the
* "Checkout Branch" action and similar dialogs.
* Fixes
* PyQt6 compatibility was improved.
- switch to PyQt6
OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm/git-cola?expand=0&rev=151
* Git Cola now preserves `# commentary` in commit messages by
default.
* `git dag` now includes completions for `git log` options in
the text input field.
* `git dag` now provides convenient search filters when right-
clicking in the text input field.
* A `1.25 x` Hi-DPI magnification option mode is now available
in the Appearance settings.
* Git Cola now runs `git commit` in the background and feedback
is provided while the commit is running. This prevents the
UI from freezing when running pre-commit hooks that can make
`git commit` take a long time to run.
* The Diff context menu was reworked to reduce visual clutter
and better match the Status context menu.
* The standalone `git cola tag` tool now autocompletes the tag
name field.
* The "Branches" dock widget now has a "Visualize" right-click
menu option.
* The "Stash" dialog learned to rename stashes.
* The "Fetch", "Push" and "Pull" dialogs can now display remote
messages from the server.
* `git dag` fixed how it was handling refspec arguments.
* `git dag` will now properly refresh itself when remote
branches are updated.
* Git Cola's python code style. We were previously disabling
quote normalization when using `black`. Use of `cercis`
allows us to enable quote normalization under its default
single-quote settings.
* Compatibility with Sphinx 7.2.0 was added to the
OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm/git-cola?expand=0&rev=149
- Usability, bells and whistles
* `git dag` now displays commit metadata more similarly to `git log`.
The commit date is now displayed and the subject field is displayed
directly above the extended description.
* `git dag` now supports a `cola.logdate` configuration for controlling
the date format. The configured value is passed to `git log --date=<format>`.
https://github.com/git-cola/git-cola/pull/1319https://github.com/git-cola/git-cola/issues/1312
* The default `patches` directory that is used when exporting patches
is now configurable using the `cola.patchesdirectory` configuration
variable and the Preferences dialog.
* The Diff Editor can now export the diff selection, or the current
diff hunk, to a `*.patch` file from the `Patches` context menu action.
* Existing patches can be appended to by choosing a patch file from
the `Append Patch` sub-menu in the `Patches` context menu action.
* Patches can now be applied by dragging and dropping patches files from
a file browser onto the diff editor. The "Apply Patches" dialog is
launched with the drag-and-dropped patch files.
* Shell completions for zsh are now provided in the source distribution.
See the `contrib/_git-cola` zsh completion file for more details
-Fixes
* ``QApplication::desktop()`` is no longer available on PyQt6.
Git Cola no longer relies on this method.
-Packaging
* Git Cola can now be installed on Windows using `winget`.
See the ``README.md`` file for more details.
https://github.com/git-cola/git-cola/pull/1318
OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm/git-cola?expand=0&rev=142
- Usability, bells and whistles
* The `git-xbase` rebase editor now includes a file list for filtering
the changes displayed in the diff view.
https://github.com/git-cola/git-cola/pull/1051
* The fallback `ssh-askpass` script, which provides the Username/Password
login dialog when performing remote operations, previously presented both
the username and password input fields with `***` asterisks.
The dialog now uses asterisks for the password field only.
https://github.com/git-cola/git-cola/pull/1026
* Stashes can now be applied using the `Ctrl + Enter` hotkey, popped with the
`Ctrl + Backspace` hotkey, and dropped with the `Ctrl + Shift + Backspace`
hotkey when inside the stash dialog. This enables a keyboard-centric
mouse-free workflow when using the stash dialog.
* When amending a commit, `git cola` will check whether the commit has been
published to a remote branch using `git branch -r --contains HEAD`.
This command can be slow when operating on a repository with many
remote branches. The new `cola.checkpublishedcommits` configuration
variable allows you to opt-out of this check, which improves performance
when amending a commit. The settings widget exposes this variable as,
"Check Published Commits when Amending".
https://github.com/git-cola/git-cola/issues/1021https://github.com/git-cola/git-cola/pull/1027
- Translations
* Updated Polish translation.
https://github.com/git-cola/git-cola/pull/1033
- Fixes
* `git-dag.appdata.xml` was updated to allow network access for author icons.
https://github.com/git-cola/git-cola/pull/1050
* The inotify filesystem monitor now handles
OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm/git-cola?expand=0&rev=111
- Usability, bells and whistles
* git dag improved how it renders parent commits. (#921)
* The Branches widget now checks out branches when double-clicked. (#920)
* The new Submodules widget makes it easy to interact with submodules.
Additionally, submodules can now be updated using the Status widget. (#916)
* Updated Japanese translation. (#914)
* The “Open Terminal” action now launches a Git Bash shell on Windows. (#913)
* New menu actions for updating all submodules. (#911)
* The status widget can now update submodules. (#911)
* The “Apply Patch” git cola am dialog now includes a diff viewer to display
the contents of the selected patch.
* The “Alt+D” diffstat hotkey now selects the staged/modified/etc. header in
the Status widget, which shows the totality of everything that will be committed. (#771)
* Running “Launch Editor” from the diff editor now opens the editor at the current line. (#898)
* The textwidth and tabwidth configuration values can now be set per-repository,
rather than globally only.
* Text entry widgets switched to using a block cursor in v3.2.
This has been reverted to the original line cursor for consistency with other
applications and user expectations. (#889)
* The “edit at line” feature, used by the “Grep” tool, now supports the Sublime text editor. (#894)
- Fixes
* Launching external programs has been improved on Windows. (#925)
* Improve compatibility when using PySide2. (#912)
* The Diff Editor was not honoring the configured tab width on startup. (#900)
* The “Delete Files” feature was creating an unreadable display when many files were selected.
Word-wrap the list of files so that the display stays within a sensible size. (#895)
* Spelling and grammar fixes. (#915) (#891)
- Development
* The logo was run through tidy to give it a consistent style.
OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm/git-cola?expand=0&rev=88
- Usability, bells and whistles
* The “Browser” widget learned to rename files using “git mv”.
https://github.com/git-cola/git-cola/issues/239
* The “Diff” widget learned to diff images. Side-by-side and pixel diff modes allow you to inspect changes to common images formats.
https://github.com/git-cola/git-cola/issues/444https://github.com/git-cola/git-cola/pull/803
* Git LFS and Git Annex are natively supported by the image diff viewer.
* Git Annex operations are now included. git annex init can be performed on repositories, and git annex add can be run on untracked files from the status widget. Install git-annex to activate this feature.
* Git LFS operations are now included. git lfs install can be performed on repositories, and git lfs track can be run on untracked files from the status widget. Install git-lfs to activate this feature.
* The “Stash” tool learned to stash staged changes only. Select the “Stage Index” option and only staged changes will be stashed away.
https://github.com/git-cola/git-cola/issues/413
* The “Stash” tool learned to use vim-like navigation keyboard shortcuts, shows error messages when things go wrong, and now saves the “Stash Index” and “Keep Index” options across sessions.
* The Edit menu’s “Copy” and “Select All” actions now forward to either the diff, status, recent, or favorites widgets, based on which widget has focus.
* The “File” and “Edit” menu can now be activated using Alt-{f,e} hotkeys.
https://github.com/git-cola/git-cola/issues/759
* It was easy to accidentally trigger the first action in the Status tool’s context menu when using a quick right-click to bring up the menu. A short sub-second delay was added to ensure that the top-most action is not triggered unless enough time has passed. This prevents accidental activation of the first item (typically “Stage” or “Unstage”) without burdening common use cases.
https://github.com/git-cola/git-cola/pull/755https://github.com/git-cola/git-cola/issues/643
* The “Ctrl+S” hotkey now works for the header items in the Status tool. Selected the “Modified” header item and activating the “Stage” hotkey, for example, will stage all modified files. This works for the “Staged”, “Modified”, and “Untracked” headers. This is not enabled for the “Unmerged” header by design.
https://github.com/git-cola/git-cola/issues/772
* The list of “Recent” repositories previously capped the number of repositories shown to 8 repositories. This can be set to a higher value by setting the cola.maxrecent configuration variable.
https://github.com/git-cola/git-cola/issues/752
* The “Create Branch” dialog now prevents invalid branch names.
https://github.com/git-cola/git-cola/issues/765
* Updated Turkish translation.
https://github.com/git-cola/git-cola/pull/756
* Updated Ukrainian translation.
https://github.com/git-cola/git-cola/pull/753
* Updated German translation.
OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm/git-cola?expand=0&rev=80
- Usability, bells and whistles
* New Polish translation thanks to Łukasz Wojniłowicz
https://github.com/git-cola/git-cola/pull/598
* The Bypass Commit Hooks feature now disables itself automatically when a new commit is created. The new behavior turns the option into a single-use flag, which helps prevent users from accidentally leaving it active longer than intended.
https://github.com/git-cola/git-cola/pull/595
* git dag learned to launch an external diff viewer on selected commits. The standard Ctrl+D shortcut can be used to view diffs.
https://github.com/git-cola/git-cola/issues/468
* git dag learned to launch directory diffs via git difftool –dir-diff. The Ctrl+Shift+D shortcut launches difftool in directory-diff mode.
https://github.com/git-cola/git-cola/issues/468
* Items in the “Favorites” list can now be renamed, which makes it easier to differentiate between several checkouts of the same repository.
https://github.com/git-cola/git-cola/issues/599https://github.com/git-cola/git-cola/pull/601
* The startup screen now includes a logo and git cola version information.
https://github.com/git-cola/git-cola/issues/526
* The About page was revamped to contain multiple tabs. A new tab was added that provides details about git cola‘’s dependencies. New tabs were also added for giving credit to git cola‘s authors and translators.
* The About page can now be accessed via git cola about.
* The “Fast-forward only” and “No fast-forward” options supported by git pull are now accessible via git cola pull.
* Doing a forced push no longer requires selecting the remote branch.
https://github.com/git-cola/git-cola/pull/618
* git cola push now has an option to suppress the prompt that is shown when pushing would create new remote branches.
https://github.com/git-cola/git-cola/issues/605
* git dag now shows commit messages in a more readable color.
https://github.com/git-cola/git-cola/issues/574
* git cola browse and the status widget learned to launch the OS-specified default action for a file. When used on directories via git cola browse, or when “Open Parent Directory” is used on files, the OS-specified file browser will typically be used.
git cola browse and the status widget learned to launch terminals.
- Fixes
* git cola browse was not updating when expanding items.
https://github.com/git-cola/git-cola/issues/588
* Typofixes in comments, naming, and strings have been applied.
OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm/git-cola?expand=0&rev=64
- Fixes
* When repositories stored in non-ASCII, UTF-8-encoded filesystem paths were operated upon with LC_ALL=C set in the environment, unicode errors would occur when using python2. git cola was made more robust and will now operate correctly within this environment.
https://github.com/git-cola/git-cola/issues/581
* Support for the GIT_WORK_TREE environment variable was fixed.
https://github.com/git-cola/git-cola/pull/582
- Development
* The unittest.mock module is now used instead of the original mock module when running the git cola test suite using Python3.
https://github.com/git-cola/git-cola/issues/569
- Packaging
* git cola is now compatible with PyQt5, PyQt4, and Pyside. git cola previously supported PyQt4 only, but will now use whichever library is available. Users are not required to upgrade at this time, but PyQt5 support can be enabled anytime by making its python modules available.
https://github.com/git-cola/git-cola/issues/232
NOTE: We do not yet recommend using PyQt5 because there are known exit-on-segfault bugs in Qt5 that have not yet been addressed. git cola is sensitive to this bug and is known to crash on exit when using git dag or the interactive rebase feature on PyQt5.
https://bugreports.qt.io/browse/QTBUG-52988
* PyQt4 is stable and there are no known issues when using it so we recommend using it until the Qt5 bugs have been resolved.
git cola now depends on QtPy and includes a bundled copy of the qtpy library. If you are packaging git cola and would prefer to use qtpy from your distribution instead of the built-in version then use make NO_VENDOR_LIBS=1 when building git cola. This will prevent vendored libraries from being installed.
OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm/git-cola?expand=0&rev=59