Skip to content

New and Noteworthy 2.2

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

EGit Features

Staging view

"Commit" and "Commit and Push" buttons

We moved the commit button from the toolbar to the form. Furthermore we now allow you to push and commit in a single step by hitting the appropriate form button. The push occurrs either to the default remote or to upstream that the user configures in the push configuration dialog. (bug 388913):

Image:EGit-2.2-staging-commit-and-push.png

Staging with drag and drop of resources from navigator views (e.g. Package Explorer)

Files and entire folders can now be staged by dragging them from the Package Explorer and other navigator views to the Staged Changes table of the Staging view (bug 385412).

For example, the package org.eclipse.jgit.api is dragged from the Package Explorer on the left:

Image:EGit-2.2-staging-view-dnd-1.png

Which results in all the contained files being staged:

Image:EGit-2.2-staging-view-dnd-2.png

Ignore action for adding files to .gitignore

For an untracked file, the Staging view now has a Ignore action in the context menu. This will add the file to .gitignore. (bug 385178)

Image:EGit-2.2-staging-view-ignore.png

Improved label decorations

The Staging view now honors label decoration preferences. For example, when the label decorations are configured to not show any text decorations, but instead use an icon for the "dirty" state (bug 390297):

Image:EGit-2.2-staging-view-decoration-settings.png

Working set project decorations

Working sets now also receive the decorations, depending on what projects they contain. When all are from the same repository, the repository name, branch name and branch status is shown. When they are from different repositories but all on the same branch, only the branch name is shown. (bug 369969)

Image:EGit-2.2-working-set-decorations.png

Resource filter and nested project support

Resource filters are now handled correctly, e.g. when used to exclude sub projects from appearing in the parent project tree with a nested project layout. (bug 358901)

The following shows an example of a nested project layout. Notice that there is a .project in the root of the working directory and that the .project for nested-sub is in a sub directory:

Image:EGit-2.2-nested-projects.png

Additionally, the Import Projects... wizard in the Git Repositories view now searches for nested projects (bug 396067). The standard Import Existing Projects wizard supports this since Eclipse 4.3 (bug 144610).

Ancestor pane in compare editors (three-way mode)

When comparing a file against another commit or branch, the content of the common ancestor can now be shown using the Show Ancestor Pane button in the compare editor. This will show a third text field showing the content of the ancestor.

The common ancestor (also called merge base) is the first parent commit that both compared commits have in common. E.g. when a feature branch was created from master, the common ancestor is the commit on master after which feature was split off.

Image:EGit-2.2-compare-ancestor.png

Show In support for files in History view, Commit viewer and Staging view

The listing of changed files of a commit and in the Staging view now has a Show In entry in the context menu, e.g. to show a file in the Package Explorer. The usual keyboard shortcut can also be used to show the menu. (bug 363567)

Image:EGit-2.2-commit-file-show-in.png

Other Improvements

  • Deleting untracked files from the Staging view can now be done using the delete key (bug 389137).
  • Deleting a repository including repository content now removes the empty repository folder (bug 358256).
  • Amend now preserves the original authorship date and time (bug 362391).
  • When comparing a file with the current version (HEAD), its side now always shows the author and ID of the commit which last affected the file, not from HEAD (bug 359071).
  • Git Tree Compare view now has an Expand all button (bug 376241).
  • When accidentally pressing Amend in the Commit dialog or Staging view, pressing it again causes the original commit message to appear again instead of being lost (bug 364022).
  • When using Compare With/Replace With > Commit..., the dialog now filters the shown commits to only those that affected the selected resources, not the complete history (bug 382476).
  • Synchronize view now fetches changes when using F5/Synchronize when the Always launch fetch before synchronization option is enabled (bug 355837).
  • Undo in the Staging view commit message field is now available again (bug 388594).
  • Stashed commits are now sorted in the order in which they were created, not by the label.
  • The Remove from Index action now works across resources of multiple repositories (bug 395722).
  • Pushing now also updates remote tracking branches when using Synchronize view, Push Branch... and Push... (bug 317411, bug 317371, bug 328138).
  • 'Push to Gerrit' wizard supports Gerrit draft reviews

Performance Improvements

Re-indexing repositories is now done incrementally

Instead of doing a full refresh each time the Git index changes, index diff updates are now done incrementally (bug 393642). This leads to a noticeable performance improvement in the following areas:

  • Staging view
  • Add to Index and Remove from Index actions
  • Git Label Decorations

Installation

  • EGit 2.2 requires at least Eclipse platform 3.7.2 (Indigo), support for older releases was discontinued (https://bugs.eclipse.org/bugs/show_bug.cgi?id=365425)
  • Feature org.eclipse.egit.psf was removed since it was only needed for platform versions older than 3.7

Build

  • EGit build was updated to Tycho 0.16
  • EGit bundles now contain Eclipse-SourceReference headers

Bug Fixes

64 Bugs and 16 enhancement requests were closed

Contributors

The following 16 developers worked on this release of EGit:

Andreas Hermann, André Dietisheim, Chris Aniszczyk, Dani Megert, Dariusz Luksza, François Rey, Gunnar Wagenknecht, Jens Baumgart, Kaloyan Raev, Markus Duft, Markus Keller, Matthias Sohn, Robin Rosenberg, Robin Stocker, Stefan Lay, Tomasz Zarna

Clone this wiki locally