EGit/New and Noteworthy/2.2
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):
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:
Which results in all the contained files being staged:
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)
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):
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)
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:
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.
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)
- Deleting untracked files from the Staging view can now be done using the delete key (bug 389137).
- 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
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
- 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
- EGit build was updated to Tycho 0.16
- EGit bundles now contain Eclipse-SourceReference headers
64 Bugs and 16 enhancement requests were closed
The following 15 developers worked on this release of EGit:
Andreas Hermann, André Dietisheim, Chris Aniszczyk, Dani Megert, Dariusz Luksza, François Rey, Gunnar Wagenknecht, Jens Baumgart, Markus Duft, Markus Keller, Matthias Sohn, Robin Rosenberg, Robin Stocker, Stefan Lay, Tomasz Zarna