Eclipse EGit: Git Integration for Eclipse 5.0.0 Release Review

Type: 
Release
State: 
Successful
End Date of the Review Period: 

Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.

Wednesday, June 6, 2018
Release: 

5.0.0

Description: 

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
Conforms To UI/UX Guidelines: 
Not verified
This release is part of Eclipse Photon.