Skip to content

New and Noteworthy 5.2

Matthias Sohn edited this page Dec 5, 2023 · 1 revision

EGit

New Preferences

The main EGit preference page has two new preferences: one for enabling parallel pull and one for selecting the SSH client library to use.

New SSH Library

EGit 5.2.0 newly includes an SSH client based on the Apache MINA sshd library. Until now, EGit used an older library called JSch for its built-in SSH handling.

You can choose which library to use in the main EGit preferences page, and we encourage you to switch to the new Apache MINA sshd. Benefits for now are that more kinds of SSH keys work: ECDSA-384 and ECDSA-521 keys work, and ed25519 keys now also work! It also properly reads private key files generated by modern OpenSSH (or older OpenSSH ssh-keygen -o), if they are not password-protected. Encrypted new-style OpenSSH private keys are not supported by Apache MINA sshd yet. Keys in the older PEM format are read fine.

  • Supported authentication mechanisms: gssapi-with-mic, publickey, password, keyboard-interactive.
  • Supported private keys: DSA, RSA, ECDSA (256, 384, and 521 bits), ed25519.
  • Supported proxy types: SOCKS5 and HTTP, with anonymous access or GSSAPI or username-password (Basic) authentication.

There is no support yet for ssh-agent or for Pageant with the new SSH library.

The previously existing mechanism for using an external SSH executable by setting the GIT_SSH environment variable is still available.

Support for reading encrypted OpenSSH keys is on the roadmap for the next EGit 5.3.0 release. We plan to remove the old JSch SSH implementation completely in a future release of EGit.

Known bugs:

  • Bug 542845: after having added a new private key in Preferences→Global→Network Connections→SSH2, restart Eclipse to have the new Apache MINA sshd library pick it up. This will be fixed in EGit 5.3.0 so that a restart is not needed anymore.

Parallel Pull Operations

On the main EGit preference page, you can define how many parallel pull operations EGit should do when you pull from several repositories. Setting the value to "1" disables parallel pulls, and EGit will pull one repository after another. A larger value will make EGit run pull operations on different repositories in parallel.

Multi-Repository Branch Switch

You can now switch to a common branch in several repositories at once.

When there are several repositories selected, the context menu entry "Switch Repositories To" allows you to do a branch switch in all of them. The sub-menu proposes the local branches that have the same name in all of the selected repositories. When you select a branch, EGit checks out that branch in all those repositories. If some check-outs cannot be done successfully, for instance because of conflicts in some repositories, a dialog will be presented showing which repositories were switched and which ones not.

This branch switch in several repositories works not only in the Git Repositories view as shown in the screenshot above but also in the Package Explorer or Project Explorer when resources from several repositories are selected.

Gitflow Configuration

We've started implementing support for the git config settings used by command-line gitflow tools. This work has just begun; EGit 5.2.0 supports only one config entry:

  • gitflow.feature.start.fetch — if true, fetch from upstream before starting a new feature branch.

Other Changes

EGit 5.2.0 includes lots of less noticeable improvements in the UI, such as icons for menu items, using verbs instead of "OK" for dialog buttons, and so on, plus a number of bug fixes. Find the complete list of new features and bug fixes in the release notes.

Contributors

The following 10 developers worked on this release:

Andrey Loskutov, Gunnar Wagenknecht, Jonas Hungershausen, Karsten Thoms, Luís Copetti, Markus Duft, Matthias Sohn, Max Hohenegger, Michael Keppler, and Thomas Wolf.

Clone this wiki locally