Eclipse EGit: Git Integration for Eclipse 5.0.0

Primary tabs

Features

  • Built-in EGit integration for LFS
    • Register builtin LFS on startup. When EGit starts and the lfs bundle (org.eclipse.jgit.lfs) is available register the LFS implementation and check configuration.
    • Allow install (enablement) of LFS support in Preferences (global) and on the repository (local).
    • Apply smudge/clean filters where applicable and required.
    • LFS integration using built-in JGit lfs filters fully works when using Gerrit with lfs plugin using ssh protocol.
    • Authentication when transporting lfs objects over http still missing, this is tracked in JGit bug 535814
  • 534604 Enable resource selection for launch variables
  • 533344 Allow cherry-picking a Gerrit change
  • 531953 Allow cherry-picking merge commits
  • 529255 Github API: Support diff/patch generation via the Github API

Usability Improvements

  • Add tracing of low-level JSch log messages
  • Natural sort for refs in FetchResultTable
  • Allow shortcuts for Gitflow commands
  • 534404 Suggest complete repository path in NewRepositoryWizard
  • 529449 Natural sort for tags in CreateTagDialog
  • 478159 Show affected projects when deleting repository
  • 510132 Add support for the "*" as wildcard character in the staging view filter
  • 511628 Select repositories via double-click in RepositorySearchDialog
  • 533019 Update staging view on repository config changes
  • 532458 Remove some margins in staging view

Performance Improvements

  • 535516 Use hash lookup for TreeViewers
  • Ignore IndexChangedEvent if it originates from the same JGit process
  • 500106 Improve asynchronous Eclipse workspace refreshes done by EGit
  • Speed up the RepositoriesViewContentProvider
  • Use PathFilterGroup instead of PathFilter if possible. TreeWalks looking for a single path can use PathFilterGroup instead of PathFilter. This should be a little bit faster.
  • In EGit use mmap to map git packfiles into memory. Avoids allocating JGit buffer cache on the Java heap.

Bug Fixes

  • 529141 Fix AssumeUnchangedOperation not working on directory/project
  • 525769 Don't try to store incomplete credentials in secure store
  • 470452 Improve check for uncommitted changes before cherry-pick
  • 520693 Respect gitattributes in the compare editor
  • 533230 Fix Repositories view blocking Eclipse on startup
  • 533198 improve branch name validation performance which was bad for big repositories
  • 533477 Fix substring matches in filter in branch selection dialogs
  • 358206 Handle Gerrit Change-Ids for merge commits
  • 533336 Keep Gerrit Change-Id for conflicting cherry-pick
  • 531171 Remove problem characters from task related branch name suggestion
  • 533019 Fix invalid thread access in staging view when config changes
  • 525769 Don't try to store incomplete credentials in secure store
  • 534440 Github API: Fix Repository.getWatchers(); add Repository.getStars()

Removal of deprecated methods

  • Remove deprecated UIUtils#applyHyperlinkDetectorStyleRanges and #getHyperlinkDetectorStyleRanges.
  • Remove deprecated InitOperation constructor
    Use InitOperation#InitOperation(Repository, InitParameters) instead.
  • Remove deprecated GitFlowOperation#fetch(IProgressMonitor)
    Use GitFlowOperation#fetch(IProgressMonitor, int) instead.
  • Remove deprecated FeatureTrackOperation constructor
    Use FeatureTrackOperation#FeatureTrackOperation(GitFlowRepository, Ref, int) instead.
  • Remove deprecated GitSynchronizeData#getSrcRemoteName
  • Remove deprecated GitSynchronizeData#getSrcMerge
  • Remove deprecated RepositoryMapping#getSubmoduleRepository
    Use #getMapping(IResource) and then #getRepository()} on the returned mapping instead; it will return a submodule repository if the resource is in one.
  • Remove deprecated RemoveFromIndexOperation(Repository, IResource[])
    Use #RemoveFromIndexOperation(Collection) instead.
  • Remove deprecated IgnoreOperation#IgnoreOperation(IResource[])
    Use #IgnoreOperation(Collection) instead.
  • Github API: Remove deprecated WatcherService
    Use StargazerService instead.
  • Github API: Remove deprecated User#getGravatarId and #setGravatarId
  • Github API: Remove deprecated Repository#getMasterBranch and #setMasterBranch
  • Github API: Remove deprecated Gist#setUser and #getUser methods

Build and Release Engineering

  • Update to latest Photon Orbit R20180606145124
  • 530393 Update EGit license to EPL-2.0
  • Update target platform to use Orbit R20180531190352
  • 532272 Update API baseline in Oomph setup
Release Date: 
Wednesday, June 27, 2018
This release is part of Eclipse Photon.
Release Type: 
Major release (API breakage)