Features
- [compare] Compare two arbitrary DiffNodes. Add a "Compare with Each Other" command to the GitDiffTreeViewer in the Compare Editor. It enables the user to compare two arbitrary files listed in the directory structure viewer, which is useful in particular to deal with renamed files that are reported as an addition and a deletion.
- 574710 [compare] Enhance the diff viewer. Add the ShowInMenu in the context menu of the diff viewer of a compare editor. Otherwise it's available only in the global menu. Also add toolbar buttons to expand or collapse all nodes. The "Expand All" menu action only expands the currently selected nodes.
- 574757 [history] Enable "Focus on this File" for bare repositories. Also make "Show in->History" work in the compare editor
- 574710 [compare] Disable "Link with Editor" for multi-file comparisons
- [compare][history] Compare multiple files with working tree in the CommitFileDiffViewer
- [compare][history] Make compare commit against working tree in the git history page work also when the input is not filtered to a single file. The comparison is still restricted by the current history page input, but now also works if the input is several files, or one or more directories, or the whole repository. Rename detection is not done in these cases.
- [compare] Add "Compare With" sub-menu for the repositories view. When directory or file nodes belonging to the same repository are selected in the repositories view, provide commands for the "Compare With" sub-menu in the context menu:
- Compare with HEAD
- Compare with Branch, Tag, or Reference...
- Compare with Commit...
- [compare] Comparing the working tree with a commit, used in the repositories view: if a single ref (branch, tag, or additional ref) is selected in the repositories view, the CompareCommand now changes its label to "Compare with Working Tree", and opens the compare editor with the comparison between the working tree and the selected ref.
- This kind of comparison does not replace the synchronize commands. The synchronization support works only for IResources (i.e., files and folders in the Eclipse workspace), but has elaborate support for "model-based" comparisons. OTOH, this new "Compare with Working Tree" command also works well for files not in the Eclipse workspace, but cannot do model-based comparisons.
- 574144 [repo view] "Show in System Explorer" on repository nodes
Usability Improvements
- 575695 Handle long error messages in InputDialog
- 575566 Lighten Fetch/Push wizard: reorganize UI slightly so less groups are drawn and aligning similar functions together.
- 575567 Give example on Fetch wizard of what remote refs can be on hover
- 574933 Accessibility: associate labels with FilteredCheckboxTrees
- 574923 [history] Keep the target commit in view
- 574330 [staging view] Use custom drawing for the conflict type indicator
- [merge] Enable overlays for DiffNodes
Bug Fixes
- 575720 [refresh] Ignore paths in closed projects
- Don't refresh the CommitEditor when not visible
- 574018 [merge editor] Fix label when input from stage 2 is saved
- 567910 Fix EGit's search menu contribution
- 574806 Don't refresh on working tree changes for non-EGit repositories
- 575251 [osgi] TransportConfigurator needs to wait for the workspace
- 358232 [blame] Fix creating an enriched hover control
- 433073 [blame] Update revision information when HEAD changes
- CommitSelectionDialog: restrict to single selection
- 575414 Don't try to update diff input on closed diff editor
- 574780 [compare] Ensure HiddenResources can create linked IFiles
- 574923 [history] Fix showing old branches
- Fix HistoryPageInput.equals()
- 572886 [blame] Follow in history only if linking with selection enabled
- 574806 Change singletons to enumeration literals to make them thread-safe
- 542597 [index diff] Don't wait for the workspace lock
Build and Release Engineering
Update dependencies
- orbit to R20210825222808 for 2021-09
- org.apache.commons.compress to 1.20.0.v20210713-1928
- org.bouncycastle.bcpg to 1.69.0.v20210713-1924
- org.bouncycastle.bcpkix to 1.69.0.v20210713-1924
- org.bouncycastle.bcprov to 1.69.0.v20210713-1924
- add org.bouncycastle.bcutil 1.69.0.v20210713-1924
- relax version range of hamcrest and assertj dependencies
- jgit updated to hamcrest 2.2.0 and assertj 2.20.2
- egit cannot yet update to these versions since e.g. swtbot has a hard requirement for hamcrest 1.1.
- jetty to 9.4.43.v20210629
- com.google.gson to 2.8.7.v20210624-1215
- javaewah to 1.1.12.v20210622-2206
- org.apache.sshd.osgi to 2.7.0.v20210623-0618
- org.apache.sshd.sftp to 2.7.0.v20210623-0618
- org.tukaani.xz to 1.9.0.v20210624-1259
Miscellaneous
- Add 4.21 target platform
- Update 4.20 target platform to use final 4.20 release
- Move the EGitCredentialsProvider to EGit core
- [releng] Force --release and use BREE to run tests. Make the EGit build work if code is compiled with a Java > 1.8. This prepares for moving the BREE to Java 11: when we do that, we will need to be able to build nightly with and against Java 11, but the stable branch against Java 1.8.
Documentation
- CONTRIBUTING: add excplicit link to ECA
- CONTRIBUTING: Use standard markdown format
- Add Eclipse code of conduct and security policy