egit/eclipse.git
16 months agoEGit v5.11.0.202103031150-rc1v5.11.0.202103031150-rc1
Matthias Sohn [Wed, 3 Mar 2021 17:13:14 +0000 (3 18:13 +0100)]
EGit v5.11.0.202103031150-rc1

Change-Id: I82787741136cee75e8fb6aa95bdfb7b354130ba4
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
16 months agoMerge branch 'master' into stable-5.11
Matthias Sohn [Wed, 3 Mar 2021 16:45:23 +0000 (3 17:45 +0100)]
Merge branch 'master' into stable-5.11

* master:
  Update Orbit to S20210223232630

Change-Id: I7dcfe644c5727aab465fe64b0005a607e85ac05a

16 months agoUpdate Orbit to S20210223232630
Matthias Sohn [Mon, 1 Mar 2021 21:30:46 +0000 (1 22:30 +0100)]
Update Orbit to S20210223232630

Change-Id: I9991b6bc17c9ce1676939aa9eee23727a6af3744
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
16 months agoMerge branch 'stable-5.11'
Matthias Sohn [Thu, 25 Feb 2021 23:22:39 +0000 (26 00:22 +0100)]
Merge branch 'stable-5.11'

* stable-5.11:
  Prepare 5.11.0-SNAPSHOT builds
  EGit v5.11.0.202102240950-m3

Change-Id: Ia52b215f620b22bfac8710572343a622e68b63f3

16 months agoPrepare 5.11.0-SNAPSHOT builds
Matthias Sohn [Wed, 24 Feb 2021 20:23:15 +0000 (24 21:23 +0100)]
Prepare 5.11.0-SNAPSHOT builds

Change-Id: I71e8d5d149f9a36f23ced4e25729baf90168cc1b
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
16 months agoEGit v5.11.0.202102240950-m3v5.11.0.202102240950-m3
Matthias Sohn [Wed, 24 Feb 2021 15:12:57 +0000 (24 16:12 +0100)]
EGit v5.11.0.202102240950-m3

Change-Id: I0315044162b88f4d64b673d550c9fc17eb6911d3
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
16 months agoMerge branch 'master' into stable-5.11
Matthias Sohn [Wed, 24 Feb 2021 14:29:51 +0000 (24 15:29 +0100)]
Merge branch 'master' into stable-5.11

* master: (30 commits)
  NewRepositoryWizard: allow to set initial branch
  GPG: move preference for signature verification one slot down
  GPG: add keywords to preference pages
  GPG: use sentence capitalization for label
  CommitEditor: use StashListCommand directly
  Update Orbit to S20210216215844
  GPG signing: preference to choose between BC and external GPG
  GPG signing: detect GPG trying to do tty input
  GPG signing: use an external GPG executable
  CommitEditor: minor simplification in HeaderText
  [dark mode] CommitEditor: remove white line above title
  [tag signing] Warn in UI if no key found for user.signingKey
  Support GPG signature verification for commits
  Update jetty to 9.4.36.v20210114
  Revert "EGit Core DebugOptionsListener as a OSGi declarative service"
  Replace EGit core Activator.getPluginId() by Activator.PLUGIN_ID
  Eliminate Activator.getPluginId() in EGit UI
  [osgi] Let the framework run the configuration check
  [osgi] Register template variable resolvers in StartEventListener
  EGit Core DebugOptionsListener as a OSGi declarative service
  ...

Change-Id: Ib44c4b96846161766c40034d3f3c174c68a72aaf

16 months agoNewRepositoryWizard: allow to set initial branch
Matthias Sohn [Tue, 23 Feb 2021 22:08:24 +0000 (23 23:08 +0100)]
NewRepositoryWizard: allow to set initial branch

Bug: 564794
Change-Id: Ie09e05ccd0bd82d33f9945fae6dd0f3f20eb9bfb
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
16 months agoGPG: move preference for signature verification one slot down
Thomas Wolf [Mon, 22 Feb 2021 21:33:41 +0000 (22 22:33 +0100)]
GPG: move preference for signature verification one slot down

Somehow this slipped in between "Branch sequence" and "Tag sequence"
and looks out of place there. Keep the two about branches/tags together
and show the new preference below, before the preferences related to
formatting.

Change-Id: I33f4c973b565c9bd0e86ddda6c32ec70abb91c5d
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
16 months agoGPG: add keywords to preference pages
Thomas Wolf [Mon, 22 Feb 2021 12:58:06 +0000 (22 13:58 +0100)]
GPG: add keywords to preference pages

Add "signing", "signature", and "gpg" for the "Committing" preference
page, and add "signing", "signed", and "signature" for the "History"
preference page.

Change-Id: I6c8ca2412c55697767a0bed05e480f5e95f9ffdc
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
16 months agoGPG: use sentence capitalization for label
Thomas Wolf [Mon, 22 Feb 2021 12:53:03 +0000 (22 13:53 +0100)]
GPG: use sentence capitalization for label

Change-Id: Ibd160ac7727ee18e97b3b3cc03c66ca9fef40442
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
16 months agoCommitEditor: use StashListCommand directly
Thomas Wolf [Mon, 22 Feb 2021 08:09:22 +0000 (22 09:09 +0100)]
CommitEditor: use StashListCommand directly

Minor simplification avoiding a spurious warning about a closeable
resource (the Git instance) not being closed.

Change-Id: Ib927ed2b632d166dfb78f20de39ab5116134e6dc
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
16 months agoUpdate Orbit to S20210216215844
Matthias Sohn [Sat, 20 Feb 2021 23:03:59 +0000 (21 00:03 +0100)]
Update Orbit to S20210216215844

Change-Id: I6bde1479636c64679783a47bb3af9b7b1262c7fb
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
16 months agoGPG signing: preference to choose between BC and external GPG
Thomas Wolf [Thu, 18 Feb 2021 16:10:51 +0000 (18 17:10 +0100)]
GPG signing: preference to choose between BC and external GPG

Like we do for HTTP, and like we did for SSH: give the user a
preference to choose which implementation is to be used for signing
commits or tags. Default (for now) is the Bouncy Castle library.

Add the preference to the "Committing" preference page.

JGit-Dependency: I6201f98d4b1704a053159967b8adacd98e368522
Change-Id: Iedf0209635e903b2919d6ec4d201aaa389391d1e
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
16 months agoGPG signing: detect GPG trying to do tty input
Thomas Wolf [Thu, 18 Feb 2021 16:26:28 +0000 (18 17:26 +0100)]
GPG signing: detect GPG trying to do tty input

Some GPG installations may be configured to request user input for
passphrases or smartcard PINs via a terminal. When EGit invokes GPG,
there is no terminal, and the gpg command fails.

Detect this case and throw an exception with a descriptive message.
Report this error to the user in a dedicated ErrorDialog that shows
a "help" button. Set a help context, and provide a dedicated help
page explaining possible causes of and potential remedies for the
problem.

Change-Id: Idd95d1394b6fbb0f443e0efa7ec8cb3940236c1f
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
16 months agoGPG signing: use an external GPG executable
Thomas Wolf [Sun, 24 Jan 2021 00:09:02 +0000 (24 01:09 +0100)]
GPG signing: use an external GPG executable

Don't rely on JGit's GPG signer based on BouncyCastle. BouncyCastle
in Eclipse is crippled; it lacks the patent-encumbered AES/OCB cipher
that is needed to decrypt encrypted private keys stored by GPG in the
Extended Key Format. Also, the JGit BouncyCastle GpgSigner has to rely
on a number of assumptions about GPG internals. Compare bug 570501.

Instead use a GpgSigner implementation that uses an external GPG
executable for signing. That way it is guaranteed that signing works
if it works in command-line git. Delegate all passphrase handling to
the external GPG. This gives automatic integration with the native
keychain and with gpg-agent.

Add a new EGit preference at Git->Committing where the user can specify
the path to a GPG executable. EGit finds the GPG to use

* via the EGit preference, if set, otherwise
* via the git config gpg.program, if set, otherwise
* by looking on $PATH for an executable named "gpg" (or "gpg.exe").

If the EGit preference is an invalid path or not an executable file,
errors are logged and the EGit preference is ignored. Normally, it
should not be necessary to set the Eclipse preference, but it helps
avoid the lookup on $PATH, and it may help if for some reason the
value specified in the git config should not work with EGit.

Verifying signatures still uses the JGit verifier, which is also based
on BouncyCastle. Verifying doesn't need AES/OCB, and needs only a
public key, which JGit can find without access to GPG internals.

Automated tests for this are not possible on the current build
infrastructure as it would need a GPG installation and keys. The
change has been tested manually on

* OS X 10.14.6 with gpg 2.2.25
* CentOS 7 with gpg 2.0.22
* Win 10 with gpg 2.2.27 (gpg4win 3.1.15)

Bug: 547789
JGit-Dependency: If7e34aeed6ca6636a92bf774d893d98f6d459181
Change-Id: Id95b89cfbf822422668f668a316c5a2d8ee2d847
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
16 months agoCommitEditor: minor simplification in HeaderText
Thomas Wolf [Thu, 18 Feb 2021 20:08:42 +0000 (18 21:08 +0100)]
CommitEditor: minor simplification in HeaderText

Just use a StyledText directly instead of creating it through a
TextViewer.

Change-Id: I8ef0be287a3595f828533b6d7c119f7fc4ee61f4
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
16 months ago[dark mode] CommitEditor: remove white line above title
Thomas Wolf [Thu, 18 Feb 2021 20:02:35 +0000 (18 21:02 +0100)]
[dark mode] CommitEditor: remove white line above title

Make sure the busyLabel's empty image isn't visible at all. It's
used to correctly position our inserted StyledText horizontally.
That StyledText is vertically centered, but the form's busyLabel
apparently wasn't.

Set the busyLabel's bounds to those of the StyledText so that it
is completely behind the text.

Bug: 571294
Change-Id: I13036a357b4b3a1de865fa6398be24ebc1b68b70
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
17 months ago[tag signing] Warn in UI if no key found for user.signingKey
Thomas Wolf [Tue, 16 Feb 2021 11:58:34 +0000 (16 12:58 +0100)]
[tag signing] Warn in UI if no key found for user.signingKey

If git config user.signingKey is set but we cannot find a GPG key,
display a warning in the "Create Tag..." dialog. The warning has a
tooltip giving the user more hints.

Change-Id: I44a0163932588eeac754a998f53424966de31d44
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
17 months agoSupport GPG signature verification for commits
Thomas Wolf [Thu, 7 Jan 2021 12:05:51 +0000 (7 13:05 +0100)]
Support GPG signature verification for commits

Show the signature verification in the commit message viewer in the
history view.

Add a preference to toggle the signature verification on or off, by
default off.

Bug: 547751
JGit-Dependency: If7e34aeed6ca6636a92bf774d893d98f6d459181
Change-Id: I81e31054e340a2b2889c03dd39ad002536a842b5
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
17 months agoUpdate jetty to 9.4.36.v20210114
Matthias Sohn [Sat, 13 Feb 2021 21:22:57 +0000 (13 22:22 +0100)]
Update jetty to 9.4.36.v20210114

Change-Id: Ifaedc1968557a2ef80689cb70dd972f6aefb2d21
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
17 months agoRevert "EGit Core DebugOptionsListener as a OSGi declarative service"
Thomas Wolf [Fri, 12 Feb 2021 15:30:12 +0000 (12 16:30 +0100)]
Revert "EGit Core DebugOptionsListener as a OSGi declarative service"

This reverts commit 494b613aecede47b34aac67b45bce848bac3e098.

This makes Eclipse crash on startup. The framework cannot load
org.eclipse.egit.core.internal.trace.DebugOptionsHandler because
that triggers org.eclipse.core.resources.ResourcesPlugin.start()
too early, which then fails with "The instance data location has
not been specified yet."

Change-Id: I203e557cc40f870466e9836f1eb2650d97d9167d
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
17 months agoReplace EGit core Activator.getPluginId() by Activator.PLUGIN_ID
Thomas Wolf [Thu, 11 Feb 2021 20:28:03 +0000 (11 21:28 +0100)]
Replace EGit core Activator.getPluginId() by Activator.PLUGIN_ID

This is a dumb replacement. More clean-up opportunities exist:

* uses for Status could be simplified with appropriate helper methods.
* some uses for querying preferences could be simplified using
  Platform.getPreferencesService().

Change-Id: I05e3d9d05c7e03a31f426049d18ffbef5d5e1f9e
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
17 months agoEliminate Activator.getPluginId() in EGit UI
Thomas Wolf [Thu, 11 Feb 2021 20:06:00 +0000 (11 21:06 +0100)]
Eliminate Activator.getPluginId() in EGit UI

Use the constant Activator.PLUGIN_ID instead.

This is a dumb replacement. There are more clean-ups possible:

* most uses are to create some Status objects. With appropriate helper
  functions, that could be simplified.
* many uses open a JFace ErrorDialog. Showing the statuses via the
  StatusManager should be preferred, if possible.

Change-Id: Ib322f2fb362737d7faa4cc7b3ab592be52944145
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
17 months ago[osgi] Let the framework run the configuration check
Thomas Wolf [Wed, 10 Feb 2021 07:44:17 +0000 (10 08:44 +0100)]
[osgi] Let the framework run the configuration check

Make the job for running the configuration check an OSGi component
of its own, scheduled on APP_STARTUP_COMPLETE. The configuration
check is fairly expensive, involving file system accesses, so it
must still be a job. But it's not necessary to run it on the UI
thread.

Change-Id: I50b716d42e0f8b4587255dce35c830bb26b0398a
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
17 months ago[osgi] Register template variable resolvers in StartEventListener
Thomas Wolf [Wed, 10 Feb 2021 07:41:40 +0000 (10 08:41 +0100)]
[osgi] Register template variable resolvers in StartEventListener

Move the registration of the template variable resolvers from the UI
Activator to the StartEventListener. That way we don't need a job for
this.

Change-Id: I47a051923df2a2cfd4464f2b0d6984dd0c951d6a
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
17 months agoEGit Core DebugOptionsListener as a OSGi declarative service
Thomas Wolf [Sun, 7 Feb 2021 15:50:18 +0000 (7 16:50 +0100)]
EGit Core DebugOptionsListener as a OSGi declarative service

Remove the DebugOptionsListener from the Activator and make it a
separate OSGi declarative service. Let the framework handle subscribing
and unsubscribing this service.

Change-Id: Iba261d231d693a70c8ee4b6741f1ee7ec99b306f
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
17 months agoEGit UI DebugOptionsListener as a OSGi declarative service
Thomas Wolf [Sun, 7 Feb 2021 15:30:02 +0000 (7 16:30 +0100)]
EGit UI DebugOptionsListener as a OSGi declarative service

Remove the DebugOptionsListener from the Activator and make it a
separate OSGi declarative service. Let the framework handle subscribing
and unsubscribing this service.

Adapt the GitTraceConfigurationDialog, and fix two bugs:

* If the trace location is set to stdout in the PDE trace preferences,
  the trace file may be null. Disable the field and the "Open in Editor"
  button in that case.
* Make the dialog contents always fill the whole available space.

Three notes:

1. The EGit GitTraceConfigurationDialog does not interact well with
   the PDE trace preference page. While EGit picks up changes done
   via the PDE preference page, that preference page does _not_ pick
   up changes done via the EGit dialog.
2. Using a static inner class GitTraceLocation$DebugOptionsHandler did
   not work in Eclipse Neon.3. With the DebugOptionsHandler as a
   separate top-level class it works.
3. The command to open the EGit trace dialog is a bit hidden; it does
   not appear in any menu, and has no key binding. A user can define a
   key binding for it in the Eclipse preferences, though. The command
   is named "Configure Git Debug Trace".

Change-Id: Icfcee3eeb27fe98a92566656c4b7b0c19cf088af
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
17 months agoSimplify the EGit UI Activator by using OSGi declarative services
Thomas Wolf [Sat, 6 Feb 2021 19:06:04 +0000 (6 20:06 +0100)]
Simplify the EGit UI Activator by using OSGi declarative services

The EGit UI Activator contained a lot of code to deal with external
modifications to git repositories. Refactor this into more manageable
components created dynamically by the framework.

First, the FocusHandler: this maintains a flag whether the application
is active, i.e., whether any of its Shells is the current active shell.
This needs the workbench to have been created, and the FocusHandler has
acquired over time some completely unrelated code that just also
happened to need a workbench. To ensure that it initialized itself only
once the workbench was ready, the FocusHandler scheduled a job that
re-scheduled periodically until the workbench was up.

Split this: move the unrelated code (setting icons for EGit core jobs)
to the newly introduced StartEventListener. Move maintaining the
"application active" state to ApplicationActiveListener, a dedicated
OSGi component triggered on the APP_STARTUP_COMPLETE event. At that
point, we are guaranteed that the workbench is ready, so no job is
needed. The ApplicationActiveListener fires a custom event
APPLICATION_ACTIVE whenever the active state changes; the data of the
event is a boolean indicating the new state (true if active, false
otherwise). Make sure an initial event is fired. The event is posted
asynchronously.

Move all the repository scanning and project refreshing code to a new
component ExternalRepositoryScanner, which in turn listens on that new
APPLICATION_ACTIVE event. The framework will create this component
automatically when the first such event is fired; component creation
will be off the UI thread since the event is posted asynchronously.
Schedule a run whenever the state changes from "inactive" to "active"
to resume scanning.

Unregister the DebugOptionsListener on Activator.stop().

Change-Id: I296d5801d62a6f2c0c8da4166aa36270c1b2ad1b
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
17 months agoDiffEditorOutline: simplify presentation toggle
Thomas Wolf [Tue, 9 Feb 2021 20:10:38 +0000 (9 21:10 +0100)]
DiffEditorOutline: simplify presentation toggle

Instead of switching the icon of the toolbar button use a single
image and use IAction.AS_CHECK_BOX. This gives a much more standard
UI. Changing a button's image should be reserved for cases where the
button can have more than two states, as the presentation button in
the staging view or the resource filter button in the history view
toolbar. (Both also have a drop-down menu.)

Use the preference to set the initial state of the button; and update
the preference when the button is toggled. This will make the button
respect the last setting when created (i.e., when a new outline is
opened), but from then on, the states in each outline are independent.

Disable the toolbar buttons if the outline is empty.

Bug: 571032
Change-Id: I487cb24c690896b8e63bd381774071d6df7dea8c
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
17 months agoPrevent NPE in diff outline
Alexander Nittka [Mon, 8 Feb 2021 17:57:34 +0000 (8 18:57 +0100)]
Prevent NPE in diff outline

When comparing two "identical" commits using unified diff the root
folder is null. In this case the outline must not call compactify.

Bug: 571032
Change-Id: I65db255230f300b2fb6ca33a20c08ee2e6f6c894
Signed-off-by: Alexander Nittka <alex@nittka.de>
17 months agoAdapt to JGit GpgObjectSigner interface changes
Thomas Wolf [Thu, 21 Jan 2021 16:33:05 +0000 (21 17:33 +0100)]
Adapt to JGit GpgObjectSigner interface changes

Pass the GpgConfig through SignatureUtils to the GpgObjectSigner, and
simplify the RewordCommitOperation a little by using the GpgConfig
and passing it on to the signer.

JGit-Dependency: I427f83eb1ece81c310e1cddd85315f6f88cc99ea
Change-Id: I5a3aa6cd1b6e9b9a89b503fab913a159dc4498a2
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
17 months agoTry to stabilize core tests
Thomas Wolf [Sun, 7 Feb 2021 18:16:19 +0000 (7 19:16 +0100)]
Try to stabilize core tests

Looks like the asynchronous file timestamp resolution determination is
sometimes still trying to determine the resolution when a test finishes
and wants to delete the git repository. Avoid this by forcing this to
run synchronously.

Add a lot of debug output when deleting the git directory at the end of
a test fails.

Change-Id: Id79b423ec85eaa0d7d3820ddc79d8d9e24949d50
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
17 months agoRemove unused preference REFRESH_ON_INDEX_CHANGE
Thomas Wolf [Sat, 6 Feb 2021 23:19:35 +0000 (7 00:19 +0100)]
Remove unused preference REFRESH_ON_INDEX_CHANGE

REFRESH_ON_INDEX_CHANGE was unused since commits 110b54a5 and the
follow-up commit 4eb4faf6 in autumn 2019.

Change-Id: Idde9d7f5f6227519db1728e2dfa3911a656aab4b
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
17 months agoUse an OSGi declarative service to manage some EGit components
Thomas Wolf [Fri, 5 Feb 2021 22:05:37 +0000 (5 23:05 +0100)]
Use an OSGi declarative service to manage some EGit components

Add a StartEventListener OSGi declarative service to start things
that require the workbench to have been created. If the workbench
is already running when the service is activated, it initializes
the EGit components right away. Otherwise, the handler is notified
on the APP_STARTUP_COMPLETED event and initializes the EGit components
then.

This change uses this mechanism for the SelectionRepositoryStateCache
only, but it might be used to manage other EGit internal components
in the future.

Maybe some parts of EGit might themselves become OSGi declarative
services and deal with their own activation as they need. The single
StartEventListener is a useful bridge facilitating the move to OSGi
declarative services while minimizing code changes, though.

Change-Id: Ic12507ef24dc940a25028ff2e1a1b77f64276078
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
17 months ago[performance] ResourceStateFactory: avoid string concatenation
jkubitz [Fri, 5 Feb 2021 00:33:39 +0000 (5 01:33 +0100)]
[performance] ResourceStateFactory: avoid string concatenation

String concatenation allocates new objects, which may put extra
pressure on the garbage collector. Avoid ephemeral object
allocation in a hot spot of ResourceStateFactory.

Bug: 570962
Change-Id: If0e61c50fc04426c123643e1df582058bcd9580c
Signed-off-by: jkubitz <jkubitz-eclipse@gmx.de>
17 months agoUse Orbit I20210203173513 for sshd 2.6.0
Thomas Wolf [Wed, 3 Feb 2021 22:57:15 +0000 (3 23:57 +0100)]
Use Orbit I20210203173513 for sshd 2.6.0

This also updates apache.httpclient to 4.5.13 and apache.httpcore to
4.4.14.

JGit-Dependency: I2d24a1ce4cc9f616a94bb5c4bdaedbf20dc6638e
Change-Id: Ia73d627a7e26020f604781f9c118cb984dababa3
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
17 months agoMerge branch 'stable-5.11'
Matthias Sohn [Wed, 3 Feb 2021 21:58:23 +0000 (3 22:58 +0100)]
Merge branch 'stable-5.11'

* stable-5.11:
  Prepare 5.11.0-SNAPSHOT builds
  EGit v5.11.0.202102031030-m2

Change-Id: I170e877c799848f9f3feb296ddcb7df2e0dfa834

17 months agoPrepare 5.11.0-SNAPSHOT builds
Matthias Sohn [Wed, 3 Feb 2021 20:19:54 +0000 (3 21:19 +0100)]
Prepare 5.11.0-SNAPSHOT builds

Change-Id: I2b6aa07859dda702ca809084eac58eccfbf537a6
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
17 months agoEGit v5.11.0.202102031030-m2v5.11.0.202102031030-m2
Matthias Sohn [Wed, 3 Feb 2021 15:48:30 +0000 (3 16:48 +0100)]
EGit v5.11.0.202102031030-m2

Change-Id: If8cb2ebb9b120ea979405af9d0cb3591010652fb
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
17 months agoMinor cleanup in DiffEditor
Thomas Wolf [Sun, 31 Jan 2021 22:05:14 +0000 (31 23:05 +0100)]
Minor cleanup in DiffEditor

Change-Id: I5706537d3572abfc9aedb3c1839b2340cb8d2388
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
17 months agoFix: Missing whitespace after branch name in UI text.
Max Hohenegger [Sun, 31 Jan 2021 14:03:52 +0000 (31 15:03 +0100)]
Fix: Missing whitespace after branch name in UI text.

Gitflow init dialog would show "Branch 'xyz'does not..."

Change-Id: I0794552c2e7b59ac4e05ce789fea1ea8a8ef88f3

17 months agoBug 536645 - Dont use SWT activation events to enable global actions
Simeon Andreev [Mon, 18 Jan 2021 14:28:11 +0000 (18 15:28 +0100)]
Bug 536645 - Dont use SWT activation events to enable global actions

This change removes listening to SWT activation events to enable global
actions added via ActionUtils, originally added for bug 536645. Its
possible that FocusTracker view focus handling conflicts with this event
handling. In particular an activation event can be sent for one widget,
followed by a focus gained event for another widget, without
deactivation/focus lost events in-between (those events are sent
afterwards). This results in other handler conflicts.

The change leaves SWT deactivation event handling, since that still
fixes the original problem reported in bug 536645: an SWT deactivation
event can come "on time" to prevent some handler conflicts.

Change-Id: Ic0a7ed7bc4fe46e5ca4b68a9ed476c6e7cddf8fe
Signed-off-by: Simeon Andreev <simeon.danailov.andreev@gmail.com>
18 months ago[releng] Update year in copyright notices for features & branding
Thomas Wolf [Fri, 15 Jan 2021 11:50:38 +0000 (15 12:50 +0100)]
[releng] Update year in copyright notices for features & branding

Bump upper end of range to 2021.

Change-Id: I07dce3a96788a0961f589375e85af4feb5e1ada2
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
18 months agoLink the commit viewer with the properties view
Thomas Wolf [Fri, 15 Jan 2021 07:47:49 +0000 (15 08:47 +0100)]
Link the commit viewer with the properties view

Move all the new property sheet related classes that work with general
git objects into a new package, and enable support for the property
view also in the commit viewer.

When the commit viewer is active, the property view shows the data of
that commit. With the properties view visible the user can thus see
information about the commit even when the diff or notes page is
active.

Change-Id: I62c1c4f19b31f78aad3dce63d552796f0ebd51ea
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
18 months agoAllow to open a commit from the properties view
Thomas Wolf [Tue, 12 Jan 2021 23:03:53 +0000 (13 00:03 +0100)]
Allow to open a commit from the properties view

When the properties view shows a commit (currently only as target of
a tag), provide a way to open that commit in the commit viewer, or to
show it in the history view, both directly from the properties view.

Since the context menu on the viewer used in the PropertySheetPage is
not accessible and not extendable either, use a CellEditor that shows
two buttons to perform the actions. (A ToolBar cannot be used since
we couldn't capture the Esc-key.)

Change-Id: I75827ee7217a186d52cbc22611ce958e8fe85f3b
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
18 months agoMerge "Use short commit id in 'Apply stash' job name"
Thomas Wolf [Fri, 15 Jan 2021 09:24:03 +0000 (15 04:24 -0500)]
Merge "Use short commit id in 'Apply stash' job name"

18 months agoFix order in DiffEditorOutlinePage again
Thomas Wolf [Fri, 15 Jan 2021 08:33:13 +0000 (15 09:33 +0100)]
Fix order in DiffEditorOutlinePage again

This reverts commit e7a09e095b99cb380d9e569fda9e8c5e248fb06d, which
sorted subfolders wrongly. Fix the comparisons in the
DiffEditorOutlinePage again.

Change-Id: If761c2ba85fdd2ab2982896c1da44b6da216b30e
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
18 months ago[staging view] Workspace root doesn't have any IFile children
Thomas Wolf [Thu, 14 Jan 2021 10:21:37 +0000 (14 11:21 +0100)]
[staging view] Workspace root doesn't have any IFile children

Don't try to look up an IFile in the workspace root; the Eclipse
resource framework will throw an exception.

Bug: 570340
Change-Id: Iaa4d4ad1c989f79076b9d558073fde92347e36df
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
18 months ago[rebase interactive] Use correct parent shell for prompting
Thomas Wolf [Thu, 14 Jan 2021 08:52:39 +0000 (14 09:52 +0100)]
[rebase interactive] Use correct parent shell for prompting

Opening a modal dialog from a background thread via Display.syncExec()
must use the correct shell. Just using the active window's shell is
wrong and may lead to UI locks if another modal dialog is open. Use
getModalShellProvider().getShell() instead.

Bug: 570322
Change-Id: I43532e61615d3cbf0b144bd3b16be5bd46479aea
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
18 months agoUse short commit id in 'Apply stash' job name
Michael Keppler [Mon, 4 Jan 2021 14:39:06 +0000 (4 15:39 +0100)]
Use short commit id in 'Apply stash' job name

When other jobs are waiting for the 'Apply stash' job, then that waiting
message is badly shortened to something like "Waiting for
'...2347128abc12398719191abcd1212131' to finish" in the progress view or
the modal dialog popping up. Using a short id should reduce that
problem.

Change-Id: I88d6985bf7a58926c0e246525635d261baa0a361
Signed-off-by: Michael Keppler <Michael.Keppler@gmx.de>
18 months ago[tag properties] Show full message in a pop-up
Thomas Wolf [Mon, 11 Jan 2021 11:25:35 +0000 (11 12:25 +0100)]
[tag properties] Show full message in a pop-up

Show the full message of a tag or commit in the properties view in
an IInformationControl when the property is selected, similar to the
information hover pop-ups in text editors.

The IInformationControl framework from JFace needs quite a bit of setup,
though. Although the JFace support is prepared for being used with
arbitrary controls, the Eclipse platform provides only built-in support
for text editors.

Change-Id: Ieef3b22044b956e5368f962206a68a4df86f6853
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
18 months agoAdd target platform for eclipse 4.19 staging
Matthias Sohn [Tue, 12 Jan 2021 22:44:11 +0000 (12 23:44 +0100)]
Add target platform for eclipse 4.19 staging

Change-Id: I499bf52e094ffa8ca5f9d55b25622a3518bcf338
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
18 months agoUpdate orbit to S20210105214148 and com.google.gson to 2.8.6
Matthias Sohn [Tue, 12 Jan 2021 22:34:11 +0000 (12 23:34 +0100)]
Update orbit to S20210105214148 and com.google.gson to 2.8.6

Change-Id: I3b9722a64dc053c28909ef3111dfde5efa2e205d
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
18 months agoProperty sheet support for tags
Michael Keppler [Sun, 5 Aug 2018 12:50:46 +0000 (5 14:50 +0200)]
Property sheet support for tags

When selecting a tag in the repository view, the properties view now
shows information about the tag and its target (recursively in case
the tag points at another tag).

The object pointed to is shown as a nested property, which itself is
expandable if it's a tag or commit. PersonIdents for taggers and also
for commit authors and committers are shown also as expandable nested
properties, with sub-nodes for name, e-mail, and the date formatted
according to the EGit date preferences.

When a tag's properties are shown, the property page refreshes on date
format changes.

Deferred to follow-up changes:
* Showing information about the signature of signed tags; that needs
  signature verification in JGit first.
* Showing the full tag or commit message if different from the short
  message.

Bug: 537695
Change-Id: Ie8c3a51a4f07795a2d28b561ce2d53668b20c723
Signed-off-by: Michael Keppler <Michael.Keppler@gmx.de>
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
18 months ago[repo view] Clean-up integration with the properties view
Thomas Wolf [Fri, 8 Jan 2021 20:54:07 +0000 (8 21:54 +0100)]
[repo view] Clean-up integration with the properties view

* Move constants to RepositoryRemotePropertySource
* Use ConfigConstants for "remote" and "url"
* Enable nested properties in RepositoryPropertySourceProvider
* Use a nested ListPropertySource for multi-valued properties
* Fix updating the view toolbar

The net user-visible result is very minor: when there are, e.g.,
multiple fetch RefSpecs, they are now shown as "[spec1, spec2]"
instead of "[spec1][spec2]", and the property is an expandable
node that shows each RefSpec on its own line when expanded.

Change-Id: Ia12ee31469f4192b5a0a3771118accc8297a4521
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
18 months agoUpdate jetty to 9.4.35.v20201120
Matthias Sohn [Sun, 10 Jan 2021 19:57:55 +0000 (10 20:57 +0100)]
Update jetty to 9.4.35.v20201120

Add org.eclipse.jetty.util.ajax which is required by
org.eclipse.jetty.servlet [1].

[1] https://search.maven.org/artifact/org.eclipse.jetty/jetty-servlet/9.4.35.v20201120/jar

Change-Id: I23faf487713c3faaa887cd8dc4b027a6b78d2b05
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
18 months agoMerge branch 'stable-5.10'
Matthias Sohn [Sun, 10 Jan 2021 19:40:47 +0000 (10 20:40 +0100)]
Merge branch 'stable-5.10'

* stable-5.10:
  Update egit-4.18 target platform to use release repository

Change-Id: Icd2dac938bf9d504dac7e9f45f2f8d846b58446b
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
18 months agoDiffEditorOutlinePage: swap icons for "Toggle Presentation" button
Thomas Wolf [Wed, 30 Dec 2020 18:59:51 +0000 (30 19:59 +0100)]
DiffEditorOutlinePage: swap icons for "Toggle Presentation" button

This makes the button icon and tooltip describe what will happen
when the user clicks the button. Previous code showed a list icon
that when clicked would change the presentation to a compact tree,
or a folder icon while clicking it would change to a flat list.
That's confusing.

Newly added tooltips clarify the meaning of the button.

Change-Id: I90bb1ef316502dac9e9ada6309a4c51173ca18fd
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
18 months agoFix order of files in DiffEditorOutlinePage
Thomas Wolf [Wed, 30 Dec 2020 18:45:42 +0000 (30 19:45 +0100)]
Fix order of files in DiffEditorOutlinePage

The outline of the DiffEditor sorted files differently than they
appeared in the DiffDocument, and also differently than in the
CommitFileDiffViewer or in the staging view.

Use the same comparator as elsewhere to get consistent sorting.

Change-Id: I21e1c3e906b9889c676bc2f94832946240987fa0
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
18 months agoInclude key ID in message when no GPG key can be found
Thomas Wolf [Mon, 28 Dec 2020 23:05:39 +0000 (29 00:05 +0100)]
Include key ID in message when no GPG key can be found

The CommitMessageComponent checks up-front whether a signing key can
be found. BouncyCastleGpgLocator.canLocateSigningKey() just returns a
boolean, and thus the exception message is dropped. Include the key ID
in EGit's error dialog; this can help identify problems if no key can
be found.

Bug: 547789
Change-Id: I9ce94247436d0ebbbd0fc6e17adac44af2572723
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
18 months agoClean up event listener in ActionUtils
Thomas Wolf [Fri, 25 Dec 2020 16:51:36 +0000 (25 17:51 +0100)]
Clean up event listener in ActionUtils

Register the SWT listener also for dispose events and remove the JFace
disposal listener.

Change-Id: I297cb662e01ebd25a52414cb0f29a298bdaec723
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
18 months agoBug 536645 - Staging view conflicting handlers org.eclipse.ui.edit.copy
Simeon Andreev [Fri, 11 Dec 2020 15:03:59 +0000 (11 16:03 +0100)]
Bug 536645 - Staging view conflicting handlers org.eclipse.ui.edit.copy

The Staging view registers two actions for 'org.eclipse.ui.edit.copy'.
One with StagingView.createSelectionPathCopyAction() and one with
SpellcheckableMessageArea.configureContextMenu(). Each action is meant
for a specific control, with ActionUtils.setGlobalActions() using a
focus listener to enable/disable actions based on the active control.

This handling can result in errors when switching tabs in the part stack
that contains the Staging view. Namely, the SWT focus lost event can
come after the SWT activation event. Conflicting handlers are reported
during the SWT activation event; the focus lost event handling in
ActionUtils.setGlobalActions() does not deactivate handlers "on time".

This changes adds SWT activation/deactivation/dispose handlers on top of
the focus listeners, to ensure handler deactivation functions also in
cases as the above.

Change-Id: I98b4d9a82eb4837fec217c24ff24a9972d0e3289
Signed-off-by: Simeon Andreev <simeon.danailov.andreev@gmail.com>
19 months agoUpdate egit-4.18 target platform to use release repositorystable-5.10
Matthias Sohn [Thu, 17 Dec 2020 22:23:20 +0000 (17 23:23 +0100)]
Update egit-4.18 target platform to use release repository

Change-Id: Ie27b7399a1bd17719306e1c86109d55f9d187318
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
19 months ago[oomph] Add missing target platforms
Thomas Wolf [Thu, 17 Dec 2020 08:31:02 +0000 (17 09:31 +0100)]
[oomph] Add missing target platforms

Also set egit-4.6 as default as it's the current EGit baseline.

Change-Id: Ia6b99855abc3a9c3ac65ef1dacccff2a1f102738
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
19 months ago[oomph] Update and cycle API baselines
Thomas Wolf [Sun, 13 Dec 2020 23:01:37 +0000 (14 00:01 +0100)]
[oomph] Update and cycle API baselines

Add 5.10.0, remove 5.7.0

Change-Id: I17aec91c9a7585a682cc0143f0feff6cc6cbdf94
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
19 months agoCreateTagDialog: fix determining an existing tag
Thomas Wolf [Fri, 11 Dec 2020 10:24:58 +0000 (11 11:24 +0100)]
CreateTagDialog: fix determining an existing tag

setExistingTag() expects a RevTag (annotated tag) or a Ref for a
lightweight tag. However, it was given a RevCommit in the latter
case, and then disabled the "force replace existing tag" checkbox
because it handled that as a non-existing tag.

Be more careful when resolving the tag ref, and pass the Ref when it
resolves to a non-RevTag object (in practice, to a RevCommit).

Bug: 569653
Change-Id: If1588b28475afdf540d13eaaab93cbafcdc007a9
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
19 months agoCreateTagDialog: avoid caret jumping to the front
Thomas Wolf [Fri, 11 Dec 2020 10:19:02 +0000 (11 11:19 +0100)]
CreateTagDialog: avoid caret jumping to the front

When changing the tag name field to the name of an existing tag, try to
keep the text caret where it was.

Bug: 569652
Change-Id: Ie909849f8cc4c2be8f8a3aa70f42972d79a658d7
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
19 months agoSupport signed tags
Thomas Wolf [Tue, 8 Dec 2020 17:38:31 +0000 (8 18:38 +0100)]
Support signed tags

JGit's TagCommand has learned to sign tags. Add a checkbox to the
CreateTagDialog where the user can specify whether the new tag shall
be signed. Information for signing is taken from the git config. The
checkbox is added only if signing is possible at all -- if we can't
find a signing key, tags will never be signed, and the checkbox is
not shown at all.

A signed tag is always an annotated tag, even if the message is empty.

Rewrite TagOperation to make use of JGit's TagCommand, and hide the
complexities of setting the correct parameters for TagCommand. Adapt
all users of TagOperation to use the new interface.

Change-Id: I78162dc5a1c51cc345eaab9d801e21011a1a3f52
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
19 months agoReword a commit without the rebase interactive machinery
Thomas Wolf [Sun, 6 Dec 2020 22:02:52 +0000 (6 23:02 +0100)]
Reword a commit without the rebase interactive machinery

Using interactive rebase for rewording a commit has the disadvantage
that it first rewinds the working tree and then rebases the whole
history from the commit amended to HEAD. This leads to resource change
events and triggers potentially time-consuming builds.

This is not necessary. Rewording a commit message does not change
anything in the working tree or in the index, and it can be done as a
pure repository operation without touching either.

Re-implement RewordCommitOperation by doing the whole rebase
non-interactively in memory: simply create a copy of the original
commit with the new message, then create copies of the children,
patching in new created commits in place of former parents. At the
end, update HEAD and ORIG_HEAD.

While doing so, re-sign commits that were signed and committed by the
same committer.

As a side effect, this new way can also reword merge commit messages.

Bug: 562602
Change-Id: I50dbfa2f4f8246b0c59ef03ad8dd7a3e465fa9d9
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
19 months agoMerge branch 'stable-5.10'
Matthias Sohn [Tue, 8 Dec 2020 20:59:24 +0000 (8 21:59 +0100)]
Merge branch 'stable-5.10'

* stable-5.10:
  Prepare 5.10.1-SNAPSHOT builds
  EGit v5.10.0.202012080955-r
  Update documentation for 5.10

Change-Id: Ic65e8a4339ddba6016536985be363a06a88b80f9
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
19 months agoPrepare 5.10.1-SNAPSHOT builds
Matthias Sohn [Tue, 8 Dec 2020 19:07:59 +0000 (8 20:07 +0100)]
Prepare 5.10.1-SNAPSHOT builds

Change-Id: If3f02b4fd201980da57b7b68f784f1e41a784ba7
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
19 months agoEGit v5.10.0.202012080955-rv5.10.0.202012080955-r
Matthias Sohn [Tue, 8 Dec 2020 15:11:15 +0000 (8 16:11 +0100)]
EGit v5.10.0.202012080955-r

Change-Id: Ib7518c03d74ff3e4c1595bffee404457b725c1bd
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
19 months agoUpdate documentation for 5.10
Matthias Sohn [Tue, 8 Dec 2020 13:56:21 +0000 (8 14:56 +0100)]
Update documentation for 5.10

Change-Id: I15a0786a878cf7c1d958a29e01fdbcea97c5d451
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
19 months agoDrop JSch
Thomas Wolf [Sat, 28 Nov 2020 22:06:13 +0000 (28 23:06 +0100)]
Drop JSch

Remove all things related to JSch. Apache MINA sshd works well;
there's no reason to keep old code around.

The JGit JSch fragment is left in the p2 repository, though, until
JGit drops it. EGit has no dependency on JSch anymore, nor on that
fragment from JGit.

JSch is left in the EGit target platforms so that one can still
develop EGit and JGit in the same workspace. It can be removed from
the EGit target platforms once JGit drops JSch.

Change-Id: I808eeb188eaf07c8510b1b0e425269a2d0abe0e6
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
19 months agoPrepare 5.11.0-SNAPSHOT builds
Matthias Sohn [Wed, 2 Dec 2020 21:35:51 +0000 (2 22:35 +0100)]
Prepare 5.11.0-SNAPSHOT builds

Change-Id: Ic692a21c1278d1fd2daa5194d465d76c1cec67a0
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
19 months agoMerge branch 'stable-5.10'
Matthias Sohn [Wed, 2 Dec 2020 21:35:07 +0000 (2 22:35 +0100)]
Merge branch 'stable-5.10'

* stable-5.10:
  Prepare 5.10.0-SNAPSHOT builds
  EGit v5.10.0.202012021225-rc1
  Don't install 3rd party dependency bundles via features

Change-Id: Id6a68d926ed3d5ebd7e95e8fa2e79f1e0872c7ae

19 months agoPrepare 5.10.0-SNAPSHOT builds
Matthias Sohn [Wed, 2 Dec 2020 20:58:58 +0000 (2 21:58 +0100)]
Prepare 5.10.0-SNAPSHOT builds

Change-Id: Ic4b47596bad5b34dc31aecdeff86317b5aa03c36
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
19 months agoEGit v5.10.0.202012021225-rc1v5.10.0.202012021225-rc1
Matthias Sohn [Wed, 2 Dec 2020 18:07:14 +0000 (2 19:07 +0100)]
EGit v5.10.0.202012021225-rc1

Change-Id: Ie18c2093cc4b19c6683301910b75e851a39fa8f1
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
19 months agoDon't install 3rd party dependency bundles via features
Matthias Sohn [Fri, 2 Oct 2020 20:05:11 +0000 (2 22:05 +0200)]
Don't install 3rd party dependency bundles via features

Instead provide them only in the p2 repository. This way they are
available when installing from the jgit p2 repository but we are not
enforcing the version we bring but can also use the version available in
Eclipse if it matches our requirements.

Bug: 514326
Bug: 566475
Change-Id: I6cd88aef4f8bc48b5ea09caaba5fc8861628d7ea
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
19 months agoMerge branch 'master' into stable-5.10
Matthias Sohn [Wed, 2 Dec 2020 15:41:00 +0000 (2 16:41 +0100)]
Merge branch 'master' into stable-5.10

* master:
  GitURI: import SCHEME_SCM
  Update Orbit to R20201130205003 for 2020-12
  Compress "Fetch From Gerrit" Message
  Fix AnyEdit update site URL

Change-Id: If460d0c9e4d167b67ac2bfb524783561ff5ad094
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
19 months agoGitURI: import SCHEME_SCM
Thomas Wolf [Sat, 28 Nov 2020 22:25:23 +0000 (28 23:25 +0100)]
GitURI: import SCHEME_SCM

Resolves a TODO.

Change-Id: I2c395c5634266ba2b69d72beecf9b79955c2482c
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
19 months agoUpdate Orbit to R20201130205003 for 2020-12
Matthias Sohn [Mon, 30 Nov 2020 18:42:48 +0000 (30 19:42 +0100)]
Update Orbit to R20201130205003 for 2020-12

Workaround bug 568379 by using org.eclipse.mylyn.commons.sdk.feature
from 2020-09 until this feature is re-added to the simrel build.

Change-Id: Id00dc50666979709151e9426f00223451c7ced66
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
19 months agoCompress "Fetch From Gerrit" Message
Chenhui Xu [Tue, 6 Oct 2020 22:29:47 +0000 (7 00:29 +0200)]
Compress "Fetch From Gerrit" Message

Reword message dialog to be shorter and more concise. Page title "Fetch
a change from Gerrit into repository {repo}" changed into "Fetch into
repository {repo}". And message "Please select a Gerrit URI and change
to fetch" into "Please select a Gerrit URI and change".

Bug: 535008
Change-Id: I69e62912a862ea61273e69185dcf6dc3904ec835
Signed-off-by: Chenhui Xu <c.xu@vogella.com>
19 months agoFix AnyEdit update site URL
Michael Keppler [Sat, 21 Nov 2020 13:21:46 +0000 (21 14:21 +0100)]
Fix AnyEdit update site URL

Andrey has removed the old homepage and hosts everything on github now.
Without this, the Oomph setup of the egit IDE is broken.

Change-Id: I9b31bd8c80800305066624f2538ada7e1b752615
Signed-off-by: Michael Keppler <Michael.Keppler@gmx.de>
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
19 months agoMerge branch 'stable-5.10'
Matthias Sohn [Wed, 25 Nov 2020 21:37:26 +0000 (25 22:37 +0100)]
Merge branch 'stable-5.10'

* stable-5.10:
  Prepare 5.10.0-SNAPSHOT builds
  EGit v5.10.0.202011251205-m3
  Prepare 5.10.0-SNAPSHOT builds
  EGit v5.10.0.202011041322-m2

Change-Id: Id3f517a7df9c86fa68cf69ac744f70f2aaee8e11

19 months agoPrepare 5.10.0-SNAPSHOT builds
Matthias Sohn [Wed, 25 Nov 2020 21:36:39 +0000 (25 22:36 +0100)]
Prepare 5.10.0-SNAPSHOT builds

Change-Id: I36f05bb10a0dd472e9a5038abc300f2a0a500bf1
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
19 months agoEGit v5.10.0.202011251205-m3v5.10.0.202011251205-m3
Matthias Sohn [Wed, 25 Nov 2020 17:26:43 +0000 (25 18:26 +0100)]
EGit v5.10.0.202011251205-m3

Change-Id: Id7e58bd4a6e45ce10f1d58526c6ddddb6cbb602a
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
19 months agoMerge branch 'master' into stable-5.10
Matthias Sohn [Wed, 25 Nov 2020 16:52:22 +0000 (25 17:52 +0100)]
Merge branch 'master' into stable-5.10

* master:
  Enable "Replace with HEAD" in more cases
  Update Orbit to S20201118210000 and add target for 4.18
  Update author & committer icons to use Mylyn SVG
  Update Orbit link in p2 update site
  Update Orbit to I20201111205634
  Fix IgnoreOperation for symlinks

Change-Id: I8e0c8092ab4376952cc47ab538834577733bb591

19 months agoEnable "Replace with HEAD" in more cases
Thomas Wolf [Sun, 15 Nov 2020 21:40:33 +0000 (15 22:40 +0100)]
Enable "Replace with HEAD" in more cases

The action was enabled only for RepositoryState.SAFE, meaning one
could not use it during a rebase or merge. But actually that condition
is unnecessarily restrictive; the operation can be allowed anytime
provided the repository is not bare and has a HEAD.

Improve the property testers to be able to express the condition "all
selected items are in a repository, which is non-bare and has a head"
efficiently: allow tester arguments to be prefixed by "!" to signify
logical negation. Add a new property test for "hasHead". Then change
the repository test in the enablement condition of the command from
"isSafe" to "!isBare,hasHead". (Multiple arguments are ANDed.)

Adapt the handler's isEnabled(), and add a UI test using "Replace with
HEAD" to resolve a conflict.

Bug: 568038
Change-Id: I7e586c3fa35d0c5b66c8d07a9504105d0765ce77
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
19 months agoUpdate Orbit to S20201118210000 and add target for 4.18
Matthias Sohn [Fri, 20 Nov 2020 10:25:53 +0000 (20 11:25 +0100)]
Update Orbit to S20201118210000 and add target for 4.18

- replace target platform for 4.17 staging with final release
- add target platform for Eclipse 4.18 (2020-12)

Change-Id: Ibca6008668002dd3166a83de3a1fa5a4e8cf953d
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
20 months agoUpdate author & committer icons to use Mylyn SVG
Thomas Wolf [Tue, 10 Nov 2020 16:15:02 +0000 (10 17:15 +0100)]
Update author & committer icons to use Mylyn SVG

Use the same SVG as egit-github for the little blue person in the
author and committer icons.

Change-Id: I0b33548c0790fea3e29fa17f83ef2603899d2e8f
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
20 months agoUpdate Orbit link in p2 update site
Thomas Wolf [Sun, 15 Nov 2020 11:12:55 +0000 (15 12:12 +0100)]
Update Orbit link in p2 update site

Use Orbit I20201111205634 as in the target platforms.

Change-Id: I5f7b3fd4e95438d481f87fc161cc235c087b9820
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
20 months agoUpdate Orbit to I20201111205634
Matthias Sohn [Sat, 14 Nov 2020 20:53:14 +0000 (14 21:53 +0100)]
Update Orbit to I20201111205634

and update
- org.apache.ant to 1.10.9.v20201106-1946
- org.slf4j.binding.log4j12 to 1.7.30.v20201108-2042

Change-Id: I26a3217d99307d14f1ef7caf4453b312b5a5c69d
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
20 months agoFix IgnoreOperation for symlinks
Thomas Wolf [Sat, 7 Nov 2020 19:10:24 +0000 (7 20:10 +0100)]
Fix IgnoreOperation for symlinks

The ignore pattern /foo/ only matches directories, but not symlinks.
Symlinks need to be excluded as files using the pattern /foo.

Bug: 568562
Change-Id: Ie327110728d22ca2446e46902e96e04bc853640b
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
20 months agoPrepare 5.10.0-SNAPSHOT builds
Matthias Sohn [Wed, 4 Nov 2020 22:51:05 +0000 (4 23:51 +0100)]
Prepare 5.10.0-SNAPSHOT builds

Change-Id: I89b37f8f9fcaa5c39a12ea14fcc0997b641fc165
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
20 months agoEGit v5.10.0.202011041322-m2v5.10.0.202011041322-m2
Matthias Sohn [Wed, 4 Nov 2020 18:50:13 +0000 (4 19:50 +0100)]
EGit v5.10.0.202011041322-m2

Change-Id: I50092fb78ed94af946b144604091f8f5c52306f0
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
20 months agoSimplify config entry parsing in config dialog
Thomas Wolf [Mon, 2 Nov 2020 07:22:02 +0000 (2 08:22 +0100)]
Simplify config entry parsing in config dialog

Instead of using a StringTokenizer to split the string at any period
extract section, subsection, and key name by looking only at the first
and last periods in the string.

Change-Id: Ieaf95a2cda98eca83b636d22b4580707a8e8160a
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
20 months agoHandle subsections with periods in RepositoryPropertySource
Thomas Wolf [Sun, 1 Nov 2020 23:01:51 +0000 (2 00:01 +0100)]
Handle subsections with periods in RepositoryPropertySource

The properties view of a repository did not show config entries with
subsection names containing periods.

Just look at the first and last period and take everything in between
(if anything) as the subsection name.

Bug: 568424
Change-Id: I7d3c7790c758b6c230012f30fe28249bc12901bd
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
20 months agoUse concise delete message in confirm dialog
Chenhui Xu [Thu, 29 Oct 2020 19:06:37 +0000 (29 20:06 +0100)]
Use concise delete message in confirm dialog

When deleting the files from File system or git staging area, the Delete
Dialog is popped up. This change turn "Delete the selected files from
the file system?" message into "Delete the selected files?"

Bug: 566760
Change-Id: I36bc9051996bf66f15c779096ced1492316e9f12
Signed-off-by: Chenhui Xu <chenhui.xu@vogella.com>