Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.egit-feature/feature.xml8
-rw-r--r--org.eclipse.egit-feature/pom.xml2
-rw-r--r--org.eclipse.egit.core.junit/META-INF/MANIFEST.MF30
-rw-r--r--org.eclipse.egit.core.junit/pom.xml2
-rw-r--r--org.eclipse.egit.core.junit/src/org/eclipse/egit/core/test/TestProject.java19
-rw-r--r--org.eclipse.egit.core.junit/src/org/eclipse/egit/core/test/TestUtils.java69
-rw-r--r--org.eclipse.egit.core.test/META-INF/MANIFEST.MF24
-rw-r--r--org.eclipse.egit.core.test/pom.xml2
-rw-r--r--org.eclipse.egit.core/META-INF/MANIFEST.MF82
-rw-r--r--org.eclipse.egit.core/pom.xml2
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/CachingRepository.java2
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/op/BranchOperation.java2
-rw-r--r--org.eclipse.egit.doc/META-INF/MANIFEST.MF2
-rw-r--r--org.eclipse.egit.doc/pom.xml2
-rw-r--r--org.eclipse.egit.gitflow-feature/feature.xml8
-rw-r--r--org.eclipse.egit.gitflow-feature/pom.xml2
-rw-r--r--org.eclipse.egit.gitflow.test/META-INF/MANIFEST.MF8
-rw-r--r--org.eclipse.egit.gitflow.test/pom.xml2
-rw-r--r--org.eclipse.egit.gitflow.ui/META-INF/MANIFEST.MF68
-rw-r--r--org.eclipse.egit.gitflow.ui/pom.xml2
-rw-r--r--org.eclipse.egit.gitflow/META-INF/MANIFEST.MF26
-rw-r--r--org.eclipse.egit.gitflow/pom.xml2
-rw-r--r--org.eclipse.egit.mylyn-feature/feature.xml4
-rw-r--r--org.eclipse.egit.mylyn-feature/pom.xml2
-rw-r--r--org.eclipse.egit.mylyn.ui.test/META-INF/MANIFEST.MF2
-rw-r--r--org.eclipse.egit.mylyn.ui.test/pom.xml2
-rw-r--r--org.eclipse.egit.mylyn.ui/META-INF/MANIFEST.MF28
-rw-r--r--org.eclipse.egit.mylyn.ui/pom.xml2
-rw-r--r--org.eclipse.egit.repository/pom.xml2
-rw-r--r--org.eclipse.egit.source-feature/feature.xml4
-rw-r--r--org.eclipse.egit.source-feature/pom.xml2
-rw-r--r--org.eclipse.egit.target/egit-4.10.target36
-rw-r--r--org.eclipse.egit.target/egit-4.10.tpd2
-rw-r--r--org.eclipse.egit.target/egit-4.11.target36
-rw-r--r--org.eclipse.egit.target/egit-4.11.tpd2
-rw-r--r--org.eclipse.egit.target/egit-4.12.target36
-rw-r--r--org.eclipse.egit.target/egit-4.12.tpd2
-rw-r--r--org.eclipse.egit.target/egit-4.13.target36
-rw-r--r--org.eclipse.egit.target/egit-4.13.tpd2
-rw-r--r--org.eclipse.egit.target/egit-4.14-staging.target36
-rw-r--r--org.eclipse.egit.target/egit-4.14-staging.tpd2
-rw-r--r--org.eclipse.egit.target/egit-4.6.target36
-rw-r--r--org.eclipse.egit.target/egit-4.6.tpd2
-rw-r--r--org.eclipse.egit.target/egit-4.7.target36
-rw-r--r--org.eclipse.egit.target/egit-4.7.tpd2
-rw-r--r--org.eclipse.egit.target/egit-4.8.target36
-rw-r--r--org.eclipse.egit.target/egit-4.8.tpd2
-rw-r--r--org.eclipse.egit.target/egit-4.9.target36
-rw-r--r--org.eclipse.egit.target/egit-4.9.tpd2
-rw-r--r--org.eclipse.egit.target/pom.xml2
-rw-r--r--org.eclipse.egit.target/projects/jetty-9.4.22.tpd20
-rw-r--r--org.eclipse.egit.target/projects/jetty-9.4.24.tpd20
-rw-r--r--org.eclipse.egit.ui.test/META-INF/MANIFEST.MF34
-rw-r--r--org.eclipse.egit.ui.test/pom.xml2
-rw-r--r--org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/internal/actions/StashesMenuTest.java6
-rw-r--r--org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/repositories/GitRepositoriesViewBranchHandlingTest.java59
-rw-r--r--org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/repositories/GitRepositoriesViewTestUtils.java2
-rw-r--r--org.eclipse.egit.ui/META-INF/MANIFEST.MF182
-rw-r--r--org.eclipse.egit.ui/pom.xml2
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchOperationUI.java12
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchProjectTracker.java2
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/ProjectTrackerPreferenceHelper.java2
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/GitSelectRepositoryPage.java2
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/GitSelectWizardPage.java2
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/DiffEditorOutlinePage.java2
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/MultiPageEditorContentOutlinePage.java3
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/command/RevertHandler.java3
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/DecoratorRepositoryStateCache.java27
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitDecorator.java21
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitLightweightDecorator.java9
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/AbstractBranchSelectionDialog.java4
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/AbstractConfigureRemoteDialog.java8
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/HyperlinkSourceViewer.java12
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/SpellcheckableMessageArea.java2
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/fetch/FetchDestinationPage.java2
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/fetch/FetchSourcePage.java2
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitFileDiffViewer.java6
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitGraphTable.java2
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitSelectionDialog.java60
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FindToolbar.java4
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java422
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryRefFilterConfigurationDialog.java13
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/ICommitsProvider.java44
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/RefFilterHelper.java2
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/SearchBar.java129
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/PushTagsPage.java2
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/reflog/ReflogView.java4
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/DropAdapterAssistant.java2
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RefCache.java192
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesView.java202
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesViewContentProvider.java46
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeDecorator.java200
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeLabelProvider.java142
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeWorkbenchAdapter.java89
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoryTreeNode.java9
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/DeleteRepositoryGroupConfirmDialog.java3
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/search/CommitSearchPage.java2
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/search/CommitSearchResultsPage.java2
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/selection/MultiViewerSelectionProvider.java6
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java47
-rw-r--r--org.eclipse.egit/META-INF/MANIFEST.MF2
-rw-r--r--org.eclipse.egit/pom.xml2
-rw-r--r--pom.xml4
-rw-r--r--tools/oomph/EGit.setup20
104 files changed, 1634 insertions, 1224 deletions
diff --git a/org.eclipse.egit-feature/feature.xml b/org.eclipse.egit-feature/feature.xml
index 8c59488cd3..8402f2afb1 100644
--- a/org.eclipse.egit-feature/feature.xml
+++ b/org.eclipse.egit-feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.egit"
label="%featureName"
- version="5.6.1.qualifier"
+ version="5.7.0.qualifier"
provider-name="%providerName"
plugin="org.eclipse.egit"
license-feature="org.eclipse.license"
@@ -40,9 +40,9 @@
<import plugin="org.eclipse.jsch.ui" version="1.3.0" match="compatible"/>
<import plugin="org.eclipse.jsch.core" version="1.3.0" match="compatible"/>
<import plugin="com.jcraft.jsch" version="0.1.55" match="compatible"/>
- <import feature="org.eclipse.jgit" version="5.6.1" match="equivalent"/>
- <import feature="org.eclipse.jgit.ssh.apache" version="5.6.1" match="equivalent"/>
- <import feature="org.eclipse.jgit.http.apache" version="5.6.1" match="equivalent"/>
+ <import feature="org.eclipse.jgit" version="5.7.0" match="equivalent"/>
+ <import feature="org.eclipse.jgit.ssh.apache" version="5.7.0" match="equivalent"/>
+ <import feature="org.eclipse.jgit.http.apache" version="5.7.0" match="equivalent"/>
</requires>
<plugin
diff --git a/org.eclipse.egit-feature/pom.xml b/org.eclipse.egit-feature/pom.xml
index 8a0bdc14ec..6668928d98 100644
--- a/org.eclipse.egit-feature/pom.xml
+++ b/org.eclipse.egit-feature/pom.xml
@@ -18,7 +18,7 @@
<parent>
<groupId>org.eclipse.egit</groupId>
<artifactId>egit-parent</artifactId>
- <version>5.6.1-SNAPSHOT</version>
+ <version>5.7.0-SNAPSHOT</version>
</parent>
<groupId>org.eclipse.egit.feature</groupId>
diff --git a/org.eclipse.egit.core.junit/META-INF/MANIFEST.MF b/org.eclipse.egit.core.junit/META-INF/MANIFEST.MF
index f3a50aa6bb..cce57be286 100644
--- a/org.eclipse.egit.core.junit/META-INF/MANIFEST.MF
+++ b/org.eclipse.egit.core.junit/META-INF/MANIFEST.MF
@@ -4,26 +4,26 @@ Bundle-Name: %Bundle-Name
Bundle-Vendor: %Bundle-Vendor
Automatic-Module-Name: org.eclipse.egit.core.junit
Bundle-SymbolicName: org.eclipse.egit.core.junit
-Bundle-Version: 5.6.1.qualifier
+Bundle-Version: 5.7.0.qualifier
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.12.0,4.0.0)",
org.eclipse.core.filesystem;bundle-version="[1.6.0,2.0.0)",
org.eclipse.core.resources;bundle-version="[3.11.0,4.0.0)",
org.eclipse.jdt.core;bundle-version="[3.12.0,4.0.0)",
org.eclipse.jdt.launching;bundle-version="[3.8.100,4.0.0)",
org.junit;bundle-version="[4.12.0,5.0.0)"
-Import-Package: org.eclipse.egit.core;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.op;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.api;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.api.errors;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.dircache;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.errors;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.junit;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.lib;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.revwalk;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.storage.file;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.transport;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.treewalk;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.util;version="[5.6.1,5.7.0)"
+Import-Package: org.eclipse.egit.core;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.op;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.api;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.api.errors;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.dircache;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.errors;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.junit;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.lib;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.revwalk;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.storage.file;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.transport;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.treewalk;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.util;version="[5.7.0,5.8.0)"
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.eclipse.egit.core.test;version="5.6.1";x-friends:="org.eclipse.egit.core.test,org.eclipse.egit.ui.test,org.eclipse.egit.gitflow.test"
+Export-Package: org.eclipse.egit.core.test;version="5.7.0";x-friends:="org.eclipse.egit.core.test,org.eclipse.egit.ui.test,org.eclipse.egit.gitflow.test"
Bundle-Localization: plugin
diff --git a/org.eclipse.egit.core.junit/pom.xml b/org.eclipse.egit.core.junit/pom.xml
index dba03b69cd..98e81e7410 100644
--- a/org.eclipse.egit.core.junit/pom.xml
+++ b/org.eclipse.egit.core.junit/pom.xml
@@ -18,7 +18,7 @@
<parent>
<groupId>org.eclipse.egit</groupId>
<artifactId>egit-parent</artifactId>
- <version>5.6.1-SNAPSHOT</version>
+ <version>5.7.0-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.egit.core.junit</artifactId>
diff --git a/org.eclipse.egit.core.junit/src/org/eclipse/egit/core/test/TestProject.java b/org.eclipse.egit.core.junit/src/org/eclipse/egit/core/test/TestProject.java
index c27eb0fc64..bfbba81e74 100644
--- a/org.eclipse.egit.core.junit/src/org/eclipse/egit/core/test/TestProject.java
+++ b/org.eclipse.egit.core.junit/src/org/eclipse/egit/core/test/TestProject.java
@@ -205,12 +205,19 @@ public class TestProject {
public void dispose() throws CoreException, IOException {
waitForIndexer();
- if (project.exists()) {
- TestUtils.deleteProject(project);
- } else {
- File f = new File(location);
- if (f.exists())
- FileUtils.delete(f, FileUtils.RECURSIVE | FileUtils.RETRY);
+ try {
+ if (project.exists()) {
+ TestUtils.deleteProject(project);
+ } else {
+ File f = new File(location);
+ if (f.exists()) {
+ FileUtils.delete(f, FileUtils.RECURSIVE | FileUtils.RETRY);
+ }
+ }
+ } catch (CoreException | IOException e) {
+ System.err.println(e.toString());
+ TestUtils.listDirectory(new File(location), true);
+ throw e;
}
}
diff --git a/org.eclipse.egit.core.junit/src/org/eclipse/egit/core/test/TestUtils.java b/org.eclipse.egit.core.junit/src/org/eclipse/egit/core/test/TestUtils.java
index 207269e618..57ad7b4ac4 100644
--- a/org.eclipse.egit.core.junit/src/org/eclipse/egit/core/test/TestUtils.java
+++ b/org.eclipse.egit.core.junit/src/org/eclipse/egit/core/test/TestUtils.java
@@ -25,6 +25,11 @@ import java.lang.management.LockInfo;
import java.lang.management.ManagementFactory;
import java.lang.management.ThreadInfo;
import java.lang.management.ThreadMXBean;
+import java.nio.file.DirectoryNotEmptyException;
+import java.nio.file.FileVisitResult;
+import java.nio.file.Files;
+import java.nio.file.SimpleFileVisitor;
+import java.nio.file.attribute.BasicFileAttributes;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
@@ -125,8 +130,68 @@ public class TestUtils {
* @throws IOException
*/
public void deleteTempDirs() throws IOException {
- if (rootDir.exists())
- FileUtils.delete(rootDir, FileUtils.RECURSIVE | FileUtils.RETRY);
+ if (rootDir.exists()) {
+ try {
+ FileUtils.delete(rootDir,
+ FileUtils.RECURSIVE | FileUtils.RETRY);
+ } catch (DirectoryNotEmptyException e) {
+ System.err.println(e.toString());
+ listDirectory(rootDir, true);
+ throw e;
+ }
+ }
+ }
+
+ /**
+ * Produce a simple directory listing.
+ *
+ * @param directory
+ * to list
+ * @param recursive
+ * whether to descend into sub-directories
+ */
+ public static void listDirectory(File directory, boolean recursive) {
+ try {
+ java.nio.file.Path top = directory.toPath();
+ Files.walkFileTree(top,
+ new SimpleFileVisitor<java.nio.file.Path>() {
+
+ private void print(java.nio.file.Path path,
+ BasicFileAttributes attrs) {
+ StringBuilder b = new StringBuilder();
+ b.append(attrs.lastModifiedTime().toString());
+ b.append(' ');
+ b.append(path.toString());
+ if (attrs.isSymbolicLink()) {
+ b.append(" (symlink)");
+ } else if (attrs.isDirectory()) {
+ b.append('/');
+ }
+ System.out.println(b.toString());
+ }
+
+ @Override
+ public FileVisitResult preVisitDirectory(
+ java.nio.file.Path dir,
+ BasicFileAttributes attrs) throws IOException {
+ print(dir, attrs);
+ return (recursive || top.equals(dir))
+ ? FileVisitResult.CONTINUE
+ : FileVisitResult.SKIP_SUBTREE;
+ }
+
+ @Override
+ public FileVisitResult visitFile(
+ java.nio.file.Path file,
+ BasicFileAttributes attrs) throws IOException {
+ print(file, attrs);
+ return FileVisitResult.CONTINUE;
+ }
+ });
+ } catch (Exception e) {
+ System.err.println("[ERROR] Error listing directory: " + directory);
+ e.printStackTrace();
+ }
}
/**
diff --git a/org.eclipse.egit.core.test/META-INF/MANIFEST.MF b/org.eclipse.egit.core.test/META-INF/MANIFEST.MF
index 7d7fd3c669..f13bbe4f56 100644
--- a/org.eclipse.egit.core.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.egit.core.test/META-INF/MANIFEST.MF
@@ -5,7 +5,7 @@ Bundle-Vendor: Eclipse.org
Automatic-Module-Name: org.eclipse.egit.core.test
Bundle-SymbolicName: org.eclipse.egit.core.test;singleton:=true
Fragment-Host: org.eclipse.egit.core
-Bundle-Version: 5.6.1.qualifier
+Bundle-Version: 5.7.0.qualifier
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.12.0,4.0.0)",
org.eclipse.core.filesystem;bundle-version="[1.6.0,2.0.0)",
org.eclipse.core.resources;bundle-version="[3.11.0,4.0.0)",
@@ -13,19 +13,19 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.12.0,4.0.0)",
org.eclipse.jdt.core;bundle-version="[3.12.0,4.0.0)",
org.hamcrest;bundle-version="[1.1.0,2.0.0)",
org.junit;bundle-version="[4.12.0,5.0.0)",
- org.eclipse.egit.core.junit;bundle-version="[5.6.1,5.7.0)"
+ org.eclipse.egit.core.junit;bundle-version="[5.7.0,5.8.0)"
Import-Package: net.bytebuddy;version="[1.7.9,2.0.0)",
net.bytebuddy.agent;version="[1.7.9,2.0.0)",
- org.eclipse.egit.core;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.op;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.project;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.api.errors;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.attributes;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.junit;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.lib;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.treewalk;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.treewalk.filter;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.util;version="[5.6.1,5.7.0)",
+ org.eclipse.egit.core;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.op;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.project;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.api.errors;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.attributes;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.junit;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.lib;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.treewalk;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.treewalk.filter;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.util;version="[5.7.0,5.8.0)",
org.mockito;version="[2.13.0,3.0.0)",
org.mockito.junit;version="[2.13.0,3.0.0)",
org.mockito.stubbing;version="[2.13.0,3.0.0)"
diff --git a/org.eclipse.egit.core.test/pom.xml b/org.eclipse.egit.core.test/pom.xml
index fba7432d4c..b42fb6901c 100644
--- a/org.eclipse.egit.core.test/pom.xml
+++ b/org.eclipse.egit.core.test/pom.xml
@@ -18,7 +18,7 @@
<parent>
<groupId>org.eclipse.egit</groupId>
<artifactId>egit-parent</artifactId>
- <version>5.6.1-SNAPSHOT</version>
+ <version>5.7.0-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.egit.core.test</artifactId>
diff --git a/org.eclipse.egit.core/META-INF/MANIFEST.MF b/org.eclipse.egit.core/META-INF/MANIFEST.MF
index 3fdb960ac2..c94f4a4bf7 100644
--- a/org.eclipse.egit.core/META-INF/MANIFEST.MF
+++ b/org.eclipse.egit.core/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.egit.core
Bundle-SymbolicName: org.eclipse.egit.core;singleton:=true
-Bundle-Version: 5.6.1.qualifier
+Bundle-Version: 5.7.0.qualifier
Bundle-Activator: org.eclipse.egit.core.Activator
Bundle-Vendor: %Bundle-Vendor
Bundle-Localization: plugin
@@ -14,7 +14,7 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.12.0,4.0.0)",
org.eclipse.equinox.security;bundle-version="[1.2.200,2.0.0)",
org.eclipse.core.variables;bundle-version="[3.3.0,4.0.0)",
org.eclipse.core.filebuffers;bundle-version="[3.6.0,4.0.0)"
-Export-Package: org.eclipse.egit.core;version="5.6.1";
+Export-Package: org.eclipse.egit.core;version="5.7.0";
x-friends:="org.eclipse.egit.ui,
org.eclipse.egit.ui.test,
org.eclipse.egit.mylyn.ui,
@@ -23,21 +23,21 @@ Export-Package: org.eclipse.egit.core;version="5.6.1";
org.eclipse.mylyn.github.ui,
org.eclipse.mylyn.github.core,
org.eclipse.egit.core.junit",
- org.eclipse.egit.core.attributes;version="5.6.1";uses:="org.eclipse.jgit.lib",
- org.eclipse.egit.core.internal;version="5.6.1";
+ org.eclipse.egit.core.attributes;version="5.7.0";uses:="org.eclipse.jgit.lib",
+ org.eclipse.egit.core.internal;version="5.7.0";
x-friends:="org.eclipse.egit.ui,
org.eclipse.egit.import,
org.eclipse.egit.gitflow.ui,
org.eclipse.egit.gitflow,
org.eclipse.egit.mylyn.ui",
- org.eclipse.egit.core.internal.gerrit;version="5.6.1";x-friends:="org.eclipse.egit.ui",
- org.eclipse.egit.core.internal.indexdiff;version="5.6.1";x-friends:="org.eclipse.egit.ui,org.eclipse.egit.ui.test",
- org.eclipse.egit.core.internal.job;version="5.6.1";x-friends:="org.eclipse.egit.ui,org.eclipse.egit.gitflow.ui,org.eclipse.egit.gitflow",
- org.eclipse.egit.core.internal.rebase;version="5.6.1";x-friends:="org.eclipse.egit.ui",
- org.eclipse.egit.core.internal.storage;version="5.6.1";x-friends:="org.eclipse.egit.ui,org.eclipse.egit.core.test",
- org.eclipse.egit.core.internal.trace;version="5.6.1";x-internal:=true,
- org.eclipse.egit.core.internal.util;version="5.6.1";x-friends:="org.eclipse.egit.ui",
- org.eclipse.egit.core.op;version="5.6.1";
+ org.eclipse.egit.core.internal.gerrit;version="5.7.0";x-friends:="org.eclipse.egit.ui",
+ org.eclipse.egit.core.internal.indexdiff;version="5.7.0";x-friends:="org.eclipse.egit.ui,org.eclipse.egit.ui.test",
+ org.eclipse.egit.core.internal.job;version="5.7.0";x-friends:="org.eclipse.egit.ui,org.eclipse.egit.gitflow.ui,org.eclipse.egit.gitflow",
+ org.eclipse.egit.core.internal.rebase;version="5.7.0";x-friends:="org.eclipse.egit.ui",
+ org.eclipse.egit.core.internal.storage;version="5.7.0";x-friends:="org.eclipse.egit.ui,org.eclipse.egit.core.test",
+ org.eclipse.egit.core.internal.trace;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.core.internal.util;version="5.7.0";x-friends:="org.eclipse.egit.ui",
+ org.eclipse.egit.core.op;version="5.7.0";
x-friends:="org.eclipse.egit.ui.test,
org.eclipse.egit.ui,
org.eclipse.egit.gitflow,
@@ -46,41 +46,41 @@ Export-Package: org.eclipse.egit.core;version="5.6.1";
org.eclipse.egit.github.core,
org.eclipse.mylyn.github.ui,
org.eclipse.egit.core.junit",
- org.eclipse.egit.core.project;version="5.6.1";x-friends:="org.eclipse.egit.ui,org.eclipse.egit.ui.test,org.eclipse.egit.gitflow.ui",
- org.eclipse.egit.core.securestorage;version="5.6.1";x-friends:="org.eclipse.egit.ui",
- org.eclipse.egit.core.storage;version="5.6.1";
+ org.eclipse.egit.core.project;version="5.7.0";x-friends:="org.eclipse.egit.ui,org.eclipse.egit.ui.test,org.eclipse.egit.gitflow.ui",
+ org.eclipse.egit.core.securestorage;version="5.7.0";x-friends:="org.eclipse.egit.ui",
+ org.eclipse.egit.core.storage;version="5.7.0";
uses:="org.eclipse.core.runtime,
org.eclipse.jgit.dircache,
org.eclipse.jgit.lib,
org.eclipse.core.resources",
- org.eclipse.egit.core.synchronize;version="5.6.1";x-friends:="org.eclipse.egit.ui,org.eclipse.egit.ui.test",
- org.eclipse.egit.core.synchronize.dto;version="5.6.1";x-friends:="org.eclipse.egit.ui"
+ org.eclipse.egit.core.synchronize;version="5.7.0";x-friends:="org.eclipse.egit.ui,org.eclipse.egit.ui.test",
+ org.eclipse.egit.core.synchronize.dto;version="5.7.0";x-friends:="org.eclipse.egit.ui"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Import-Package: com.jcraft.jsch;bundle-version="[0.1.53,0.2.0)",
org.eclipse.core.net.proxy;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.jgit.annotations;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.api;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.api.errors;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.attributes;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.diff;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.dircache;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.errors;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.events;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.internal.storage.file;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.lfs;version="[5.6.1,5.7.0)";resolution:=optional,
- org.eclipse.jgit.lib;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.merge;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.revwalk;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.revwalk.filter;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.storage.file;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.submodule;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.transport;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.transport.http;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.transport.http.apache;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.transport.sshd;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.treewalk;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.treewalk.filter;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.util;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.util.io;version="[5.6.1,5.7.0)",
+ org.eclipse.jgit.annotations;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.api;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.api.errors;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.attributes;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.diff;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.dircache;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.errors;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.events;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.internal.storage.file;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.lfs;version="[5.7.0,5.8.0)";resolution:=optional,
+ org.eclipse.jgit.lib;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.merge;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.revwalk;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.revwalk.filter;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.storage.file;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.submodule;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.transport;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.transport.http;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.transport.http.apache;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.transport.sshd;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.treewalk;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.treewalk.filter;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.util;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.util.io;version="[5.7.0,5.8.0)",
org.eclipse.jsch.core;bundle-version="[1.3.0,2.0.0)"
diff --git a/org.eclipse.egit.core/pom.xml b/org.eclipse.egit.core/pom.xml
index e770cade99..84b4cf5413 100644
--- a/org.eclipse.egit.core/pom.xml
+++ b/org.eclipse.egit.core/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.eclipse.egit</groupId>
<artifactId>egit-parent</artifactId>
- <version>5.6.1-SNAPSHOT</version>
+ <version>5.7.0-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.egit.core</artifactId>
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/CachingRepository.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/CachingRepository.java
index 6586ba9e7a..79295ccb3c 100644
--- a/org.eclipse.egit.core/src/org/eclipse/egit/core/CachingRepository.java
+++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/CachingRepository.java
@@ -30,7 +30,7 @@ import org.eclipse.jgit.storage.file.FileBasedConfig;
class CachingRepository extends FileRepository {
private static final ThreadLocal<Map<File, CachedConfig>> CACHED_CONFIG = ThreadLocal
- .withInitial(() -> new HashMap<>());
+ .withInitial(HashMap::new);
/**
* @param options
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/op/BranchOperation.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/op/BranchOperation.java
index daad240cea..0c77212e2d 100644
--- a/org.eclipse.egit.core/src/org/eclipse/egit/core/op/BranchOperation.java
+++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/op/BranchOperation.java
@@ -203,7 +203,7 @@ public class BranchOperation implements IEGitOperation {
throws CoreException {
IProject[] refreshProjects = results.entrySet().stream()
.map(this::getAffectedProjects)
- .flatMap(arr -> Stream.of(arr)).distinct()
+ .flatMap(Stream::of).distinct()
.toArray(IProject[]::new);
ProjectUtil.refreshValidProjects(refreshProjects, delete,
monitor);
diff --git a/org.eclipse.egit.doc/META-INF/MANIFEST.MF b/org.eclipse.egit.doc/META-INF/MANIFEST.MF
index f7826ba922..afb1ecb1e0 100644
--- a/org.eclipse.egit.doc/META-INF/MANIFEST.MF
+++ b/org.eclipse.egit.doc/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: org.eclipse.egit.doc;singleton:=true
-Bundle-Version: 5.6.1.qualifier
+Bundle-Version: 5.7.0.qualifier
Bundle-Vendor: %Bundle-Vendor
Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin
diff --git a/org.eclipse.egit.doc/pom.xml b/org.eclipse.egit.doc/pom.xml
index addc756562..29872cd21d 100644
--- a/org.eclipse.egit.doc/pom.xml
+++ b/org.eclipse.egit.doc/pom.xml
@@ -18,7 +18,7 @@
<parent>
<groupId>org.eclipse.egit</groupId>
<artifactId>egit-parent</artifactId>
- <version>5.6.1-SNAPSHOT</version>
+ <version>5.7.0-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.egit.doc</artifactId>
diff --git a/org.eclipse.egit.gitflow-feature/feature.xml b/org.eclipse.egit.gitflow-feature/feature.xml
index e9396a6dc1..b944b13f0f 100644
--- a/org.eclipse.egit.gitflow-feature/feature.xml
+++ b/org.eclipse.egit.gitflow-feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.egit.gitflow.feature"
label="%featureName"
- version="5.6.1.qualifier"
+ version="5.7.0.qualifier"
provider-name="%providerName"
plugin="org.eclipse.egit.gitflow"
license-feature="org.eclipse.license"
@@ -26,9 +26,9 @@
</url>
<requires>
- <import feature="org.eclipse.jgit" version="5.6.1" match="equivalent"/>
- <import plugin="org.eclipse.egit.core" version="5.6.1" match="equivalent"/>
- <import plugin="org.eclipse.egit.ui" version="5.6.1" match="equivalent"/>
+ <import feature="org.eclipse.jgit" version="5.7.0" match="equivalent"/>
+ <import plugin="org.eclipse.egit.core" version="5.7.0" match="equivalent"/>
+ <import plugin="org.eclipse.egit.ui" version="5.7.0" match="equivalent"/>
</requires>
<plugin
diff --git a/org.eclipse.egit.gitflow-feature/pom.xml b/org.eclipse.egit.gitflow-feature/pom.xml
index 008edafa57..974424abb1 100644
--- a/org.eclipse.egit.gitflow-feature/pom.xml
+++ b/org.eclipse.egit.gitflow-feature/pom.xml
@@ -18,7 +18,7 @@
<parent>
<groupId>org.eclipse.egit</groupId>
<artifactId>egit-parent</artifactId>
- <version>5.6.1-SNAPSHOT</version>
+ <version>5.7.0-SNAPSHOT</version>
</parent>
<groupId>org.eclipse.egit.feature</groupId>
diff --git a/org.eclipse.egit.gitflow.test/META-INF/MANIFEST.MF b/org.eclipse.egit.gitflow.test/META-INF/MANIFEST.MF
index e42d95decc..a744e5d045 100644
--- a/org.eclipse.egit.gitflow.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.egit.gitflow.test/META-INF/MANIFEST.MF
@@ -3,13 +3,13 @@ Bundle-ManifestVersion: 2
Bundle-Name: GitFlow Test
Automatic-Module-Name: org.eclipse.egit.gitflow.test
Bundle-SymbolicName: org.eclipse.egit.gitflow.test;singleton:=true
-Bundle-Version: 5.6.1.qualifier
+Bundle-Version: 5.7.0.qualifier
Fragment-Host: org.eclipse.egit.gitflow
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: org.eclipse.egit.core;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.junit;version="[5.6.1,5.7.0)",
+Import-Package: org.eclipse.egit.core;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.junit;version="[5.7.0,5.8.0)",
org.hamcrest;version="[1.1.0,1.2.0)",
org.junit.rules;version="[4.12.0,5.0.0)",
org.junit;version="[4.12.0,5.0.0)"
Require-Bundle: org.eclipse.core.resources;bundle-version="[3.11.0,4.0.0)",
- org.eclipse.egit.core.junit;bundle-version="[5.6.1,5.7.0)"
+ org.eclipse.egit.core.junit;bundle-version="[5.7.0,5.8.0)"
diff --git a/org.eclipse.egit.gitflow.test/pom.xml b/org.eclipse.egit.gitflow.test/pom.xml
index 0ca8a2cb84..6094c63d49 100644
--- a/org.eclipse.egit.gitflow.test/pom.xml
+++ b/org.eclipse.egit.gitflow.test/pom.xml
@@ -17,7 +17,7 @@
<parent>
<groupId>org.eclipse.egit</groupId>
<artifactId>egit-parent</artifactId>
- <version>5.6.1-SNAPSHOT</version>
+ <version>5.7.0-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.egit.gitflow.test</artifactId>
diff --git a/org.eclipse.egit.gitflow.ui/META-INF/MANIFEST.MF b/org.eclipse.egit.gitflow.ui/META-INF/MANIFEST.MF
index bd0b8cc871..f8728347e8 100644
--- a/org.eclipse.egit.gitflow.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.egit.gitflow.ui/META-INF/MANIFEST.MF
@@ -3,36 +3,36 @@ Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.egit.gitflow.ui
Bundle-SymbolicName: org.eclipse.egit.gitflow.ui;singleton:=true
-Bundle-Version: 5.6.1.qualifier
+Bundle-Version: 5.7.0.qualifier
Bundle-Activator: org.eclipse.egit.gitflow.ui.Activator
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
Bundle-Vendor: %Bundle-Vendor
Bundle-Localization: plugin
-Import-Package: org.eclipse.egit.core;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.internal;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.internal.job;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.op;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.project;version="[5.6.1,5.7.0)",
- org.eclipse.egit.gitflow;version="[5.6.1,5.7.0)",
- org.eclipse.egit.gitflow.op;version="[5.6.1,5.7.0)",
- org.eclipse.egit.ui;version="[5.6.1,5.7.0)",
- org.eclipse.egit.ui.internal;version="[5.6.1,5.7.0)",
- org.eclipse.egit.ui.internal.actions;version="[5.6.1,5.7.0)",
- org.eclipse.egit.ui.internal.branch;version="[5.6.1,5.7.0)",
- org.eclipse.egit.ui.internal.commit;version="[5.6.1,5.7.0)",
- org.eclipse.egit.ui.internal.decorators;version="[5.6.1,5.7.0)",
- org.eclipse.egit.ui.internal.expressions;version="[5.6.1,5.7.0)",
- org.eclipse.egit.ui.internal.rebase;version="[5.6.1,5.7.0)",
- org.eclipse.egit.ui.internal.repository.tree;version="[5.6.1,5.7.0)",
- org.eclipse.egit.ui.internal.selection;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.annotations;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.api;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.api.errors;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.lib;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.revplot;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.revwalk;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.util;version="[5.6.1,5.7.0)"
+Import-Package: org.eclipse.egit.core;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.internal;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.internal.job;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.op;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.project;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.gitflow;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.gitflow.op;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.ui;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.ui.internal;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.ui.internal.actions;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.ui.internal.branch;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.ui.internal.commit;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.ui.internal.decorators;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.ui.internal.expressions;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.ui.internal.rebase;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.ui.internal.repository.tree;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.ui.internal.selection;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.annotations;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.api;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.api.errors;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.lib;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.revplot;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.revwalk;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.util;version="[5.7.0,5.8.0)"
Require-Bundle: org.eclipse.core.resources;bundle-version="[3.11.0,4.0.0)",
org.eclipse.core.runtime;bundle-version="[3.12.0,4.0.0)",
org.eclipse.team.ui;bundle-version="[3.8.0,4.0.0)",
@@ -42,12 +42,12 @@ Require-Bundle: org.eclipse.core.resources;bundle-version="[3.11.0,4.0.0)",
org.eclipse.core.databinding.property;bundle-version="[1.6.0,2.0.0)",
org.eclipse.core.databinding.beans;bundle-version="[1.3.100,2.0.0)",
org.eclipse.core.databinding;bundle-version="[1.6.0,2.0.0)"
-Export-Package: org.eclipse.egit.gitflow.ui;version="5.6.1";x-friends:="org.eclipse.egit.ui.test",
- org.eclipse.egit.gitflow.ui.internal;version="5.6.1";x-friends:="org.eclipse.egit.ui.test",
- org.eclipse.egit.gitflow.ui.internal.actions;version="5.6.1";x-friends:="org.eclipse.egit.ui.test",
- org.eclipse.egit.gitflow.ui.internal.decorators;version="5.6.1";x-internal:=true,
- org.eclipse.egit.gitflow.ui.internal.dialogs;version="5.6.1";x-internal:=true,
- org.eclipse.egit.gitflow.ui.internal.factories;version="5.6.1";x-internal:=true,
- org.eclipse.egit.gitflow.ui.internal.menu;version="5.6.1";x-internal:=true,
- org.eclipse.egit.gitflow.ui.internal.properties;version="5.6.1";x-internal:=true,
- org.eclipse.egit.gitflow.ui.internal.validation;version="5.6.1";x-internal:=true
+Export-Package: org.eclipse.egit.gitflow.ui;version="5.7.0";x-friends:="org.eclipse.egit.ui.test",
+ org.eclipse.egit.gitflow.ui.internal;version="5.7.0";x-friends:="org.eclipse.egit.ui.test",
+ org.eclipse.egit.gitflow.ui.internal.actions;version="5.7.0";x-friends:="org.eclipse.egit.ui.test",
+ org.eclipse.egit.gitflow.ui.internal.decorators;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.gitflow.ui.internal.dialogs;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.gitflow.ui.internal.factories;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.gitflow.ui.internal.menu;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.gitflow.ui.internal.properties;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.gitflow.ui.internal.validation;version="5.7.0";x-internal:=true
diff --git a/org.eclipse.egit.gitflow.ui/pom.xml b/org.eclipse.egit.gitflow.ui/pom.xml
index 8ebee50cd5..5ede459320 100644
--- a/org.eclipse.egit.gitflow.ui/pom.xml
+++ b/org.eclipse.egit.gitflow.ui/pom.xml
@@ -18,7 +18,7 @@
<parent>
<groupId>org.eclipse.egit</groupId>
<artifactId>egit-parent</artifactId>
- <version>5.6.1-SNAPSHOT</version>
+ <version>5.7.0-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.egit.gitflow.ui</artifactId>
diff --git a/org.eclipse.egit.gitflow/META-INF/MANIFEST.MF b/org.eclipse.egit.gitflow/META-INF/MANIFEST.MF
index c4deaa48df..c15be6b07e 100644
--- a/org.eclipse.egit.gitflow/META-INF/MANIFEST.MF
+++ b/org.eclipse.egit.gitflow/META-INF/MANIFEST.MF
@@ -3,21 +3,21 @@ Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.egit.gitflow
Bundle-SymbolicName: org.eclipse.egit.gitflow;singleton:=true
-Bundle-Version: 5.6.1.qualifier
+Bundle-Version: 5.7.0.qualifier
Bundle-Vendor: %Bundle-Vendor
Bundle-Activator: org.eclipse.egit.gitflow.Activator
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.12.0,4.0.0)"
-Export-Package: org.eclipse.egit.gitflow;version="5.6.1";
+Export-Package: org.eclipse.egit.gitflow;version="5.7.0";
uses:="org.osgi.framework,
org.eclipse.jgit.transport,
org.eclipse.core.runtime,
org.eclipse.jgit.lib,
org.eclipse.jgit.revwalk",
org.eclipse.egit.gitflow.internal;x-internal:=true,
- org.eclipse.egit.gitflow.op;version="5.6.1";
+ org.eclipse.egit.gitflow.op;version="5.7.0";
uses:="org.eclipse.jgit.transport,
org.eclipse.core.runtime.jobs,
org.eclipse.core.runtime,
@@ -26,13 +26,13 @@ Export-Package: org.eclipse.egit.gitflow;version="5.6.1";
org.eclipse.jgit.revwalk,
org.eclipse.jgit.lib,
org.eclipse.egit.core.op"
-Import-Package: org.eclipse.egit.core.internal.job;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.op;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.api;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.api.errors;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.annotations;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.errors;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.lib;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.revwalk;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.revwalk.filter;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.transport;version="[5.6.1,5.7.0)"
+Import-Package: org.eclipse.egit.core.internal.job;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.op;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.api;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.api.errors;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.annotations;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.errors;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.lib;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.revwalk;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.revwalk.filter;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.transport;version="[5.7.0,5.8.0)"
diff --git a/org.eclipse.egit.gitflow/pom.xml b/org.eclipse.egit.gitflow/pom.xml
index 5e90fa6b60..0d6f2e0dc1 100644
--- a/org.eclipse.egit.gitflow/pom.xml
+++ b/org.eclipse.egit.gitflow/pom.xml
@@ -18,7 +18,7 @@
<parent>
<groupId>org.eclipse.egit</groupId>
<artifactId>egit-parent</artifactId>
- <version>5.6.1-SNAPSHOT</version>
+ <version>5.7.0-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.egit.gitflow</artifactId>
diff --git a/org.eclipse.egit.mylyn-feature/feature.xml b/org.eclipse.egit.mylyn-feature/feature.xml
index 317c41789e..9216798451 100644
--- a/org.eclipse.egit.mylyn-feature/feature.xml
+++ b/org.eclipse.egit.mylyn-feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.egit.mylyn"
label="%featureName"
- version="5.6.1.qualifier"
+ version="5.7.0.qualifier"
provider-name="%providerName"
plugin="org.eclipse.egit"
license-feature="org.eclipse.license"
@@ -26,7 +26,7 @@
</url>
<requires>
- <import feature="org.eclipse.egit" version="5.6.1" match="equivalent"/>
+ <import feature="org.eclipse.egit" version="5.7.0" match="equivalent"/>
<import feature="org.eclipse.mylyn.team_feature" version="3.20.0" match="greaterOrEqual"/>
</requires>
diff --git a/org.eclipse.egit.mylyn-feature/pom.xml b/org.eclipse.egit.mylyn-feature/pom.xml
index f742e59293..9885c8e1d1 100644
--- a/org.eclipse.egit.mylyn-feature/pom.xml
+++ b/org.eclipse.egit.mylyn-feature/pom.xml
@@ -18,7 +18,7 @@
<parent>
<groupId>org.eclipse.egit</groupId>
<artifactId>egit-parent</artifactId>
- <version>5.6.1-SNAPSHOT</version>
+ <version>5.7.0-SNAPSHOT</version>
</parent>
<groupId>org.eclipse.egit.feature</groupId>
diff --git a/org.eclipse.egit.mylyn.ui.test/META-INF/MANIFEST.MF b/org.eclipse.egit.mylyn.ui.test/META-INF/MANIFEST.MF
index 7cbf4eb932..f864cd6073 100644
--- a/org.eclipse.egit.mylyn.ui.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.egit.mylyn.ui.test/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: Git Team Provider Mylyn UI Test Fragment
Automatic-Module-Name: org.eclipse.egit.mylyn.ui.test
Bundle-SymbolicName: org.eclipse.egit.mylyn.ui.test
-Bundle-Version: 5.6.1.qualifier
+Bundle-Version: 5.7.0.qualifier
Fragment-Host: org.eclipse.egit.mylyn.ui
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-Vendor: Eclipse.org
diff --git a/org.eclipse.egit.mylyn.ui.test/pom.xml b/org.eclipse.egit.mylyn.ui.test/pom.xml
index eb7bd616bf..7e2655fb86 100644
--- a/org.eclipse.egit.mylyn.ui.test/pom.xml
+++ b/org.eclipse.egit.mylyn.ui.test/pom.xml
@@ -18,7 +18,7 @@
<parent>
<groupId>org.eclipse.egit</groupId>
<artifactId>egit-parent</artifactId>
- <version>5.6.1-SNAPSHOT</version>
+ <version>5.7.0-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.egit.mylyn.ui.test</artifactId>
diff --git a/org.eclipse.egit.mylyn.ui/META-INF/MANIFEST.MF b/org.eclipse.egit.mylyn.ui/META-INF/MANIFEST.MF
index fd27e471e1..8bb39f7747 100644
--- a/org.eclipse.egit.mylyn.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.egit.mylyn.ui/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.egit.mylyn.ui
Bundle-SymbolicName: org.eclipse.egit.mylyn.ui;singleton:=true
-Bundle-Version: 5.6.1.qualifier
+Bundle-Version: 5.7.0.qualifier
Bundle-Activator: org.eclipse.egit.internal.mylyn.ui.EGitMylynUI
Bundle-Vendor: %Bundle-Vendor
Require-Bundle: org.eclipse.jface;bundle-version="[3.12.0,4.0.0)",
@@ -19,17 +19,17 @@ Require-Bundle: org.eclipse.jface;bundle-version="[3.12.0,4.0.0)",
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
Bundle-Localization: plugin
-Export-Package: org.eclipse.egit.internal.mylyn.ui;version="5.6.1";x-friends:="org.eclipse.egit.ui.test",
- org.eclipse.egit.internal.mylyn.ui.commit;version="5.6.1";x-internal:=true
-Import-Package: org.eclipse.egit.core;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.internal;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.synchronize;version="[5.6.1,5.7.0)",
- org.eclipse.egit.ui;version="[5.6.1,5.7.0)",
- org.eclipse.egit.ui.internal.commit;version="[5.6.1,5.7.0)",
- org.eclipse.egit.ui.internal.staging;version="[5.6.1,5.7.0)",
- org.eclipse.egit.ui.internal.synchronize.model;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.errors;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.lib;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.revwalk;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.transport;version="[5.6.1,5.7.0)",
+Export-Package: org.eclipse.egit.internal.mylyn.ui;version="5.7.0";x-friends:="org.eclipse.egit.ui.test",
+ org.eclipse.egit.internal.mylyn.ui.commit;version="5.7.0";x-internal:=true
+Import-Package: org.eclipse.egit.core;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.internal;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.synchronize;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.ui;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.ui.internal.commit;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.ui.internal.staging;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.ui.internal.synchronize.model;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.errors;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.lib;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.revwalk;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.transport;version="[5.7.0,5.8.0)",
org.eclipse.ui.plugin;bundle-version="[3.108.0,4.0.0)"
diff --git a/org.eclipse.egit.mylyn.ui/pom.xml b/org.eclipse.egit.mylyn.ui/pom.xml
index 973c813e2b..9480b569f7 100644
--- a/org.eclipse.egit.mylyn.ui/pom.xml
+++ b/org.eclipse.egit.mylyn.ui/pom.xml
@@ -18,7 +18,7 @@
<parent>
<groupId>org.eclipse.egit</groupId>
<artifactId>egit-parent</artifactId>
- <version>5.6.1-SNAPSHOT</version>
+ <version>5.7.0-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.egit.mylyn.ui</artifactId>
diff --git a/org.eclipse.egit.repository/pom.xml b/org.eclipse.egit.repository/pom.xml
index d1e7a6a5a6..47fd4ac351 100644
--- a/org.eclipse.egit.repository/pom.xml
+++ b/org.eclipse.egit.repository/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.eclipse.egit</groupId>
<artifactId>egit-parent</artifactId>
- <version>5.6.1-SNAPSHOT</version>
+ <version>5.7.0-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.egit.repository</artifactId>
diff --git a/org.eclipse.egit.source-feature/feature.xml b/org.eclipse.egit.source-feature/feature.xml
index e02de67e00..70bad7bf47 100644
--- a/org.eclipse.egit.source-feature/feature.xml
+++ b/org.eclipse.egit.source-feature/feature.xml
@@ -2,7 +2,7 @@
<feature
id="org.eclipse.egit.source"
label="%featureName"
- version="5.6.1.qualifier"
+ version="5.7.0.qualifier"
provider-name="%providerName"
plugin="org.eclipse.egit"
license-feature="org.eclipse.license"
@@ -26,7 +26,7 @@
</url>
<requires>
- <import feature="org.eclipse.egit" version="5.6.1" match="equivalent"/>
+ <import feature="org.eclipse.egit" version="5.7.0" match="equivalent"/>
</requires>
<plugin
diff --git a/org.eclipse.egit.source-feature/pom.xml b/org.eclipse.egit.source-feature/pom.xml
index ce626307af..41e8defd62 100644
--- a/org.eclipse.egit.source-feature/pom.xml
+++ b/org.eclipse.egit.source-feature/pom.xml
@@ -18,7 +18,7 @@
<parent>
<groupId>org.eclipse.egit</groupId>
<artifactId>egit-parent</artifactId>
- <version>5.6.1-SNAPSHOT</version>
+ <version>5.7.0-SNAPSHOT</version>
</parent>
<groupId>org.eclipse.egit.feature</groupId>
diff --git a/org.eclipse.egit.target/egit-4.10.target b/org.eclipse.egit.target/egit-4.10.target
index 2a80b4b733..1d50d24156 100644
--- a/org.eclipse.egit.target/egit-4.10.target
+++ b/org.eclipse.egit.target/egit-4.10.target
@@ -1,26 +1,26 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="egit-4.10" sequenceNumber="1575495371">
+<target name="egit-4.10" sequenceNumber="1577058597">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="org.eclipse.jetty.client" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.client.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.continuation" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.continuation.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.http" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.http.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.io" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.io.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.security" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.security.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.server" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.server.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.servlet" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.servlet.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.util" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.util.source" version="9.4.22.v20191022"/>
- <repository id="jetty-9.4.22" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.22.v20191022/"/>
+ <unit id="org.eclipse.jetty.client" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.client.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.continuation" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.continuation.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.http" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.http.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.io" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.io.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.security" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.security.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.server" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.server.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.servlet" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.servlet.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.util" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.util.source" version="9.4.24.v20191120"/>
+ <repository id="jetty-9.4.24" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.24.v20191120/"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.license.feature.group" version="0.0.0"/>
diff --git a/org.eclipse.egit.target/egit-4.10.tpd b/org.eclipse.egit.target/egit-4.10.tpd
index 226d00b80d..d0414af0fc 100644
--- a/org.eclipse.egit.target/egit-4.10.tpd
+++ b/org.eclipse.egit.target/egit-4.10.tpd
@@ -1,6 +1,6 @@
target "egit-4.10" with source configurePhase
-include "projects/jetty-9.4.22.tpd"
+include "projects/jetty-9.4.24.tpd"
include "projects/license.tpd"
include "projects/swtbot-snapshot.tpd"
include "orbit/R20191126223242-2019-12.tpd"
diff --git a/org.eclipse.egit.target/egit-4.11.target b/org.eclipse.egit.target/egit-4.11.target
index e569cfc2eb..c80e493972 100644
--- a/org.eclipse.egit.target/egit-4.11.target
+++ b/org.eclipse.egit.target/egit-4.11.target
@@ -1,26 +1,26 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="egit-4.11" sequenceNumber="1575495387">
+<target name="egit-4.11" sequenceNumber="1577058597">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="org.eclipse.jetty.client" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.client.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.continuation" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.continuation.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.http" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.http.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.io" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.io.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.security" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.security.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.server" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.server.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.servlet" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.servlet.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.util" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.util.source" version="9.4.22.v20191022"/>
- <repository id="jetty-9.4.22" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.22.v20191022/"/>
+ <unit id="org.eclipse.jetty.client" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.client.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.continuation" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.continuation.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.http" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.http.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.io" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.io.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.security" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.security.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.server" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.server.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.servlet" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.servlet.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.util" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.util.source" version="9.4.24.v20191120"/>
+ <repository id="jetty-9.4.24" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.24.v20191120/"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.license.feature.group" version="0.0.0"/>
diff --git a/org.eclipse.egit.target/egit-4.11.tpd b/org.eclipse.egit.target/egit-4.11.tpd
index ee4e9d25b7..1085b26943 100644
--- a/org.eclipse.egit.target/egit-4.11.tpd
+++ b/org.eclipse.egit.target/egit-4.11.tpd
@@ -1,6 +1,6 @@
target "egit-4.11" with source configurePhase
-include "projects/jetty-9.4.22.tpd"
+include "projects/jetty-9.4.24.tpd"
include "projects/license.tpd"
include "projects/swtbot-snapshot.tpd"
include "orbit/R20191126223242-2019-12.tpd"
diff --git a/org.eclipse.egit.target/egit-4.12.target b/org.eclipse.egit.target/egit-4.12.target
index 801a23dc04..ec97f65b4a 100644
--- a/org.eclipse.egit.target/egit-4.12.target
+++ b/org.eclipse.egit.target/egit-4.12.target
@@ -1,26 +1,26 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="egit-4.12" sequenceNumber="1575495400">
+<target name="egit-4.12" sequenceNumber="1577058596">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="org.eclipse.jetty.client" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.client.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.continuation" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.continuation.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.http" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.http.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.io" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.io.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.security" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.security.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.server" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.server.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.servlet" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.servlet.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.util" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.util.source" version="9.4.22.v20191022"/>
- <repository id="jetty-9.4.22" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.22.v20191022/"/>
+ <unit id="org.eclipse.jetty.client" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.client.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.continuation" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.continuation.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.http" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.http.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.io" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.io.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.security" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.security.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.server" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.server.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.servlet" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.servlet.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.util" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.util.source" version="9.4.24.v20191120"/>
+ <repository id="jetty-9.4.24" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.24.v20191120/"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.license.feature.group" version="0.0.0"/>
diff --git a/org.eclipse.egit.target/egit-4.12.tpd b/org.eclipse.egit.target/egit-4.12.tpd
index 98cf033fad..3c46252d3c 100644
--- a/org.eclipse.egit.target/egit-4.12.tpd
+++ b/org.eclipse.egit.target/egit-4.12.tpd
@@ -1,6 +1,6 @@
target "egit-4.12" with source configurePhase
-include "projects/jetty-9.4.22.tpd"
+include "projects/jetty-9.4.24.tpd"
include "projects/license.tpd"
include "projects/swtbot-snapshot.tpd"
include "orbit/R20191126223242-2019-12.tpd"
diff --git a/org.eclipse.egit.target/egit-4.13.target b/org.eclipse.egit.target/egit-4.13.target
index 0fb34b1d42..4bc23775b8 100644
--- a/org.eclipse.egit.target/egit-4.13.target
+++ b/org.eclipse.egit.target/egit-4.13.target
@@ -1,26 +1,26 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="egit-4.13" sequenceNumber="1575495416">
+<target name="egit-4.13" sequenceNumber="1577058597">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="org.eclipse.jetty.client" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.client.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.continuation" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.continuation.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.http" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.http.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.io" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.io.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.security" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.security.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.server" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.server.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.servlet" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.servlet.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.util" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.util.source" version="9.4.22.v20191022"/>
- <repository id="jetty-9.4.22" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.22.v20191022/"/>
+ <unit id="org.eclipse.jetty.client" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.client.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.continuation" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.continuation.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.http" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.http.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.io" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.io.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.security" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.security.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.server" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.server.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.servlet" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.servlet.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.util" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.util.source" version="9.4.24.v20191120"/>
+ <repository id="jetty-9.4.24" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.24.v20191120/"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.license.feature.group" version="0.0.0"/>
diff --git a/org.eclipse.egit.target/egit-4.13.tpd b/org.eclipse.egit.target/egit-4.13.tpd
index 3c9e4c38c0..ec944dc458 100644
--- a/org.eclipse.egit.target/egit-4.13.tpd
+++ b/org.eclipse.egit.target/egit-4.13.tpd
@@ -1,6 +1,6 @@
target "egit-4.13" with source configurePhase
-include "projects/jetty-9.4.22.tpd"
+include "projects/jetty-9.4.24.tpd"
include "projects/license.tpd"
include "projects/swtbot-snapshot.tpd"
include "orbit/R20191126223242-2019-12.tpd"
diff --git a/org.eclipse.egit.target/egit-4.14-staging.target b/org.eclipse.egit.target/egit-4.14-staging.target
index 1f1a6b2d45..6f3a0bbc20 100644
--- a/org.eclipse.egit.target/egit-4.14-staging.target
+++ b/org.eclipse.egit.target/egit-4.14-staging.target
@@ -1,26 +1,26 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="egit-4.14-staging" sequenceNumber="1575495431">
+<target name="egit-4.14-staging" sequenceNumber="1577058597">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="org.eclipse.jetty.client" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.client.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.continuation" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.continuation.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.http" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.http.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.io" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.io.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.security" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.security.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.server" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.server.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.servlet" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.servlet.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.util" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.util.source" version="9.4.22.v20191022"/>
- <repository id="jetty-9.4.22" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.22.v20191022/"/>
+ <unit id="org.eclipse.jetty.client" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.client.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.continuation" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.continuation.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.http" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.http.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.io" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.io.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.security" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.security.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.server" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.server.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.servlet" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.servlet.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.util" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.util.source" version="9.4.24.v20191120"/>
+ <repository id="jetty-9.4.24" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.24.v20191120/"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.license.feature.group" version="0.0.0"/>
diff --git a/org.eclipse.egit.target/egit-4.14-staging.tpd b/org.eclipse.egit.target/egit-4.14-staging.tpd
index db290025ca..d8bf386088 100644
--- a/org.eclipse.egit.target/egit-4.14-staging.tpd
+++ b/org.eclipse.egit.target/egit-4.14-staging.tpd
@@ -1,6 +1,6 @@
target "egit-4.14-staging" with source configurePhase
-include "projects/jetty-9.4.22.tpd"
+include "projects/jetty-9.4.24.tpd"
include "projects/license.tpd"
include "projects/swtbot-snapshot.tpd"
include "orbit/R20191126223242-2019-12.tpd"
diff --git a/org.eclipse.egit.target/egit-4.6.target b/org.eclipse.egit.target/egit-4.6.target
index efa6addeff..2c986fc6a6 100644
--- a/org.eclipse.egit.target/egit-4.6.target
+++ b/org.eclipse.egit.target/egit-4.6.target
@@ -1,26 +1,26 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="egit-4.6" sequenceNumber="1575495459">
+<target name="egit-4.6" sequenceNumber="1577058619">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="org.eclipse.jetty.client" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.client.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.continuation" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.continuation.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.http" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.http.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.io" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.io.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.security" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.security.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.server" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.server.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.servlet" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.servlet.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.util" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.util.source" version="9.4.22.v20191022"/>
- <repository id="jetty-9.4.22" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.22.v20191022/"/>
+ <unit id="org.eclipse.jetty.client" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.client.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.continuation" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.continuation.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.http" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.http.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.io" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.io.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.security" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.security.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.server" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.server.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.servlet" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.servlet.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.util" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.util.source" version="9.4.24.v20191120"/>
+ <repository id="jetty-9.4.24" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.24.v20191120/"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.license.feature.group" version="0.0.0"/>
diff --git a/org.eclipse.egit.target/egit-4.6.tpd b/org.eclipse.egit.target/egit-4.6.tpd
index 9ce4e16e6a..fe3bc00c61 100644
--- a/org.eclipse.egit.target/egit-4.6.tpd
+++ b/org.eclipse.egit.target/egit-4.6.tpd
@@ -1,6 +1,6 @@
target "egit-4.6" with source configurePhase
-include "projects/jetty-9.4.22.tpd"
+include "projects/jetty-9.4.24.tpd"
include "projects/license.tpd"
include "projects/swtbot-snapshot.tpd"
include "orbit/R20191126223242-2019-12.tpd"
diff --git a/org.eclipse.egit.target/egit-4.7.target b/org.eclipse.egit.target/egit-4.7.target
index 4b571257d9..8be45da968 100644
--- a/org.eclipse.egit.target/egit-4.7.target
+++ b/org.eclipse.egit.target/egit-4.7.target
@@ -1,26 +1,26 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="egit-4.7" sequenceNumber="1575495459">
+<target name="egit-4.7" sequenceNumber="1577058605">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="org.eclipse.jetty.client" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.client.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.continuation" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.continuation.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.http" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.http.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.io" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.io.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.security" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.security.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.server" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.server.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.servlet" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.servlet.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.util" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.util.source" version="9.4.22.v20191022"/>
- <repository id="jetty-9.4.22" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.22.v20191022/"/>
+ <unit id="org.eclipse.jetty.client" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.client.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.continuation" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.continuation.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.http" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.http.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.io" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.io.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.security" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.security.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.server" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.server.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.servlet" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.servlet.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.util" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.util.source" version="9.4.24.v20191120"/>
+ <repository id="jetty-9.4.24" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.24.v20191120/"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.license.feature.group" version="0.0.0"/>
diff --git a/org.eclipse.egit.target/egit-4.7.tpd b/org.eclipse.egit.target/egit-4.7.tpd
index 136be72cb1..22f3635b8f 100644
--- a/org.eclipse.egit.target/egit-4.7.tpd
+++ b/org.eclipse.egit.target/egit-4.7.tpd
@@ -1,6 +1,6 @@
target "egit-4.7" with source configurePhase
-include "projects/jetty-9.4.22.tpd"
+include "projects/jetty-9.4.24.tpd"
include "projects/license.tpd"
include "projects/swtbot-snapshot.tpd"
include "orbit/R20191126223242-2019-12.tpd"
diff --git a/org.eclipse.egit.target/egit-4.8.target b/org.eclipse.egit.target/egit-4.8.target
index d76cbf16bc..9471c3f640 100644
--- a/org.eclipse.egit.target/egit-4.8.target
+++ b/org.eclipse.egit.target/egit-4.8.target
@@ -1,26 +1,26 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="egit-4.8" sequenceNumber="1575495461">
+<target name="egit-4.8" sequenceNumber="1577058597">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="org.eclipse.jetty.client" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.client.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.continuation" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.continuation.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.http" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.http.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.io" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.io.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.security" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.security.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.server" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.server.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.servlet" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.servlet.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.util" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.util.source" version="9.4.22.v20191022"/>
- <repository id="jetty-9.4.22" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.22.v20191022/"/>
+ <unit id="org.eclipse.jetty.client" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.client.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.continuation" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.continuation.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.http" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.http.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.io" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.io.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.security" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.security.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.server" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.server.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.servlet" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.servlet.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.util" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.util.source" version="9.4.24.v20191120"/>
+ <repository id="jetty-9.4.24" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.24.v20191120/"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.license.feature.group" version="0.0.0"/>
diff --git a/org.eclipse.egit.target/egit-4.8.tpd b/org.eclipse.egit.target/egit-4.8.tpd
index 0c3ed9d17e..e0f100ef0e 100644
--- a/org.eclipse.egit.target/egit-4.8.tpd
+++ b/org.eclipse.egit.target/egit-4.8.tpd
@@ -1,6 +1,6 @@
target "egit-4.8" with source configurePhase
-include "projects/jetty-9.4.22.tpd"
+include "projects/jetty-9.4.24.tpd"
include "projects/license.tpd"
include "projects/swtbot-snapshot.tpd"
include "orbit/R20191126223242-2019-12.tpd"
diff --git a/org.eclipse.egit.target/egit-4.9.target b/org.eclipse.egit.target/egit-4.9.target
index 9293ea0b88..572123b884 100644
--- a/org.eclipse.egit.target/egit-4.9.target
+++ b/org.eclipse.egit.target/egit-4.9.target
@@ -1,26 +1,26 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="egit-4.9" sequenceNumber="1575495471">
+<target name="egit-4.9" sequenceNumber="1577058578">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
- <unit id="org.eclipse.jetty.client" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.client.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.continuation" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.continuation.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.http" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.http.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.io" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.io.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.security" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.security.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.server" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.server.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.servlet" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.servlet.source" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.util" version="9.4.22.v20191022"/>
- <unit id="org.eclipse.jetty.util.source" version="9.4.22.v20191022"/>
- <repository id="jetty-9.4.22" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.22.v20191022/"/>
+ <unit id="org.eclipse.jetty.client" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.client.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.continuation" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.continuation.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.http" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.http.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.io" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.io.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.security" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.security.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.server" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.server.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.servlet" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.servlet.source" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.util" version="9.4.24.v20191120"/>
+ <unit id="org.eclipse.jetty.util.source" version="9.4.24.v20191120"/>
+ <repository id="jetty-9.4.24" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.24.v20191120/"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.license.feature.group" version="0.0.0"/>
diff --git a/org.eclipse.egit.target/egit-4.9.tpd b/org.eclipse.egit.target/egit-4.9.tpd
index b53fbd2b0c..267404560c 100644
--- a/org.eclipse.egit.target/egit-4.9.tpd
+++ b/org.eclipse.egit.target/egit-4.9.tpd
@@ -1,6 +1,6 @@
target "egit-4.9" with source configurePhase
-include "projects/jetty-9.4.22.tpd"
+include "projects/jetty-9.4.24.tpd"
include "projects/license.tpd"
include "projects/swtbot-snapshot.tpd"
include "orbit/R20191126223242-2019-12.tpd"
diff --git a/org.eclipse.egit.target/pom.xml b/org.eclipse.egit.target/pom.xml
index 69cdc2381b..a5e83a77df 100644
--- a/org.eclipse.egit.target/pom.xml
+++ b/org.eclipse.egit.target/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.eclipse.egit</groupId>
<artifactId>egit-parent</artifactId>
- <version>5.6.1-SNAPSHOT</version>
+ <version>5.7.0-SNAPSHOT</version>
</parent>
<build>
diff --git a/org.eclipse.egit.target/projects/jetty-9.4.22.tpd b/org.eclipse.egit.target/projects/jetty-9.4.22.tpd
deleted file mode 100644
index 562e017d32..0000000000
--- a/org.eclipse.egit.target/projects/jetty-9.4.22.tpd
+++ /dev/null
@@ -1,20 +0,0 @@
-target "jetty-9.4.22" with source configurePhase
-
-location jetty-9.4.22 "https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.22.v20191022/" {
- org.eclipse.jetty.client [9.4.22.v20191022,9.4.22.v20191022]
- org.eclipse.jetty.client.source [9.4.22.v20191022,9.4.22.v20191022]
- org.eclipse.jetty.continuation [9.4.22.v20191022,9.4.22.v20191022]
- org.eclipse.jetty.continuation.source [9.4.22.v20191022,9.4.22.v20191022]
- org.eclipse.jetty.http [9.4.22.v20191022,9.4.22.v20191022]
- org.eclipse.jetty.http.source [9.4.22.v20191022,9.4.22.v20191022]
- org.eclipse.jetty.io [9.4.22.v20191022,9.4.22.v20191022]
- org.eclipse.jetty.io.source [9.4.22.v20191022,9.4.22.v20191022]
- org.eclipse.jetty.security [9.4.22.v20191022,9.4.22.v20191022]
- org.eclipse.jetty.security.source [9.4.22.v20191022,9.4.22.v20191022]
- org.eclipse.jetty.server [9.4.22.v20191022,9.4.22.v20191022]
- org.eclipse.jetty.server.source [9.4.22.v20191022,9.4.22.v20191022]
- org.eclipse.jetty.servlet [9.4.22.v20191022,9.4.22.v20191022]
- org.eclipse.jetty.servlet.source [9.4.22.v20191022,9.4.22.v20191022]
- org.eclipse.jetty.util [9.4.22.v20191022,9.4.22.v20191022]
- org.eclipse.jetty.util.source [9.4.22.v20191022,9.4.22.v20191022]
-}
diff --git a/org.eclipse.egit.target/projects/jetty-9.4.24.tpd b/org.eclipse.egit.target/projects/jetty-9.4.24.tpd
new file mode 100644
index 0000000000..7b2af02385
--- /dev/null
+++ b/org.eclipse.egit.target/projects/jetty-9.4.24.tpd
@@ -0,0 +1,20 @@
+target "jetty-9.4.24" with source configurePhase
+
+location jetty-9.4.24 "https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.24.v20191120/" {
+ org.eclipse.jetty.client [9.4.24.v20191120,9.4.24.v20191120]
+ org.eclipse.jetty.client.source [9.4.24.v20191120,9.4.24.v20191120]
+ org.eclipse.jetty.continuation [9.4.24.v20191120,9.4.24.v20191120]
+ org.eclipse.jetty.continuation.source [9.4.24.v20191120,9.4.24.v20191120]
+ org.eclipse.jetty.http [9.4.24.v20191120,9.4.24.v20191120]
+ org.eclipse.jetty.http.source [9.4.24.v20191120,9.4.24.v20191120]
+ org.eclipse.jetty.io [9.4.24.v20191120,9.4.24.v20191120]
+ org.eclipse.jetty.io.source [9.4.24.v20191120,9.4.24.v20191120]
+ org.eclipse.jetty.security [9.4.24.v20191120,9.4.24.v20191120]
+ org.eclipse.jetty.security.source [9.4.24.v20191120,9.4.24.v20191120]
+ org.eclipse.jetty.server [9.4.24.v20191120,9.4.24.v20191120]
+ org.eclipse.jetty.server.source [9.4.24.v20191120,9.4.24.v20191120]
+ org.eclipse.jetty.servlet [9.4.24.v20191120,9.4.24.v20191120]
+ org.eclipse.jetty.servlet.source [9.4.24.v20191120,9.4.24.v20191120]
+ org.eclipse.jetty.util [9.4.24.v20191120,9.4.24.v20191120]
+ org.eclipse.jetty.util.source [9.4.24.v20191120,9.4.24.v20191120]
+}
diff --git a/org.eclipse.egit.ui.test/META-INF/MANIFEST.MF b/org.eclipse.egit.ui.test/META-INF/MANIFEST.MF
index 2f6434c1df..07085f337e 100644
--- a/org.eclipse.egit.ui.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.egit.ui.test/META-INF/MANIFEST.MF
@@ -5,7 +5,7 @@ Bundle-Vendor: Eclipse.org
Automatic-Module-Name: org.eclipse.egit.ui.test
Bundle-SymbolicName: org.eclipse.egit.ui.test;singleton:=true
Fragment-Host: org.eclipse.egit.ui
-Bundle-Version: 5.6.1.qualifier
+Bundle-Version: 5.7.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.apache.log4j;bundle-version="[1.0.0,2.0.0)",
org.eclipse.core.runtime;bundle-version="[3.12.0,4.0.0)",
@@ -15,24 +15,24 @@ Require-Bundle: org.apache.log4j;bundle-version="[1.0.0,2.0.0)",
org.eclipse.ui;bundle-version="[3.108.0,4.0.0)",
org.hamcrest;bundle-version="[1.1.0,2.0.0)",
org.eclipse.jdt.launching;bundle-version="[3.8.100,4.0.0)",
- org.eclipse.egit.core.junit;bundle-version="[5.6.1,5.7.0)"
+ org.eclipse.egit.core.junit;bundle-version="[5.7.0,5.8.0)"
Import-Package: net.bytebuddy;version="[1.7.9,2.0.0)",
org.eclipse.core.net.proxy;bundle-version="[1.1.0,2.0.0)",
- org.eclipse.egit.gitflow;version="[5.6.1,5.7.0)",
- org.eclipse.egit.gitflow.op;version="[5.6.1,5.7.0)",
- org.eclipse.egit.gitflow.ui;version="[5.6.1,5.7.0)",
- org.eclipse.egit.gitflow.ui.internal;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.api;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.api.errors;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.attributes;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.junit;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.junit.http;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.lib;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.revwalk;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.storage.file;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.transport;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.transport.resolver;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.util;version="[5.6.1,5.7.0)",
+ org.eclipse.egit.gitflow;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.gitflow.op;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.gitflow.ui;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.gitflow.ui.internal;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.api;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.api.errors;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.attributes;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.junit;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.junit.http;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.lib;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.revwalk;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.storage.file;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.transport;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.transport.resolver;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.util;version="[5.7.0,5.8.0)",
org.eclipse.swt.widgets,
org.eclipse.swtbot.eclipse.finder,
org.eclipse.swtbot.eclipse.finder.waits,
diff --git a/org.eclipse.egit.ui.test/pom.xml b/org.eclipse.egit.ui.test/pom.xml
index 455c4b2a38..7feb82e4e9 100644
--- a/org.eclipse.egit.ui.test/pom.xml
+++ b/org.eclipse.egit.ui.test/pom.xml
@@ -18,7 +18,7 @@
<parent>
<groupId>org.eclipse.egit</groupId>
<artifactId>egit-parent</artifactId>
- <version>5.6.1-SNAPSHOT</version>
+ <version>5.7.0-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.egit.ui.test</artifactId>
diff --git a/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/internal/actions/StashesMenuTest.java b/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/internal/actions/StashesMenuTest.java
index 1cab418ed5..544c6f4a7a 100644
--- a/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/internal/actions/StashesMenuTest.java
+++ b/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/internal/actions/StashesMenuTest.java
@@ -15,6 +15,8 @@ import static org.junit.Assert.assertTrue;
import java.text.MessageFormat;
+import org.eclipse.egit.core.test.TestUtils;
+import org.eclipse.egit.ui.JobFamilies;
import org.eclipse.egit.ui.common.LocalRepositoryTestCase;
import org.eclipse.egit.ui.internal.UIText;
import org.eclipse.egit.ui.test.ContextMenuHelper;
@@ -66,6 +68,8 @@ public class StashesMenuTest extends LocalRepositoryTestCase {
enterMessageText.setText(stashMessage);
createDialog.bot().button(UIText.StashCreateCommand_ButtonOK).click();
+ TestUtils.waitForJobs(5000, JobFamilies.STASH);
+
assertEquals(originalContent, getTestFileContent());
ContextMenuHelper.clickContextMenu(selectProject(), "Team", STASHES,
@@ -81,6 +85,8 @@ public class StashesMenuTest extends LocalRepositoryTestCase {
util.getPluginLocalizedValue("StashApplyCommand.label"))
.click();
+ TestUtils.waitForJobs(5000, JobFamilies.STASH);
+
assertEquals(modifiedContent, getTestFileContent());
}
diff --git a/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/repositories/GitRepositoriesViewBranchHandlingTest.java b/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/repositories/GitRepositoriesViewBranchHandlingTest.java
index 27c32d70bc..7e181a2c07 100644
--- a/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/repositories/GitRepositoriesViewBranchHandlingTest.java
+++ b/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/repositories/GitRepositoriesViewBranchHandlingTest.java
@@ -86,6 +86,11 @@ public class GitRepositoriesViewBranchHandlingTest extends
setVerboseBranchMode(false);
repositoryFile = createProjectAndCommitToRepository();
remoteRepositoryFile = createRemoteRepository(repositoryFile);
+ // Create one more branch on HEAD^1
+ try (Git git = new Git(lookupRepository(remoteRepositoryFile))) {
+ git.branchCreate().setName("initial").setStartPoint("HEAD^1")
+ .call();
+ }
// now let's clone the remote repository
final URIish uri = new URIish(remoteRepositoryFile.getPath());
final File workdir = new File(getTestDirectory(), "Cloned");
@@ -233,7 +238,9 @@ public class GitRepositoriesViewBranchHandlingTest extends
item = TestUtil.expandAndWait(myRepoViewUtil.getRemoteBranchesItem(tree,
clonedRepositoryFile));
children = item.getNodes();
- assertEquals("Wrong number of children", 2, children.size());
+ assertEquals("Wrong number of children", 3, children.size());
+ assertTrue("Missing remote branch",
+ children.contains("origin/initial"));
assertTrue("Missing remote branch", children.contains("origin/master"));
assertTrue("Missing remote branch", children.contains("origin/stable"));
item.getNode("origin/stable").select();
@@ -270,7 +277,7 @@ public class GitRepositoriesViewBranchHandlingTest extends
item = TestUtil.expandAndWait(myRepoViewUtil.getRemoteBranchesItem(tree,
clonedRepositoryFile));
List<String> children = item.getNodes();
- assertEquals("Wrong number of remote children", 2, children.size());
+ assertEquals("Wrong number of remote children", 3, children.size());
item.getNode("origin/stable").select();
ContextMenuHelper.clickContextMenuSync(tree,
@@ -537,4 +544,52 @@ public class GitRepositoriesViewBranchHandlingTest extends
.getNode(UIText.BranchPropertySource_RebaseDescriptor);
assertEquals("true", rebaseItem.cell(1));
}
+
+ @Test
+ public void testBranchConfigurationDecoration() throws Exception {
+ SWTBotView view = getOrOpenView();
+
+ SWTBotTreeItem repoItem = myRepoViewUtil.getRootItem(view.bot().tree(),
+ clonedRepositoryFile);
+ TestUtil.waitForDecorations();
+ String label = repoItem.getText();
+ assertTrue("Expected branch decoration to be present: " + label,
+ label.contains("[master]"));
+ SWTBotTreeItem localItem = myRepoViewUtil
+ .getLocalBranchesItem(view.bot().tree(), clonedRepositoryFile);
+ TestUtil.expandAndWait(localItem).getNode("master").select();
+ ContextMenuHelper.clickContextMenu(view.bot().tree(),
+ myUtil.getPluginLocalizedValue("ConfigurBranchCommand.label"));
+
+ SWTBotShell configureBranchDialog = bot.shell(
+ UIText.BranchConfigurationDialog_BranchConfigurationTitle);
+ configureBranchDialog.bot()
+ .comboBoxWithLabel(
+ UIText.BranchConfigurationDialog_UpstreamBranchLabel)
+ .setSelection(0);
+ // add a listener to wait for the configuration changed event
+ final AtomicBoolean changed = new AtomicBoolean();
+ ConfigChangedListener listener = new ConfigChangedListener() {
+ @Override
+ public void onConfigChanged(ConfigChangedEvent event) {
+ changed.set(true);
+ }
+ };
+ ListenerHandle handle = lookupRepository(clonedRepositoryFile)
+ .getConfig().addChangeListener(listener);
+ // only now click ok
+ configureBranchDialog.bot()
+ .button(UIText.BranchConfigurationDialog_ButtonOK).click();
+ bot.waitUntil(Conditions.shellCloses(configureBranchDialog));
+ // cleanup behind ourselves
+ handle.remove();
+ assertTrue("Expected a ConfigChangeEvent", changed.get());
+ TestUtil.waitForJobs(100, 5000);
+ TestUtil.waitForDecorations();
+ repoItem = myRepoViewUtil.getRootItem(view.bot().tree(),
+ clonedRepositoryFile);
+ label = repoItem.getText();
+ assertTrue("Expected branch decoration to be updated: " + label,
+ label.contains("[master \u21911]"));
+ }
}
diff --git a/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/repositories/GitRepositoriesViewTestUtils.java b/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/repositories/GitRepositoriesViewTestUtils.java
index 5190cf918b..9e95b5207e 100644
--- a/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/repositories/GitRepositoriesViewTestUtils.java
+++ b/org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/repositories/GitRepositoriesViewTestUtils.java
@@ -44,7 +44,7 @@ public class GitRepositoriesViewTestUtils {
@Override
public void run() {
- providerRef.set(new RepositoryTreeNodeLabelProvider());
+ providerRef.set(new RepositoryTreeNodeLabelProvider(true));
}
});
diff --git a/org.eclipse.egit.ui/META-INF/MANIFEST.MF b/org.eclipse.egit.ui/META-INF/MANIFEST.MF
index ed601659c2..9a9f008f66 100644
--- a/org.eclipse.egit.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.egit.ui/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Automatic-Module-Name: org.eclipse.egit.ui
Bundle-SymbolicName: org.eclipse.egit.ui;singleton:=true
-Bundle-Version: 5.6.1.qualifier
+Bundle-Version: 5.7.0.qualifier
Bundle-Activator: org.eclipse.egit.ui.Activator
Bundle-Vendor: %Bundle-Vendor
Bundle-Localization: plugin
@@ -37,93 +37,93 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.12.0,4.0.0)",
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Service-Component: OSGI-INF/org.eclipse.egit.ui.internal.clone.GitCloneDropAdapter.xml
-Import-Package: org.eclipse.egit.core;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.attributes;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.internal;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.internal.gerrit;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.internal.indexdiff;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.internal.job;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.internal.rebase;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.internal.storage;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.internal.util;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.op;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.project;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.securestorage;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.synchronize;version="[5.6.1,5.7.0)",
- org.eclipse.egit.core.synchronize.dto;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.annotations;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.api;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.api.errors;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.attributes;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.blame;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.diff;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.dircache;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.errors;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.events;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.lib;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.merge;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.notes;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.revplot;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.revwalk;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.revwalk.filter;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.storage.file;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.submodule;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.transport;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.treewalk;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.treewalk.filter;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.util;version="[5.6.1,5.7.0)",
- org.eclipse.jgit.util.io;version="[5.6.1,5.7.0)"
-Export-Package: org.eclipse.egit.ui;version="5.6.1";x-friends:="org.eclipse.egit.mylyn.ui,org.eclipse.egit.gitflow.ui,org.eclipse.mylyn.github.ui",
- org.eclipse.egit.ui.internal;version="5.6.1";x-friends:="org.eclipse.egit.import,org.eclipse.egit.gitflow.ui,org.eclipse.mylyn.github.ui",
- org.eclipse.egit.ui.internal.actions;version="5.6.1";x-friends:="org.eclipse.egit.gitflow.ui",
- org.eclipse.egit.ui.internal.blame;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.branch;version="5.6.1";x-friends:="org.eclipse.egit.gitflow.ui,org.eclipse.mylyn.github.ui",
- org.eclipse.egit.ui.internal.clean;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.clone;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.commands;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.commands.shared;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.commit;version="5.6.1";x-friends:="org.eclipse.egit.mylyn.ui,org.eclipse.egit.gitflow.ui,org.eclipse.mylyn.github.ui",
- org.eclipse.egit.ui.internal.commit.command;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.components;version="5.6.1";x-friends:="org.eclipse.mylyn.github.ui",
- org.eclipse.egit.ui.internal.credentials;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.decorators;version="5.6.1";x-friends:="org.eclipse.egit.gitflow.ui",
- org.eclipse.egit.ui.internal.dialogs;version="5.6.1";x-friends:="org.eclipse.egit.gitflow.ui",
- org.eclipse.egit.ui.internal.expressions;version="5.6.1";x-friends:="org.eclipse.egit.gitflow.ui",
- org.eclipse.egit.ui.internal.factories;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.fetch;version="5.6.1";x-friends:="org.eclipse.mylyn.github.ui",
- org.eclipse.egit.ui.internal.gerrit;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.groups;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.handler;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.history;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.history.command;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.importing;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.jobs;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.merge;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.operations;version="5.6.1";x-friends:="org.eclipse.egit.gitflow.ui",
- org.eclipse.egit.ui.internal.patch;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.preferences;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.provisional.wizards;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.pull;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.push;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.rebase;version="5.6.1";x-friends:="org.eclipse.egit.gitflow.ui",
- org.eclipse.egit.ui.internal.reflog;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.reflog.command;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.repository;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.repository.tree;version="5.6.1";x-friends:="org.eclipse.egit.gitflow.ui",
- org.eclipse.egit.ui.internal.repository.tree.command;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.repository.tree.filter;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.resources;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.revision;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.search;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.selection;version="5.6.1";x-friends:="org.eclipse.egit.gitflow.ui",
- org.eclipse.egit.ui.internal.sharing;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.staging;version="5.6.1";x-friends:="org.eclipse.egit.mylyn.ui",
- org.eclipse.egit.ui.internal.stash;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.submodule;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.synchronize;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.synchronize.action;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.synchronize.compare;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.synchronize.mapping;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.synchronize.model;version="5.6.1";x-friends:="org.eclipse.egit.mylyn.ui",
- org.eclipse.egit.ui.internal.trace;version="5.6.1";x-internal:=true,
- org.eclipse.egit.ui.internal.variables;version="5.6.1";x-internal:=true
+Import-Package: org.eclipse.egit.core;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.attributes;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.internal;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.internal.gerrit;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.internal.indexdiff;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.internal.job;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.internal.rebase;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.internal.storage;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.internal.util;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.op;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.project;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.securestorage;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.synchronize;version="[5.7.0,5.8.0)",
+ org.eclipse.egit.core.synchronize.dto;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.annotations;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.api;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.api.errors;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.attributes;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.blame;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.diff;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.dircache;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.errors;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.events;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.lib;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.merge;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.notes;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.revplot;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.revwalk;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.revwalk.filter;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.storage.file;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.submodule;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.transport;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.treewalk;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.treewalk.filter;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.util;version="[5.7.0,5.8.0)",
+ org.eclipse.jgit.util.io;version="[5.7.0,5.8.0)"
+Export-Package: org.eclipse.egit.ui;version="5.7.0";x-friends:="org.eclipse.egit.mylyn.ui,org.eclipse.egit.gitflow.ui,org.eclipse.mylyn.github.ui",
+ org.eclipse.egit.ui.internal;version="5.7.0";x-friends:="org.eclipse.egit.import,org.eclipse.egit.gitflow.ui,org.eclipse.mylyn.github.ui",
+ org.eclipse.egit.ui.internal.actions;version="5.7.0";x-friends:="org.eclipse.egit.gitflow.ui",
+ org.eclipse.egit.ui.internal.blame;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.branch;version="5.7.0";x-friends:="org.eclipse.egit.gitflow.ui,org.eclipse.mylyn.github.ui",
+ org.eclipse.egit.ui.internal.clean;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.clone;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.commands;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.commands.shared;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.commit;version="5.7.0";x-friends:="org.eclipse.egit.mylyn.ui,org.eclipse.egit.gitflow.ui,org.eclipse.mylyn.github.ui",
+ org.eclipse.egit.ui.internal.commit.command;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.components;version="5.7.0";x-friends:="org.eclipse.mylyn.github.ui",
+ org.eclipse.egit.ui.internal.credentials;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.decorators;version="5.7.0";x-friends:="org.eclipse.egit.gitflow.ui",
+ org.eclipse.egit.ui.internal.dialogs;version="5.7.0";x-friends:="org.eclipse.egit.gitflow.ui",
+ org.eclipse.egit.ui.internal.expressions;version="5.7.0";x-friends:="org.eclipse.egit.gitflow.ui",
+ org.eclipse.egit.ui.internal.factories;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.fetch;version="5.7.0";x-friends:="org.eclipse.mylyn.github.ui",
+ org.eclipse.egit.ui.internal.gerrit;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.groups;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.handler;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.history;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.history.command;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.importing;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.jobs;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.merge;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.operations;version="5.7.0";x-friends:="org.eclipse.egit.gitflow.ui",
+ org.eclipse.egit.ui.internal.patch;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.preferences;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.provisional.wizards;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.pull;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.push;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.rebase;version="5.7.0";x-friends:="org.eclipse.egit.gitflow.ui",
+ org.eclipse.egit.ui.internal.reflog;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.reflog.command;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.repository;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.repository.tree;version="5.7.0";x-friends:="org.eclipse.egit.gitflow.ui",
+ org.eclipse.egit.ui.internal.repository.tree.command;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.repository.tree.filter;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.resources;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.revision;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.search;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.selection;version="5.7.0";x-friends:="org.eclipse.egit.gitflow.ui",
+ org.eclipse.egit.ui.internal.sharing;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.staging;version="5.7.0";x-friends:="org.eclipse.egit.mylyn.ui",
+ org.eclipse.egit.ui.internal.stash;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.submodule;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.synchronize;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.synchronize.action;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.synchronize.compare;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.synchronize.mapping;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.synchronize.model;version="5.7.0";x-friends:="org.eclipse.egit.mylyn.ui",
+ org.eclipse.egit.ui.internal.trace;version="5.7.0";x-internal:=true,
+ org.eclipse.egit.ui.internal.variables;version="5.7.0";x-internal:=true
diff --git a/org.eclipse.egit.ui/pom.xml b/org.eclipse.egit.ui/pom.xml
index 6624040f30..e10b96227a 100644
--- a/org.eclipse.egit.ui/pom.xml
+++ b/org.eclipse.egit.ui/pom.xml
@@ -18,7 +18,7 @@
<parent>
<groupId>org.eclipse.egit</groupId>
<artifactId>egit-parent</artifactId>
- <version>5.6.1-SNAPSHOT</version>
+ <version>5.7.0-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.egit.ui</artifactId>
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchOperationUI.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchOperationUI.java
index 14e4f3e986..02e4ee1355 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchOperationUI.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchOperationUI.java
@@ -428,7 +428,8 @@ public class BranchOperationUI {
public static void handleSingleRepositoryCheckoutOperationResult(
Repository repository, CheckoutResult result, String target) {
- if (result.getStatus() == CheckoutResult.Status.CONFLICTS) {
+ switch (result.getStatus()) {
+ case CONFLICTS:
PlatformUI.getWorkbench().getDisplay().asyncExec(() -> {
Shell shell = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getShell();
@@ -440,7 +441,8 @@ public class BranchOperationUI {
.start();
}
});
- } else if (result.getStatus() == CheckoutResult.Status.NONDELETED) {
+ break;
+ case NONDELETED:
// double-check if the files are still there
boolean show = false;
List<String> pathList = result.getUndeletedList();
@@ -459,7 +461,11 @@ public class BranchOperationUI {
new NonDeletedFilesDialog(shell, repository,
result.getUndeletedList()).open();
});
- } else {
+ break;
+ case OK:
+ return;
+ case NOT_TRIED:
+ case ERROR:
String repoName = Activator.getDefault().getRepositoryUtil()
.getRepositoryName(repository);
String message = NLS.bind(
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchProjectTracker.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchProjectTracker.java
index 61aa9b1c52..7d00a36870 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchProjectTracker.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/BranchProjectTracker.java
@@ -100,7 +100,7 @@ class BranchProjectTracker {
public ProjectTrackerMemento snapshot() {
ProjectTrackerMemento memento = new ProjectTrackerMemento();
Stream.of(repositories).map(this::takeSnapshot).filter(Objects::nonNull)
- .forEach(x -> memento.addSnapshot(x));
+ .forEach(memento::addSnapshot);
return memento;
}
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/ProjectTrackerPreferenceHelper.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/ProjectTrackerPreferenceHelper.java
index 5726f520d2..303bc901a0 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/ProjectTrackerPreferenceHelper.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/branch/ProjectTrackerPreferenceHelper.java
@@ -126,7 +126,7 @@ class ProjectTrackerPreferenceHelper {
return Collections.emptyList();
}
List<String> projectPaths = Stream.of(children)
- .map(child -> child.getTextData())
+ .map(IMemento::getTextData)
.filter(x -> !StringUtils.isEmptyOrNull(x))
.collect(Collectors.toList());
return projectPaths;
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/GitSelectRepositoryPage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/GitSelectRepositoryPage.java
index 1f57fb4d80..2a4ce48bdf 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/GitSelectRepositoryPage.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/GitSelectRepositoryPage.java
@@ -179,7 +179,7 @@ public class GitSelectRepositoryPage extends WizardPage {
return false;
}
});
- tv.setLabelProvider(new RepositoryTreeNodeLabelProvider());
+ tv.setLabelProvider(new RepositoryTreeNodeLabelProvider(true));
tv.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/GitSelectWizardPage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/GitSelectWizardPage.java
index fce34ef522..4b998c1172 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/GitSelectWizardPage.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/clone/GitSelectWizardPage.java
@@ -200,7 +200,7 @@ public class GitSelectWizardPage extends WizardPage {
tv.setContentProvider(cp);
GridDataFactory.fillDefaults().grab(true, true).hint(SWT.DEFAULT, 200)
.applyTo(tv.getTree());
- tv.setLabelProvider(new RepositoryTreeNodeLabelProvider());
+ tv.setLabelProvider(new RepositoryTreeNodeLabelProvider(true));
tv.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/DiffEditorOutlinePage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/DiffEditorOutlinePage.java
index b570a2ff27..4257154c68 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/DiffEditorOutlinePage.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/DiffEditorOutlinePage.java
@@ -76,7 +76,7 @@ public class DiffEditorOutlinePage extends NestedContentOutlinePage {
viewer.setLabelProvider(new DiffLabelProvider());
viewer.addDoubleClickListener(
event -> openFolder(event.getSelection()));
- viewer.addOpenListener(event -> fireOpenEvent(event));
+ viewer.addOpenListener(this::fireOpenEvent);
if (input != null) {
viewer.setInput(input);
}
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/MultiPageEditorContentOutlinePage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/MultiPageEditorContentOutlinePage.java
index 26c1ec4f34..584ba2e742 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/MultiPageEditorContentOutlinePage.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/MultiPageEditorContentOutlinePage.java
@@ -53,8 +53,7 @@ public class MultiPageEditorContentOutlinePage extends ContentOutlinePage {
private final MultiPageEditorPart editorPart;
- private final ISelectionChangedListener globalSelectionListener = //
- event -> fireSelectionChangedEvent(event);
+ private final ISelectionChangedListener globalSelectionListener = this::fireSelectionChangedEvent;
private final CopyOnWriteArrayList<ISelectionChangedListener> selectionListeners = new CopyOnWriteArrayList<>();
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/command/RevertHandler.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/command/RevertHandler.java
index fa19de2ea4..bef0f7f68b 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/command/RevertHandler.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/command/RevertHandler.java
@@ -61,7 +61,8 @@ public class RevertHandler extends CommitCommandHandler {
}
List<RevCommit> commits = repoCommits.stream()
- .map(c -> c.getRevCommit()).collect(Collectors.toList());
+ .map(IRepositoryCommit::getRevCommit)
+ .collect(Collectors.toList());
try {
if (!CommitUtil.areCommitsInCurrentBranch(commits, repo)) {
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/DecoratorRepositoryStateCache.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/DecoratorRepositoryStateCache.java
index f21ce60c5a..1f17e4a23b 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/DecoratorRepositoryStateCache.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/DecoratorRepositoryStateCache.java
@@ -13,6 +13,7 @@ package org.eclipse.egit.ui.internal.decorators;
import java.io.File;
import java.io.IOException;
import java.util.Map;
+import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import org.eclipse.egit.core.UnitOfWork;
@@ -41,6 +42,8 @@ public class DecoratorRepositoryStateCache extends RepositoryStateCache {
private final Map<File, String> branchStateLabels = new ConcurrentHashMap<>();
+ private final Set<File> branchStatesToClear = ConcurrentHashMap.newKeySet();
+
private DecoratorRepositoryStateCache() {
// No public instantiation
}
@@ -56,13 +59,26 @@ public class DecoratorRepositoryStateCache extends RepositoryStateCache {
super.clear();
branchLabels.clear();
branchStateLabels.clear();
+ branchStatesToClear.clear();
}
@Override
public void clear(Repository repository) {
super.clear(repository);
- branchLabels.remove(repository.getDirectory());
- branchStateLabels.remove(repository.getDirectory());
+ File gitDir = repository.getDirectory();
+ branchLabels.remove(gitDir);
+ branchStateLabels.remove(gitDir);
+ branchStatesToClear.remove(gitDir);
+ }
+
+ /**
+ * Clears the cache for {@link #getBranchStatus(Repository)}.
+ *
+ * @param repository
+ * to clear the state of
+ */
+ public void resetBranchState(Repository repository) {
+ branchStatesToClear.add(repository.getDirectory());
}
/**
@@ -127,8 +143,13 @@ public class DecoratorRepositoryStateCache extends RepositoryStateCache {
* @return the label, or {@code null} if none
*/
public String getBranchStatus(Repository repository) {
+ File gitDir = repository.getDirectory();
+ // Clear if needed
+ if (branchStatesToClear.remove(gitDir)) {
+ branchStateLabels.remove(gitDir);
+ }
String label = branchStateLabels
- .computeIfAbsent(repository.getDirectory(), dir -> {
+ .computeIfAbsent(gitDir, dir -> {
return UnitOfWork.get(repository, () -> {
String branchName = getFullBranchName(repository);
if (branchName == null) {
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitDecorator.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitDecorator.java
index f3619767b8..30e0ab6183 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitDecorator.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitDecorator.java
@@ -22,6 +22,9 @@ import org.eclipse.egit.ui.internal.UIText;
import org.eclipse.jface.viewers.ILightweightLabelDecorator;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.LabelProviderChangedEvent;
+import org.eclipse.jgit.events.ConfigChangedEvent;
+import org.eclipse.jgit.events.ConfigChangedListener;
+import org.eclipse.jgit.events.ListenerHandle;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.ui.PlatformUI;
@@ -31,13 +34,16 @@ import org.eclipse.ui.PlatformUI;
* changes.
*/
public abstract class GitDecorator extends LabelProvider
- implements ILightweightLabelDecorator, IndexDiffChangedListener {
+ implements ILightweightLabelDecorator, IndexDiffChangedListener,
+ ConfigChangedListener {
private Object lock = new Object();
/** Protected by lock's monitor. */
private EventJob eventJob;
+ private ListenerHandle configListener;
+
/**
* Creates a new {@link GitDecorator}, registering to receive notifications
* about index changes.
@@ -45,12 +51,17 @@ public abstract class GitDecorator extends LabelProvider
public GitDecorator() {
org.eclipse.egit.core.Activator.getDefault().getIndexDiffCache()
.addIndexDiffChangedListener(this);
+ configListener = org.eclipse.egit.core.Activator.getDefault()
+ .getRepositoryCache().getGlobalListenerList()
+ .addConfigChangedListener(this);
}
@Override
public void dispose() {
org.eclipse.egit.core.Activator.getDefault().getIndexDiffCache()
.removeIndexDiffChangedListener(this);
+ configListener.remove();
+ configListener = null;
Job job;
synchronized (lock) {
job = eventJob;
@@ -82,6 +93,14 @@ public abstract class GitDecorator extends LabelProvider
@Override
public void indexDiffChanged(Repository repository,
IndexDiffData indexDiffData) {
+ DecoratorRepositoryStateCache.INSTANCE.clear(repository);
+ postLabelEvent();
+ }
+
+ @Override
+ public void onConfigChanged(ConfigChangedEvent event) {
+ DecoratorRepositoryStateCache.INSTANCE
+ .resetBranchState(event.getRepository());
postLabelEvent();
}
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitLightweightDecorator.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitLightweightDecorator.java
index d8425772b4..d4665ee841 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitLightweightDecorator.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitLightweightDecorator.java
@@ -54,7 +54,6 @@ import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.viewers.IDecoration;
import org.eclipse.jgit.annotations.NonNull;
-import org.eclipse.jgit.lib.Repository;
import org.eclipse.osgi.util.NLS;
import org.eclipse.osgi.util.TextProcessor;
import org.eclipse.swt.SWT;
@@ -687,14 +686,6 @@ public class GitLightweightDecorator extends GitDecorator
}
}
- @Override
- public void indexDiffChanged(Repository repository,
- IndexDiffData indexDiffData) {
- // clear calculated repo data
- DecoratorRepositoryStateCache.INSTANCE.clear(repository);
- super.indexDiffChanged(repository, indexDiffData);
- }
-
// -------- Helper methods --------
private static IResource getResource(Object actElement) {
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/AbstractBranchSelectionDialog.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/AbstractBranchSelectionDialog.java
index 28c89de994..e70688062e 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/AbstractBranchSelectionDialog.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/AbstractBranchSelectionDialog.java
@@ -32,8 +32,8 @@ import org.eclipse.egit.ui.internal.repository.tree.BranchHierarchyNode;
import org.eclipse.egit.ui.internal.repository.tree.LocalNode;
import org.eclipse.egit.ui.internal.repository.tree.RefNode;
import org.eclipse.egit.ui.internal.repository.tree.RemoteTrackingNode;
-import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNodeSorter;
import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode;
+import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNodeSorter;
import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNodeType;
import org.eclipse.egit.ui.internal.repository.tree.TagNode;
import org.eclipse.egit.ui.internal.repository.tree.TagsNode;
@@ -297,7 +297,7 @@ public abstract class AbstractBranchSelectionDialog extends TitleAreaDialog {
selectionModel | SWT.BORDER, filter, true);
branchTree = tree.getViewer();
branchTree.setUseHashlookup(true);
- branchTree.setLabelProvider(new RepositoryTreeNodeLabelProvider());
+ branchTree.setLabelProvider(new RepositoryTreeNodeLabelProvider(true));
branchTree.setContentProvider(new RepositoriesViewContentProvider());
ColumnViewerToolTipSupport.enableFor(branchTree);
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/AbstractConfigureRemoteDialog.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/AbstractConfigureRemoteDialog.java
index d5fd2fca2d..591511213b 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/AbstractConfigureRemoteDialog.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/AbstractConfigureRemoteDialog.java
@@ -347,11 +347,11 @@ public abstract class AbstractConfigureRemoteDialog
}
};
IAction deleteRefSpecAction = ActionUtils.createGlobalAction(
- ActionFactory.DELETE, () -> doDeleteRefSpecs());
+ ActionFactory.DELETE, this::doDeleteRefSpecs);
IAction copyRefSpecAction = ActionUtils
- .createGlobalAction(ActionFactory.COPY, () -> doCopy());
+ .createGlobalAction(ActionFactory.COPY, this::doCopy);
IAction pasteRefSpecAction = ActionUtils
- .createGlobalAction(ActionFactory.PASTE, () -> doPaste());
+ .createGlobalAction(ActionFactory.PASTE, this::doPaste);
IAction selectAllRefSpecsAction = ActionUtils.createGlobalAction(
ActionFactory.SELECT_ALL,
() -> {
@@ -539,7 +539,7 @@ public abstract class AbstractConfigureRemoteDialog
case DRY_RUN:
try {
new ProgressMonitorDialog(getShell()).run(true, true,
- (monitor) -> dryRun(monitor));
+ this::dryRun);
} catch (InvocationTargetException e) {
Activator.showError(e.getMessage(), e);
} catch (InterruptedException e1) {
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/HyperlinkSourceViewer.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/HyperlinkSourceViewer.java
index 741dde1fa6..3646a9513f 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/HyperlinkSourceViewer.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/HyperlinkSourceViewer.java
@@ -119,12 +119,10 @@ public class HyperlinkSourceViewer extends ProjectionViewer {
super(parent, verticalRuler, overviewRuler, showAnnotationsOverview,
styles);
setColors();
- editorPropertyChangeListener = event -> handleEditorPreferencesChange(
- event);
+ editorPropertyChangeListener = this::handleEditorPreferencesChange;
EditorsUI.getPreferenceStore()
.addPropertyChangeListener(editorPropertyChangeListener);
- jFacePropertyChangeListener = event -> handleJFacePreferencesChange(
- event);
+ jFacePropertyChangeListener = this::handleJFacePreferencesChange;
JFacePreferences.getPreferenceStore()
.addPropertyChangeListener(jFacePropertyChangeListener);
}
@@ -140,7 +138,7 @@ public class HyperlinkSourceViewer extends ProjectionViewer {
String property = event.getProperty();
if (preferenceKeysForEnablement.contains(property)) {
resetHyperlinkDetectors();
- async(() -> refresh());
+ async(this::refresh);
} else if (preferenceKeysForActivation.contains(property)) {
resetHyperlinkDetectors();
}
@@ -231,7 +229,7 @@ public class HyperlinkSourceViewer extends ProjectionViewer {
case AbstractTextEditor.PREFERENCE_COLOR_SELECTION_FOREGROUND_SYSTEM_DEFAULT:
case AbstractTextEditor.PREFERENCE_COLOR_SELECTION_BACKGROUND:
case AbstractTextEditor.PREFERENCE_COLOR_SELECTION_BACKGROUND_SYSTEM_DEFAULT:
- async(() -> setColors());
+ async(this::setColors);
break;
default:
break;
@@ -248,7 +246,7 @@ public class HyperlinkSourceViewer extends ProjectionViewer {
*/
protected void handleJFacePreferencesChange(PropertyChangeEvent event) {
if (JFacePreferences.HYPERLINK_COLOR.equals(event.getProperty())) {
- async(() -> invalidateTextPresentation());
+ async(this::invalidateTextPresentation);
}
}
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/SpellcheckableMessageArea.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/SpellcheckableMessageArea.java
index d490c4cbcb..4419f59b93 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/SpellcheckableMessageArea.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/dialogs/SpellcheckableMessageArea.java
@@ -507,7 +507,7 @@ public class SpellcheckableMessageArea extends Composite {
List<AnnotationPreference> annotationPreferences = new MarkerAnnotationPreferences()
.getAnnotationPreferences();
annotationPreferences.iterator()
- .forEachRemaining(p -> support.setAnnotationPreference(p));
+ .forEachRemaining(support::setAnnotationPreference);
support.install(EditorsUI.getPreferenceStore());
return support;
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/fetch/FetchDestinationPage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/fetch/FetchDestinationPage.java
index 6dcf3cfe25..7a2066781b 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/fetch/FetchDestinationPage.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/fetch/FetchDestinationPage.java
@@ -96,7 +96,7 @@ public class FetchDestinationPage extends WizardPage {
GridDataFactory.fillDefaults().grab(true, false).applyTo(
destinationText);
UIUtils.addRefContentProposalToText(sourceText, repository,
- () -> getRemoteRefs(), true);
+ this::getRemoteRefs, true);
force = new Button(main, SWT.CHECK);
force.setText(UIText.FetchDestinationPage_ForceCheckbox);
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/fetch/FetchSourcePage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/fetch/FetchSourcePage.java
index 6668b63f8a..f4e053338d 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/fetch/FetchSourcePage.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/fetch/FetchSourcePage.java
@@ -91,7 +91,7 @@ public class FetchSourcePage extends WizardPage {
});
GridDataFactory.fillDefaults().grab(true, false).applyTo(sourceText);
UIUtils.addRefContentProposalToText(sourceText, repository,
- () -> getRemoteRefs(), true);
+ this::getRemoteRefs, true);
checkPage();
setControl(main);
}
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitFileDiffViewer.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitFileDiffViewer.java
index 9ce8aa9e52..dd7123c7c1 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitFileDiffViewer.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitFileDiffViewer.java
@@ -361,7 +361,7 @@ public class CommitFileDiffViewer extends TableViewer {
copy.setEnabled(true);
if ((rawTable.getStyle() & SWT.MULTI) != 0) {
selectAll = ActionUtils.createGlobalAction(ActionFactory.SELECT_ALL,
- () -> doSelectAll());
+ this::doSelectAll);
selectAll.setEnabled(true);
ActionUtils.setGlobalActions(rawTable, copy, selectAll);
mgr.add(selectAll);
@@ -792,6 +792,8 @@ public class CommitFileDiffViewer extends TableViewer {
public UpdateJob(String name, FileDiffLoader loadJob) {
super(name);
this.loadJob = loadJob;
+ setUser(false); // always triggered by FileDiffLoader
+ setSystem(true);
}
@Override
@@ -909,7 +911,7 @@ public class CommitFileDiffViewer extends TableViewer {
FileDiff first = diffs.iterator().next();
Repository repository = first.getRepository();
String revision = first.getCommit().getName();
- List<String> paths = diffs.stream().map(d -> d.getNewPath())
+ List<String> paths = diffs.stream().map(FileDiff::getNewPath)
.collect(Collectors.toList());
return new DiscardChangesOperation(repository, paths, revision);
}
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitGraphTable.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitGraphTable.java
index c6ff9f1368..dd02cad274 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitGraphTable.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitGraphTable.java
@@ -277,7 +277,7 @@ class CommitGraphTable {
});
copy = ActionUtils.createGlobalAction(ActionFactory.COPY,
- () -> doCopy());
+ this::doCopy);
copy.setText(UIText.CommitGraphTable_CopyCommitIdLabel);
copy.setImageDescriptor(UIIcons.ELCL16_ID);
table.setUseHashlookup(true);
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitSelectionDialog.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitSelectionDialog.java
index 4422e3346c..ca0a4ae4cc 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitSelectionDialog.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/CommitSelectionDialog.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (C) 2011, 2013 Mathias Kinzler <mathias.kinzler@sap.com> and others.
+ * Copyright (C) 2011, 2019 Mathias Kinzler <mathias.kinzler@sap.com> and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -7,6 +7,9 @@
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Simon Muschel <smuschel@gmx.de> - Bug 345466
*******************************************************************************/
package org.eclipse.egit.ui.internal.history;
@@ -58,6 +61,7 @@ import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
@@ -80,6 +84,10 @@ public class CommitSelectionDialog extends TitleAreaDialog {
private ObjectId commitId;
+ private SearchBar searchBar;
+
+ private Label statusLabel;
+
/**
* @param parentShell
* @param repository
@@ -113,12 +121,18 @@ public class CommitSelectionDialog extends TitleAreaDialog {
@Override
protected Control createDialogArea(Composite parent) {
+ Composite searchBarParent = new Composite(parent, SWT.NONE);
+ searchBarParent.setLayout(new GridLayout(1, false));
+ GridDataFactory.fillDefaults().grab(true, false)
+ .applyTo(searchBarParent);
+
Composite main = new Composite(parent, SWT.NONE);
main.setLayout(new GridLayout(1, false));
GridDataFactory.fillDefaults().grab(true, true).applyTo(main);
final ResourceManager resources = new LocalResourceManager(
JFaceResources.getResources());
UIUtils.hookDisposal(main, resources);
+
// Table never shows e-mail addresses because it might get rather wide.
table = new CommitGraphTable(main, null, resources, false);
table.getTableView().addSelectionChangedListener(
@@ -146,6 +160,26 @@ public class CommitSelectionDialog extends TitleAreaDialog {
400).applyTo(table.getControl());
allCommits = new SWTCommitList(resources);
table.getControl().addDisposeListener(e -> allCommits.clear());
+
+ searchBar = new SearchBar(
+ CommitSelectionDialog.class.getName() + ".searchBar", table) {//$NON-NLS-1$
+
+ @Override
+ protected void showStatus(FindToolbar originator, String text) {
+ statusLabel.setText(text);
+ statusLabel.requestLayout();
+ }
+
+ };
+ searchBar.fill(searchBarParent);
+
+ Composite statusLine = new Composite(parent, SWT.NONE);
+ statusLine.setLayout(new GridLayout());
+ GridDataFactory.fillDefaults().grab(true, true).applyTo(statusLine);
+ statusLabel = new Label(statusLine, SWT.NONE);
+ GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.CENTER)
+ .grab(false, false).applyTo(statusLabel);
+
return main;
}
@@ -201,7 +235,8 @@ public class CommitSelectionDialog extends TitleAreaDialog {
if (monitor.isCanceled()) {
throw new InterruptedException();
}
- getShell().getDisplay().asyncExec(() -> updateUi());
+ getShell().getDisplay().asyncExec(
+ CommitSelectionDialog.this::updateUi);
} catch (IOException e) {
throw new InvocationTargetException(e);
} finally {
@@ -229,8 +264,25 @@ public class CommitSelectionDialog extends TitleAreaDialog {
Integer.valueOf(allCommits.size()),
GitLabels.getPlainShortLabel(repository)));
setMessage(UIText.CommitSelectionDialog_DialogMessage);
- table.setInput(highlightFlag, allCommits, allCommits
- .toArray(new SWTCommit[0]), null, true);
+ SWTCommit[] allCommitsArray = allCommits.toArray(new SWTCommit[0]);
+ table.setInput(highlightFlag, allCommits, allCommitsArray, null, true);
+ searchBar.setInput(new ICommitsProvider() {
+
+ @Override
+ public Object getSearchContext() {
+ return null;
+ }
+
+ @Override
+ public SWTCommit[] getCommits() {
+ return allCommitsArray;
+ }
+
+ @Override
+ public RevFlag getHighlight() {
+ return highlightFlag;
+ }
+ });
}
private void markStartAllRefs(RevWalk walk, Set<Ref> refs)
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FindToolbar.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FindToolbar.java
index 8cb65db38d..283e94849b 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FindToolbar.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FindToolbar.java
@@ -5,6 +5,7 @@
* Copyright (C) 2010, Mathias Kinzler <mathias.kinzler@sap.com>
* Copyright (C) 2013, Robin Stocker <robin@nibor.org>
* Copyright (C) 2016, Thomas Wolf <thomas.wolf@paranor.ch>
+ * Copyright (C) 2019, Simon Muschel <smuschel@gmx.de>
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -219,7 +220,8 @@ public class FindToolbar extends Composite {
patternField = new Text(this,
SWT.SEARCH | SWT.ICON_CANCEL | SWT.ICON_SEARCH);
- GridData findTextData = new GridData(SWT.LEFT, SWT.TOP, true, false);
+ GridData findTextData = new GridData(SWT.FILL, SWT.TOP, true,
+ false);
findTextData.minimumWidth = 150;
patternField.setLayoutData(findTextData);
patternField.setMessage(UIText.HistoryPage_findbar_find_msg);
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java
index 12eb010acf..c480f2f092 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java
@@ -11,6 +11,7 @@
* Copyright (C) 2015-2019 Thomas Wolf <thomas.wolf@paranor.ch>
* Copyright (C) 2015-2017, Stefan Dirix <sdirix@eclipsesource.com>
* Copyright (C) 2019, Tim Neumann <Tim.Neumann@advantest.com>
+ * Copyright (C) 2019, Simon Muschel <smuschel@gmx.de>
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -69,7 +70,6 @@ import org.eclipse.egit.ui.internal.commit.FocusTracker;
import org.eclipse.egit.ui.internal.components.DropDownMenuAction;
import org.eclipse.egit.ui.internal.components.RepositoryMenuUtil.RepositoryToolbarAction;
import org.eclipse.egit.ui.internal.fetch.FetchHeadChangedEvent;
-import org.eclipse.egit.ui.internal.history.FindToolbar.StatusListener;
import org.eclipse.egit.ui.internal.history.RefFilterHelper.RefFilter;
import org.eclipse.egit.ui.internal.repository.tree.AdditionalRefNode;
import org.eclipse.egit.ui.internal.repository.tree.FileNode;
@@ -84,12 +84,10 @@ import org.eclipse.egit.ui.internal.selection.SelectionUtils;
import org.eclipse.egit.ui.internal.trace.GitTraceLocation;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.ControlContribution;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.IContributionManager;
import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
@@ -309,12 +307,12 @@ public class GitHistoryPage extends HistoryPage implements RefsChangedListener,
if (IAction.ENABLED.equals(e.getProperty())) {
boolean previousEnablement = isEnabled();
childEnablement = FilterAction.this.actions.stream()
- .anyMatch(act -> act.isEnabled());
+ .anyMatch(IAction::isEnabled);
boolean currentEnablement = isEnabled();
if (currentEnablement != previousEnablement) {
IAction currentChild = currentEnablement
? FilterAction.this.actions.stream()
- .filter(act -> act.isChecked())
+ .filter(IAction::isChecked)
.findFirst().orElse(null)
: null;
if (currentChild == null) {
@@ -1389,248 +1387,6 @@ public class GitHistoryPage extends HistoryPage implements RefsChangedListener,
}
}
- private interface ICommitsProvider {
-
- Object getSearchContext();
-
- SWTCommit[] getCommits();
-
- RevFlag getHighlight();
- }
-
- private static class SearchBar extends ControlContribution {
-
- private IActionBars bars;
-
- private FindToolbar toolbar;
-
- private Object searchContext;
-
- private String lastText;
-
- private ObjectId lastObjectId;
-
- private Object lastSearchContext;
-
- private ICommitsProvider provider;
-
- private boolean wasVisible = false;
-
- private final CommitGraphTable graph;
-
- private final IAction openCloseToggle;
-
- /**
- * "Go to next/previous" from the {@link FindToolbar} sends
- * {@link SWT#Selection} events with the chosen {@link RevCommit} as
- * data.
- */
- private final Listener selectionListener = new Listener() {
-
- @Override
- public void handleEvent(Event evt) {
- final RevCommit commit = (RevCommit) evt.data;
- lastObjectId = commit.getId();
- graph.selectCommit(commit);
- }
- };
-
- /**
- * Listener to close the search bar on ESC. (Ctrl/Cmd-F is already
- * handled via global retarget action.)
- */
- private final KeyListener keyListener = new KeyAdapter() {
-
- @Override
- public void keyPressed(KeyEvent e) {
- int key = SWTKeySupport.convertEventToUnmodifiedAccelerator(e);
- if (key == SWT.ESC) {
- setVisible(false);
- e.doit = false;
- }
- }
- };
-
- /**
- * Listener to display status messages from the asynchronous find. (Is
- * called in the UI thread.)
- */
- private final StatusListener statusListener = new StatusListener() {
-
- @Override
- public void setMessage(FindToolbar originator, String text) {
- IStatusLineManager status = bars.getStatusLineManager();
- if (status != null) {
- status.setMessage(text);
- }
- }
- };
-
- /**
- * Listener to ensure that the history view is fully activated when the
- * user clicks into the search bar's text widget. This makes sure our
- * status manager gets activated and thus shows the status messages. We
- * don't get a focus event when the user clicks in the field; and
- * fiddling with the focus in a FocusListener could get hairy anyway.
- */
- private final Listener mouseListener = new Listener() {
-
- private boolean hasFocus;
-
- private boolean hadFocusOnMouseDown;
-
- @Override
- public void handleEvent(Event e) {
- switch (e.type) {
- case SWT.FocusIn:
- toolbar.getDisplay().asyncExec(new Runnable() {
- @Override
- public void run() {
- hasFocus = true;
- }
- });
-
- break;
- case SWT.FocusOut:
- hasFocus = false;
- break;
- case SWT.MouseDown:
- hadFocusOnMouseDown = hasFocus;
- break;
- case SWT.MouseUp:
- if (!hadFocusOnMouseDown) {
- graph.getControl().setFocus();
- toolbar.setFocus();
- }
- break;
- default:
- break;
- }
- }
- };
-
- public SearchBar(String id, CommitGraphTable graph,
- IAction openCloseAction, IActionBars bars) {
- super(id);
- super.setVisible(false);
- this.graph = graph;
- this.openCloseToggle = openCloseAction;
- this.bars = bars;
- }
-
- private void beforeHide() {
- lastText = toolbar.getText();
- lastSearchContext = searchContext;
- statusListener.setMessage(toolbar, ""); //$NON-NLS-1$
- // It will be disposed by the IToolBarManager
- toolbar = null;
- openCloseToggle.setChecked(false);
- wasVisible = false;
- }
-
- private void workAroundBug551067(boolean visible) {
- // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=551067
- IContributionManager parent = getParent();
- if (parent instanceof SubToolBarManager) {
- SubToolBarManager subManager = (SubToolBarManager) parent;
- IContributionItem item = subManager.getParent().find(getId());
- if (item instanceof SubContributionItem) {
- item.setVisible(visible && subManager.isVisible());
- }
- }
- }
-
- @Override
- public void setVisible(boolean visible) {
- if (visible != isVisible()) {
- if (!visible) {
- beforeHide();
- }
- super.setVisible(visible);
- workAroundBug551067(visible);
- // Update the toolbar. Will dispose our FindToolbar widget on
- // hide, and will create a new one (through createControl())
- // on show. It'll also reposition the toolbar, if needed.
- // Note: just doing bars.getToolBarManager().update(true);
- // messes up big time (doesn't resize or re-position).
- bars.updateActionBars();
- if (visible && toolbar != null) {
- openCloseToggle.setChecked(true);
- // If the toolbar was moved below the tabs, we now have
- // the wrong background. It disappears when one clicks
- // elsewhere. Looks like an inactive selection... No
- // way found to fix this but this ugly focus juggling:
- graph.getControl().setFocus();
- toolbar.setFocus();
- } else if (!visible && !graph.getControl().isDisposed()) {
- graph.getControl().setFocus();
- }
- }
- }
-
- @Override
- public boolean isDynamic() {
- // We toggle our own visibility
- return true;
- }
-
- @Override
- protected Control createControl(Composite parent) {
- toolbar = new FindToolbar(parent);
- toolbar.setBackground(null);
- toolbar.addKeyListener(keyListener);
- toolbar.addListener(SWT.FocusIn, mouseListener);
- toolbar.addListener(SWT.FocusOut, mouseListener);
- toolbar.addListener(SWT.MouseDown, mouseListener);
- toolbar.addListener(SWT.MouseUp, mouseListener);
- toolbar.addListener(SWT.Modify,
- (e) -> lastText = toolbar.getText());
- toolbar.addStatusListener(statusListener);
- toolbar.addSelectionListener(selectionListener);
- boolean hasInput = provider != null;
- if (hasInput) {
- setInput(provider);
- }
- if (lastText != null) {
- if (lastSearchContext != null
- && lastSearchContext.equals(searchContext)) {
- toolbar.setPreselect(lastObjectId);
- }
- toolbar.setText(lastText, hasInput);
- }
- lastSearchContext = null;
- lastObjectId = null;
- if (wasVisible) {
- return toolbar;
- }
- wasVisible = true;
- // This fixes the wrong background when Eclipse starts up with the
- // search bar visible.
- toolbar.getDisplay().asyncExec(new Runnable() {
-
- @Override
- public void run() {
- if (toolbar != null && !toolbar.isDisposed()) {
- // See setVisible() above. Somehow, we need this, too.
- graph.getControl().setFocus();
- toolbar.setFocus();
- }
- }
- });
- return toolbar;
- }
-
- public void setInput(ICommitsProvider provider) {
- this.provider = provider;
- if (toolbar != null) {
- searchContext = provider.getSearchContext();
- toolbar.setInput(provider.getHighlight(),
- graph.getTableView().getTable(), provider.getCommits());
- }
- }
-
- }
-
@Override
public void createControl(final Composite parent) {
trace = GitTraceLocation.HISTORYVIEW.isActive();
@@ -1729,7 +1485,8 @@ public class GitHistoryPage extends HistoryPage implements RefsChangedListener,
.addPreferenceChangeListener(prefListener);
IToolBarManager manager = getSite().getActionBars().getToolBarManager();
- searchBar = new SearchBar(GitHistoryPage.class.getName() + ".searchBar", //$NON-NLS-1$
+ searchBar = new HistorySearchBar(
+ GitHistoryPage.class.getName() + ".searchBar", //$NON-NLS-1$
graph, actions.findAction, getSite().getActionBars());
manager.prependToGroup("org.eclipse.team.ui.historyView", searchBar); //$NON-NLS-1$
getSite().getActionBars().updateActionBars();
@@ -3302,4 +3059,173 @@ public class GitHistoryPage extends HistoryPage implements RefsChangedListener,
public String getRenamedPath(String path, ObjectId commit) {
return renameTracker.getPath(commit, path);
}
+
+ private static final class HistorySearchBar extends SearchBar {
+
+ private IActionBars bars;
+
+ private final IAction openCloseToggle;
+
+ private boolean wasVisible = false;
+
+ /**
+ * Listener to close the search bar on ESC. (Ctrl/Cmd-F is already
+ * handled via global retarget action.)
+ */
+ private final KeyListener keyListener = new KeyAdapter() {
+
+ @Override
+ public void keyPressed(KeyEvent e) {
+ int key = SWTKeySupport.convertEventToUnmodifiedAccelerator(e);
+ if (key == SWT.ESC) {
+ setVisible(false);
+ e.doit = false;
+ }
+ }
+ };
+
+ /**
+ * Listener to ensure that the history view is fully activated when the
+ * user clicks into the search bar's text widget. This makes sure our
+ * status manager gets activated and thus shows the status messages. We
+ * don't get a focus event when the user clicks in the field; and
+ * fiddling with the focus in a FocusListener could get hairy anyway.
+ */
+ private final Listener mouseListener = new Listener() {
+
+ private boolean hasFocus;
+
+ private boolean hadFocusOnMouseDown;
+
+ @Override
+ public void handleEvent(Event e) {
+ switch (e.type) {
+ case SWT.FocusIn:
+ toolbar.getDisplay().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ hasFocus = true;
+ }
+ });
+
+ break;
+ case SWT.FocusOut:
+ hasFocus = false;
+ break;
+ case SWT.MouseDown:
+ hadFocusOnMouseDown = hasFocus;
+ break;
+ case SWT.MouseUp:
+ if (!hadFocusOnMouseDown) {
+ graph.getControl().setFocus();
+ toolbar.setFocus();
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ };
+
+ public HistorySearchBar(String id, CommitGraphTable graph,
+ IAction openCloseAction, IActionBars bars) {
+ super(id, graph);
+ this.bars = bars;
+ this.openCloseToggle = openCloseAction;
+ super.setVisible(false);
+ }
+
+ @Override
+ public boolean isDynamic() {
+ // We toggle our own visibility
+ return true;
+ }
+
+ @Override
+ protected FindToolbar createControl(Composite parent) {
+ FindToolbar createdControl = super.createControl(parent);
+ toolbar.addKeyListener(keyListener);
+ toolbar.addListener(SWT.FocusIn, mouseListener);
+ toolbar.addListener(SWT.FocusOut, mouseListener);
+ toolbar.addListener(SWT.MouseDown, mouseListener);
+ toolbar.addListener(SWT.MouseUp, mouseListener);
+
+ if (wasVisible) {
+ return toolbar;
+ }
+ wasVisible = true;
+ // This fixes the wrong background when Eclipse starts up with the
+ // search bar visible.
+ toolbar.getDisplay().asyncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ if (toolbar != null && !toolbar.isDisposed()) {
+ // See setVisible() above. Somehow, we need this, too.
+ graph.getControl().setFocus();
+ toolbar.setFocus();
+ }
+ }
+ });
+ return createdControl;
+ }
+
+ private void beforeHide() {
+ lastText = toolbar.getText();
+ lastSearchContext = searchContext;
+ showStatus(toolbar, ""); //$NON-NLS-1$
+ // It will be disposed by the IToolBarManager
+ toolbar = null;
+ openCloseToggle.setChecked(false);
+ wasVisible = false;
+ }
+
+ private void workAroundBug551067(boolean visible) {
+ // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=551067
+ IContributionManager parent = getParent();
+ if (parent instanceof SubToolBarManager) {
+ SubToolBarManager subManager = (SubToolBarManager) parent;
+ IContributionItem item = subManager.getParent().find(getId());
+ if (item instanceof SubContributionItem) {
+ item.setVisible(visible && subManager.isVisible());
+ }
+ }
+ }
+
+ @Override
+ public void setVisible(boolean visible) {
+ if (visible != isVisible()) {
+ if (!visible) {
+ beforeHide();
+ }
+ super.setVisible(visible);
+ workAroundBug551067(visible);
+ // Update the toolbar. Will dispose our FindToolbar widget on
+ // hide, and will create a new one (through createControl())
+ // on show. It'll also reposition the toolbar, if needed.
+ // Note: just doing bars.getToolBarManager().update(true);
+ // messes up big time (doesn't resize or re-position).
+ if (bars != null) {
+ bars.updateActionBars();
+ }
+ if (visible && toolbar != null) {
+ openCloseToggle.setChecked(true);
+ // If the toolbar was moved below the tabs, we now have
+ // the wrong background. It disappears when one clicks
+ // elsewhere. Looks like an inactive selection... No
+ // way found to fix this but this ugly focus juggling:
+ graph.getControl().setFocus();
+ toolbar.setFocus();
+ } else if (!visible && !graph.getControl().isDisposed()) {
+ graph.getControl().setFocus();
+ }
+ }
+ }
+
+ @Override
+ protected void showStatus(FindToolbar originator, String text) {
+ bars.getStatusLineManager().setMessage(text);
+ }
+
+ }
}
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryRefFilterConfigurationDialog.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryRefFilterConfigurationDialog.java
index 171774f3d6..ac8eb6944d 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryRefFilterConfigurationDialog.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryRefFilterConfigurationDialog.java
@@ -74,6 +74,9 @@ import org.eclipse.ui.preferences.ViewSettingsDialog;
public class GitHistoryRefFilterConfigurationDialog
extends ViewSettingsDialog {
+ /** Standard binding for the rename command. */
+ private static final int EDITOR_ACTIVATION_KEY = SWT.F2;
+
private static final String FILTER_COLUMN_NAME = "filter"; //$NON-NLS-1$
private static final String NEW_FILTER_INITIAL_STRING = "refs/*"; //$NON-NLS-1$
@@ -280,11 +283,14 @@ public class GitHistoryRefFilterConfigurationDialog
boolean isLeftDoubleClick = event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
&& ((MouseEvent) event.sourceEvent).button == 1;
return singleSelect && (isLeftDoubleClick
- || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC);
+ || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC
+ || event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
+ && event.keyCode == EDITOR_ACTIVATION_KEY);
}
};
TableViewerEditor.create(configsTable, focusCellManager,
- editorActivation, ColumnViewerEditor.DEFAULT);
+ editorActivation, ColumnViewerEditor.DEFAULT
+ | ColumnViewerEditor.KEYBOARD_ACTIVATION);
editor = new TextCellEditor(configsTable.getTable()) {
@@ -339,7 +345,8 @@ public class GitHistoryRefFilterConfigurationDialog
@Override
public void beforeEditorActivated(
ColumnViewerEditorActivationEvent event) {
- // Nothing
+ configsTable.reveal(configsTable
+ .getStructuredSelection().getFirstElement());
}
@Override
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/ICommitsProvider.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/ICommitsProvider.java
new file mode 100644
index 0000000000..726557ae55
--- /dev/null
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/ICommitsProvider.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (C) 2019 Simon Muschel <smuschel@gmx.de> and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Simon Muschel <smuschel@gmx.de> - Bug 345466
+ *******************************************************************************/
+package org.eclipse.egit.ui.internal.history;
+
+import org.eclipse.jgit.revwalk.RevFlag;
+
+/**
+ * Provides relevant information to {@link SearchBar} implementations.
+ */
+interface ICommitsProvider {
+
+ /**
+ * Returns the search context the {@link SearchBar} is using. An example on
+ * how to use the context can be found in {@link GitHistoryPage}.
+ *
+ * @return the current search context
+ */
+ Object getSearchContext();
+
+ /**
+ * Returns a list of commits to be searched.
+ *
+ * @return array of commits
+ */
+ SWTCommit[] getCommits();
+
+ /**
+ * Returns the RevFlag to be used as highlight marker for matching commits.
+ *
+ * @return the highlight RevFlag
+ */
+ RevFlag getHighlight();
+} \ No newline at end of file
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/RefFilterHelper.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/RefFilterHelper.java
index 913178dac8..6617b748c5 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/RefFilterHelper.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/RefFilterHelper.java
@@ -430,7 +430,7 @@ public class RefFilterHelper {
RefDatabase db = this.repository.getRefDatabase();
Set<Ref> result = new LinkedHashSet<>();
Set<RefFilter> selectedFilters = getRefFilters().stream()
- .filter(f -> f.isSelected())
+ .filter(RefFilter::isSelected)
.collect(Collectors.toCollection(LinkedHashSet::new));
for (Ref ref : db.getRefs()) {
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/SearchBar.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/SearchBar.java
new file mode 100644
index 0000000000..724765bf2c
--- /dev/null
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/SearchBar.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (C) 2019 Simon Muschel <smuschel@gmx.de> and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Simon Muschel <smuschel@gmx.de> - Bug 345466
+ *******************************************************************************/
+package org.eclipse.egit.ui.internal.history;
+
+import org.eclipse.jface.action.ControlContribution;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jgit.lib.ObjectId;
+import org.eclipse.jgit.revwalk.RevCommit;
+import org.eclipse.jgit.revwalk.RevFlag;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+
+/**
+ * A reusable SearchBar component that may be used in combination with
+ * {@link CommitGraphTable} to search in a given list of commits.
+ *
+ * @see GitHistoryPage
+ * @see CommitSelectionDialog
+ */
+abstract class SearchBar extends ControlContribution {
+
+ protected FindToolbar toolbar;
+
+ protected Object searchContext;
+
+ protected String lastText;
+
+ private ObjectId lastObjectId;
+
+ protected Object lastSearchContext;
+
+ private ICommitsProvider provider;
+
+ protected final CommitGraphTable graph;
+
+ /**
+ * "Go to next/previous" from the {@link FindToolbar} sends
+ * {@link SWT#Selection} events with the chosen {@link RevCommit} as data.
+ */
+ private final Listener selectionListener = new Listener() {
+
+ @Override
+ public void handleEvent(Event evt) {
+ final RevCommit commit = (RevCommit) evt.data;
+ lastObjectId = commit.getId();
+ graph.selectCommit(commit);
+ }
+ };
+
+ /**
+ * Creates the SearchBar.
+ *
+ * @param id
+ * the contribution item id
+ * @param graph
+ * the UI element displaying the commits
+ */
+ public SearchBar(String id, CommitGraphTable graph) {
+ super(id);
+ this.graph = graph;
+ }
+
+ @Override
+ protected FindToolbar createControl(Composite parent) {
+ toolbar = new FindToolbar(parent);
+ toolbar.setBackground(null);
+ toolbar.addListener(SWT.Modify, (e) -> lastText = toolbar.getText());
+ toolbar.addSelectionListener(selectionListener);
+ toolbar.addStatusListener(this::showStatus);
+ boolean hasInput = provider != null;
+ if (hasInput) {
+ setInput(provider);
+ }
+ if (lastText != null) {
+ if (lastSearchContext != null
+ && lastSearchContext.equals(searchContext)) {
+ toolbar.setPreselect(lastObjectId);
+ }
+ toolbar.setText(lastText, hasInput);
+ }
+ lastSearchContext = null;
+ lastObjectId = null;
+
+ GridDataFactory.fillDefaults().grab(true, false).applyTo(toolbar);
+ return toolbar;
+ }
+
+ /**
+ * Set the {@link ICommitsProvider} implementation that provides a search
+ * context for the SearchBar. The list of commits and the {@link RevFlag}
+ * are passed on to the {@link FindToolbar}.
+ *
+ * @param provider
+ */
+ public void setInput(ICommitsProvider provider) {
+ this.provider = provider;
+ if (toolbar != null) {
+ searchContext = provider.getSearchContext();
+ toolbar.setInput(provider.getHighlight(),
+ graph.getTableView().getTable(), provider.getCommits());
+ }
+ }
+
+ /**
+ * The {@link FindToolbar} notifies clients of status changes (e.g. number
+ * of matching commits) by calling this method. A sub-class can provide a
+ * way to display these status messages to the user.
+ *
+ * @param originator
+ * the toolbar object that produced the new message
+ * @param text
+ * the new status message to be displayed
+ */
+ abstract protected void showStatus(FindToolbar originator, String text);
+
+}
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/PushTagsPage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/PushTagsPage.java
index 7269f001d3..4943dbadf5 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/PushTagsPage.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/push/PushTagsPage.java
@@ -130,7 +130,7 @@ public class PushTagsPage extends WizardPage {
TagsNode tagsNode = new TagsNode(null, repository);
ContentProvider contentProvider = new ContentProvider(tagsNode);
treeViewer.setContentProvider(contentProvider);
- treeViewer.setLabelProvider(new RepositoryTreeNodeLabelProvider());
+ treeViewer.setLabelProvider(new RepositoryTreeNodeLabelProvider(true));
treeViewer.setComparator(new ViewerComparator(
CommonUtils.STRING_ASCENDING_COMPARATOR));
treeViewer.setInput(tagsNode);
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/reflog/ReflogView.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/reflog/ReflogView.java
index 0f369640ec..db37776db6 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/reflog/ReflogView.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/reflog/ReflogView.java
@@ -426,7 +426,7 @@ public class ReflogView extends ViewPart implements RefsChangedListener, IShowIn
selectionChangedListener, site);
site.setSelectionProvider(new RepositorySelectionProvider(
- refLogTreeViewer, () -> getRepository()));
+ refLogTreeViewer, this::getRepository));
addRefsChangedListener = org.eclipse.egit.core.Activator.getDefault()
.getRepositoryCache().getGlobalListenerList()
@@ -436,7 +436,7 @@ public class ReflogView extends ViewPart implements RefsChangedListener, IShowIn
IToolBarManager toolbar = getViewSite().getActionBars()
.getToolBarManager();
switchRepositoriesAction = new RepositoryToolbarAction(false,
- () -> getRepository(),
+ this::getRepository,
repo -> reactOnSelection(new StructuredSelection(repo)));
toolbar.add(switchRepositoriesAction);
getViewSite().getActionBars().updateActionBars();
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/DropAdapterAssistant.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/DropAdapterAssistant.java
index d792f04a68..9fc5039811 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/DropAdapterAssistant.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/DropAdapterAssistant.java
@@ -160,7 +160,7 @@ public class DropAdapterAssistant extends CommonDropAdapterAssistant {
private boolean onlyRepositoryNodesSelected(ISelection selection) {
if (selection instanceof IStructuredSelection) {
return ((List<?>) ((IStructuredSelection) selection).toList())
- .stream().allMatch(e -> isRegularRepository(e));
+ .stream().allMatch(this::isRegularRepository);
}
return false;
}
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RefCache.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RefCache.java
new file mode 100644
index 0000000000..174c931e8b
--- /dev/null
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RefCache.java
@@ -0,0 +1,192 @@
+/*******************************************************************************
+ * Copyright (c) 2019 Thomas Wolf <thomas.wolf@paranor.ch>
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************/
+package org.eclipse.egit.ui.internal.repository;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.WeakHashMap;
+
+import org.eclipse.jgit.events.ListenerHandle;
+import org.eclipse.jgit.lib.Ref;
+import org.eclipse.jgit.lib.RefDatabase;
+import org.eclipse.jgit.lib.Repository;
+
+/**
+ * A global cache of {@link Ref}s per {@link Repository}. Used to avoid that the
+ * content provider or decorator has to re-read the info all the time from the
+ * repository, which would be relatively expensive and incur file system
+ * accesses at least for checking file time stamps.
+ * <p>
+ * The cache is refreshed on {@link org.eclipse.jgit.events.RefsChangedEvent
+ * RefsChangedEvents} and {@link org.eclipse.jgit.events.IndexChangedEvent
+ * IndexChangedEvents}.
+ * </p>
+ */
+final class RefCache {
+
+ private static final RefCache INSTANCE = new RefCache();
+
+ private final Map<Repository, Map<String, Ref>> branchRefs = new WeakHashMap<>();
+
+ private final Map<Repository, List<Ref>> additionalRefs = new WeakHashMap<>();
+
+ private final Map<Repository, ListenerHandle> refsChangedListeners = new WeakHashMap<>();
+
+ private final Map<Repository, ListenerHandle> indexChangedListeners = new WeakHashMap<>();
+
+ private long refCount;
+
+ private RefCache() {
+ // Singleton
+ }
+
+ protected synchronized boolean isLoaded(Repository repository) {
+ return branchRefs.get(repository) != null;
+ }
+
+ protected synchronized Map<String, Ref> byPrefix(Repository repository,
+ String prefix) throws IOException {
+ Map<String, Ref> allRefs = branchRefs.get(repository);
+ if (allRefs == null) {
+ allRefs = repository.getRefDatabase().getRefs(RefDatabase.ALL);
+ branchRefs.put(repository, allRefs);
+ if (refsChangedListeners.get(repository) == null) {
+ refsChangedListeners.put(repository, repository
+ .getListenerList().addRefsChangedListener(event -> {
+ synchronized (this) {
+ branchRefs.remove(event.getRepository());
+ additionalRefs.remove(event.getRepository());
+ }
+ }));
+ }
+ }
+ if (prefix.equals(RefDatabase.ALL)) {
+ return allRefs;
+ }
+ Map<String, Ref> filtered = new HashMap<>();
+ for (Map.Entry<String, Ref> entry : allRefs.entrySet()) {
+ if (entry.getKey().startsWith(prefix)) {
+ filtered.put(entry.getKey(), entry.getValue());
+ }
+ }
+ return filtered;
+ }
+
+ protected synchronized List<Ref> additional(Repository repository)
+ throws IOException {
+ List<Ref> result = additionalRefs.get(repository);
+ if (result == null) {
+ result = repository.getRefDatabase().getAdditionalRefs();
+ additionalRefs.put(repository, result);
+ if (indexChangedListeners.get(repository) == null) {
+ indexChangedListeners.put(repository, repository
+ .getListenerList().addIndexChangedListener(event -> {
+ synchronized (this) {
+ additionalRefs.remove(event.getRepository());
+ }
+ }));
+ }
+ }
+ return result;
+ }
+
+ protected synchronized void unregister() {
+ if (refCount == 0) {
+ return;
+ }
+ if (--refCount == 0) {
+ refsChangedListeners.values().forEach(ListenerHandle::remove);
+ refsChangedListeners.clear();
+ indexChangedListeners.values().forEach(ListenerHandle::remove);
+ indexChangedListeners.clear();
+ branchRefs.clear();
+ }
+ }
+
+ private synchronized Cache register() {
+ refCount++;
+ return new CacheAccessor();
+ }
+
+ public static Cache get() {
+ return INSTANCE.register();
+ }
+
+ static interface Cache {
+
+ boolean isLoaded(Repository repository);
+
+ default Ref exact(Repository repository, String fullName)
+ throws IOException {
+ return byPrefix(repository, RefDatabase.ALL).get(fullName);
+ }
+
+ Map<String, Ref> byPrefix(Repository repository, String prefix)
+ throws IOException;
+
+ List<Ref> additional(Repository repository) throws IOException;
+
+ default Ref findAdditional(Repository repository, String name)
+ throws IOException {
+ Ref ref = exact(repository, name);
+ if (ref != null) {
+ return ref;
+ }
+ for (Ref additional : additional(repository)) {
+ if (additional.getName().equals(name)) {
+ return additional;
+ }
+ }
+ return null;
+
+ }
+
+ void dispose();
+ }
+
+ static class CacheAccessor implements Cache {
+
+ private boolean disposed;
+
+ @Override
+ public boolean isLoaded(Repository repository) {
+ return INSTANCE.isLoaded(repository);
+ }
+
+ @Override
+ public Map<String, Ref> byPrefix(Repository repository, String prefix)
+ throws IOException {
+ if (disposed) {
+ return Collections.emptyMap();
+ }
+ return INSTANCE.byPrefix(repository, prefix);
+ }
+
+ @Override
+ public List<Ref> additional(Repository repository) throws IOException {
+ if (disposed) {
+ return Collections.emptyList();
+ }
+ return INSTANCE.additional(repository);
+ }
+
+ @Override
+ public void dispose() {
+ if (!disposed) {
+ disposed = true;
+ INSTANCE.unregister();
+ }
+ }
+ }
+}
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesView.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesView.java
index a094e5dc2a..ae1ccdb532 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesView.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesView.java
@@ -30,20 +30,18 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.concurrent.atomic.AtomicReference;
import org.eclipse.core.commands.IStateListener;
import org.eclipse.core.commands.State;
import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.Adapters;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
import org.eclipse.egit.core.AdapterUtils;
import org.eclipse.egit.core.RepositoryCache;
import org.eclipse.egit.core.RepositoryUtil;
@@ -96,11 +94,10 @@ import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ColumnViewerEditor;
import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider;
import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
import org.eclipse.jface.viewers.ICellModifier;
import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.IOpenListener;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionProvider;
@@ -111,13 +108,11 @@ import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.jface.viewers.TreeViewerEditor;
+import org.eclipse.jface.viewers.ViewerCell;
import org.eclipse.jface.window.Window;
-import org.eclipse.jgit.events.ConfigChangedEvent;
import org.eclipse.jgit.events.ConfigChangedListener;
-import org.eclipse.jgit.events.IndexChangedEvent;
import org.eclipse.jgit.events.IndexChangedListener;
import org.eclipse.jgit.events.ListenerHandle;
-import org.eclipse.jgit.events.RefsChangedEvent;
import org.eclipse.jgit.events.RefsChangedListener;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.osgi.util.NLS;
@@ -171,7 +166,7 @@ import org.eclipse.ui.views.properties.PropertySheet;
import org.eclipse.ui.views.properties.PropertySheetPage;
/**
- * The "Git Repositories View"
+ * The "Git Repositories View".
*/
public class RepositoriesView extends CommonNavigator implements IShowInSource, IShowInTargetList {
@@ -197,20 +192,22 @@ public class RepositoriesView extends CommonNavigator implements IShowInSource,
private static final String SINGLE_REPO_CONTEXT_ID = VIEW_ID
+ ".SingleRepository"; //$NON-NLS-1$
- private static final long DEFAULT_REFRESH_DELAY = 1000;
+ /**
+ * Delay between refreshes in milliseconds. Used to avoid overwhelming the
+ * viewer with refreshes when many change events arrive from repositories.
+ */
+ private static final long DEFAULT_REFRESH_DELAY = 300L;
private final Set<Repository> repositories = new HashSet<>();
- private final RefsChangedListener myRefsChangedListener;
+ private final RefsChangedListener myRefsChangedListener = event -> scheduleRefresh();
- private final IndexChangedListener myIndexChangedListener;
+ private final IndexChangedListener myIndexChangedListener = event -> scheduleRefresh();
- private final ConfigChangedListener myConfigChangeListener;
+ private final ConfigChangedListener myConfigChangeListener = event -> scheduleRefresh();
private final List<ListenerHandle> myListeners = new LinkedList<>();
- private Job scheduledJob;
-
private RefreshUiJob refreshUiJob;
private final RepositoryUtil repositoryUtil;
@@ -221,10 +218,6 @@ public class RepositoriesView extends CommonNavigator implements IShowInSource,
private StackLayout layout;
- private volatile long lastInputChange = 0L;
-
- private volatile long lastInputUpdate = -1L;
-
private State reactOnSelection;
private IWorkbenchPart lastSelectionPart;
@@ -282,7 +275,11 @@ public class RepositoriesView extends CommonNavigator implements IShowInSource,
private final IStateListener stateChangeListener = (state,
oldValue) -> refresh();
- private final IPreferenceChangeListener configurationListener;
+ private final IPreferenceChangeListener configurationListener = event -> {
+ if (RepositoryUtil.PREFS_DIRECTORIES_REL.equals(event.getKey())) {
+ refresh();
+ }
+ };
private IContextActivation renameContext;
@@ -298,39 +295,6 @@ public class RepositoriesView extends CommonNavigator implements IShowInSource,
repositoryUtil = Activator.getDefault().getRepositoryUtil();
repositoryCache = org.eclipse.egit.core.Activator.getDefault()
.getRepositoryCache();
-
- configurationListener = new IPreferenceChangeListener() {
- @Override
- public void preferenceChange(PreferenceChangeEvent event) {
- if (RepositoryUtil.PREFS_DIRECTORIES_REL
- .equals(event.getKey())) {
- lastInputChange = System.currentTimeMillis();
- scheduleRefresh(DEFAULT_REFRESH_DELAY, null);
- }
- }
- };
-
- myRefsChangedListener = new RefsChangedListener() {
- @Override
- public void onRefsChanged(RefsChangedEvent e) {
- scheduleRefresh(DEFAULT_REFRESH_DELAY, null);
- }
- };
-
- myIndexChangedListener = new IndexChangedListener() {
- @Override
- public void onIndexChanged(IndexChangedEvent event) {
- scheduleRefresh(DEFAULT_REFRESH_DELAY, null);
-
- }
- };
-
- myConfigChangeListener = new ConfigChangedListener() {
- @Override
- public void onConfigChanged(ConfigChangedEvent event) {
- scheduleRefresh(DEFAULT_REFRESH_DELAY, null);
- }
- };
}
/**
@@ -765,7 +729,7 @@ public class RepositoriesView extends CommonNavigator implements IShowInSource,
private void initRepositoriesAndListeners() {
synchronized (repositories) {
repositories.clear();
- unregisterRepositoryListener();
+ unregisterRepositoryListeners();
Set<File> dirs = new HashSet<>();
// listen for repository changes
for (String dir : repositoryUtil.getConfiguredRepositories()) {
@@ -815,11 +779,6 @@ public class RepositoriesView extends CommonNavigator implements IShowInSource,
if (branchHierarchy != null) {
branchHierarchy.removeListener(stateChangeListener);
}
- // make sure to cancel the refresh job
- if (this.scheduledJob != null) {
- this.scheduledJob.cancel();
- this.scheduledJob = null;
- }
refreshUiJob.cancel();
repositoryUtil.getPreferences().removePreferenceChangeListener(
@@ -828,8 +787,7 @@ public class RepositoriesView extends CommonNavigator implements IShowInSource,
ISelectionService srv = CommonUtils.getService(getSite(), ISelectionService.class);
srv.removePostSelectionListener(selectionChangedListener);
- // remove RepositoryChangedListener
- unregisterRepositoryListener();
+ unregisterRepositoryListeners();
repositories.clear();
super.dispose();
@@ -937,7 +895,7 @@ public class RepositoriesView extends CommonNavigator implements IShowInSource,
* Refresh Repositories View
*/
public void refresh() {
- lastInputUpdate = -1L;
+ initRepositoriesAndListeners();
scheduleRefresh(0, null);
}
@@ -946,62 +904,17 @@ public class RepositoriesView extends CommonNavigator implements IShowInSource,
GitTraceLocation.REPOSITORIESVIEW.getLocation(), message);
}
- private synchronized void scheduleRefresh(long delay, Runnable uiTask) {
- if (GitTraceLocation.REPOSITORIESVIEW.isActive()) {
- trace("Entering scheduleRefresh()"); //$NON-NLS-1$
- }
-
- refreshUiJob.cancel();
- refreshUiJob.uiTask = uiTask;
-
- if (scheduledJob != null) {
- schedule(scheduledJob, delay);
- return;
- }
-
- Job job = new Job("Refreshing Git Repositories data") { //$NON-NLS-1$
-
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- final CommonViewer tv = getCommonViewer();
- if (!UIUtils.isUsable(tv)) {
- return Status.CANCEL_STATUS;
- }
- final boolean trace = GitTraceLocation.REPOSITORIESVIEW
- .isActive();
- final boolean needsNewInput = lastInputChange > lastInputUpdate;
- if (trace) {
- trace("Running the update, new input required: " //$NON-NLS-1$
- + (lastInputChange > lastInputUpdate));
- }
- lastInputUpdate = System.currentTimeMillis();
- if (needsNewInput) {
- initRepositoriesAndListeners();
- }
-
- refreshUiJob.needsNewInput = needsNewInput;
- refreshUiJob.schedule();
- if (monitor.isCanceled()) {
- return Status.CANCEL_STATUS;
- }
- return Status.OK_STATUS;
- }
-
- @Override
- public boolean belongsTo(Object family) {
- return JobFamilies.REPO_VIEW_REFRESH.equals(family);
- }
+ private void scheduleRefresh() {
+ scheduleRefresh(DEFAULT_REFRESH_DELAY, null);
+ }
- };
- job.setSystem(true);
- job.setUser(false);
- schedule(job, delay);
- scheduledJob = job;
+ private synchronized void scheduleRefresh(long delay, Runnable uiTask) {
+ refreshUiJob.uiTask.compareAndSet(null, uiTask);
+ refreshUiJob.schedule(delay);
}
class RefreshUiJob extends WorkbenchJob {
- volatile boolean needsNewInput;
- volatile Runnable uiTask;
+ final AtomicReference<Runnable> uiTask = new AtomicReference<>();
RefreshUiJob() {
super(PlatformUI.getWorkbench().getDisplay(),
@@ -1028,16 +941,8 @@ public class RepositoriesView extends CommonNavigator implements IShowInSource,
return Status.CANCEL_STATUS;
}
- if (needsNewInput) {
- // keep expansion state and selection so that we can
- // restore the tree after update
- Object[] expanded = tv.getExpandedElements();
- tv.setInput(ResourcesPlugin.getWorkspace().getRoot());
- tv.setExpandedElements(expanded);
- afterRefresh(tv);
- } else {
- tv.refresh(true);
- }
+ tv.refresh(true);
+
if (monitor.isCanceled()) {
return Status.CANCEL_STATUS;
}
@@ -1053,15 +958,12 @@ public class RepositoriesView extends CommonNavigator implements IShowInSource,
((PropertySheetPage) page).refresh();
}
}
- if (monitor.isCanceled()) {
- return Status.CANCEL_STATUS;
- }
if (monitor.isCanceled()) {
return Status.CANCEL_STATUS;
}
- Runnable task = uiTask;
+ Runnable task = uiTask.getAndSet(null);
if (task != null) {
task.run();
}
@@ -1074,20 +976,8 @@ public class RepositoriesView extends CommonNavigator implements IShowInSource,
}
}
- private void schedule(Job job, long delay) {
- IWorkbenchSiteProgressService service = CommonUtils.getService(getSite(), IWorkbenchSiteProgressService.class);
-
- if (GitTraceLocation.REPOSITORIESVIEW.isActive()) {
- GitTraceLocation.getTrace().trace(
- GitTraceLocation.REPOSITORIESVIEW.getLocation(),
- "Scheduling refresh job"); //$NON-NLS-1$
- }
- service.schedule(job, delay);
- }
-
- private void unregisterRepositoryListener() {
- for (ListenerHandle lh : myListeners)
- lh.remove();
+ private void unregisterRepositoryListeners() {
+ myListeners.forEach(ListenerHandle::remove);
myListeners.clear();
}
@@ -1389,9 +1279,9 @@ public class RepositoriesView extends CommonNavigator implements IShowInSource,
}
/**
- * Customized {@link CommonViewer} that doesn't create a decorating label
- * provider -- our label provider already does so, and we don't want double
- * decorations.
+ * Customized {@link CommonViewer} that switches back to the empty area if
+ * the tree view becomes empty, and that adds additional information at the
+ * end of labels.
*/
private class RepositoriesCommonViewer extends CommonViewer {
@@ -1403,12 +1293,8 @@ public class RepositoriesView extends CommonNavigator implements IShowInSource,
@Override
protected void init() {
super.init();
- IBaseLabelProvider labelProvider = getLabelProvider();
- // Our label provider already decorates. Avoid double decorating.
- if (labelProvider instanceof DecoratingStyledCellLabelProvider) {
- ((DecoratingStyledCellLabelProvider) labelProvider)
- .setLabelDecorator(null);
- }
+ setLabelProvider(new PathAddingLabelProvider(
+ getNavigatorContentService().createCommonLabelProvider()));
}
@Override
@@ -1423,4 +1309,18 @@ public class RepositoriesView extends CommonNavigator implements IShowInSource,
afterRefresh(this);
}
}
+
+ @SuppressWarnings("restriction")
+ private static class PathAddingLabelProvider extends
+ org.eclipse.ui.internal.navigator.NavigatorDecoratingLabelProvider {
+
+ public PathAddingLabelProvider(ILabelProvider commonLabelProvider) {
+ super(commonLabelProvider);
+ }
+
+ @Override
+ public void update(ViewerCell cell) {
+ RepositoryTreeNodeLabelProvider.update(cell, super::update);
+ }
+ }
}
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesViewContentProvider.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesViewContentProvider.java
index 370184a089..a6435f9604 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesViewContentProvider.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesViewContentProvider.java
@@ -29,14 +29,12 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.EnumSet;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Objects;
import java.util.Set;
-import java.util.WeakHashMap;
import java.util.stream.Collectors;
import org.eclipse.core.commands.State;
@@ -81,9 +79,6 @@ import org.eclipse.egit.ui.internal.repository.tree.command.ToggleBranchHierarch
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jgit.api.Git;
-import org.eclipse.jgit.events.ListenerHandle;
-import org.eclipse.jgit.events.RefsChangedEvent;
-import org.eclipse.jgit.events.RefsChangedListener;
import org.eclipse.jgit.lib.ConfigConstants;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.ObjectId;
@@ -117,9 +112,7 @@ public class RepositoriesViewContentProvider implements ITreeContentProvider {
private boolean showRepositoryGroups = false;
- private Map<Repository, Map<String, Ref>> branchRefs = new WeakHashMap<>();
-
- private Map<Repository, ListenerHandle> refsChangedListeners = new WeakHashMap<>();
+ private RefCache.Cache refCache = RefCache.get();
/**
* Constructs a new {@link RepositoriesViewContentProvider} that doesn't
@@ -195,8 +188,7 @@ public class RepositoriesViewContentProvider implements ITreeContentProvider {
@Override
public void dispose() {
- refsChangedListeners.values().forEach(ListenerHandle::remove);
- refsChangedListeners.clear();
+ refCache.dispose();
}
@Override
@@ -242,7 +234,7 @@ public class RepositoriesViewContentProvider implements ITreeContentProvider {
refs.add(new AdditionalRefNode(node, repo, refEntry
.getValue()));
}
- for (Ref r : repo.getRefDatabase().getAdditionalRefs()) {
+ for (Ref r : refCache.additional(repo)) {
refs.add(new AdditionalRefNode(node, repo, r));
}
if (showUnbornHead) {
@@ -603,7 +595,7 @@ public class RepositoriesViewContentProvider implements ITreeContentProvider {
*/
private boolean hasTagsChildren(Repository repo) {
try {
- if (branchRefs.get(repo) == null) {
+ if (!refCache.isLoaded(repo)) {
WorkspaceJob job = new WorkspaceJob(
UIText.RepositoriesViewContentProvider_ReadReferencesJob) {
@@ -629,33 +621,9 @@ public class RepositoriesViewContentProvider implements ITreeContentProvider {
}
}
- private synchronized Map<String, Ref> getRefs(final Repository repo, final String prefix) throws IOException {
- Map<String, Ref> allRefs = branchRefs.get(repo);
- if (allRefs == null) {
- allRefs = repo.getRefDatabase().getRefs(RefDatabase.ALL);
- branchRefs.put(repo, allRefs);
- if (refsChangedListeners.get(repo) == null) {
- RefsChangedListener listener = new RefsChangedListener() {
- @Override
- public void onRefsChanged(RefsChangedEvent event) {
- synchronized (RepositoriesViewContentProvider.this) {
- branchRefs.remove(repo);
- }
- }
- };
- refsChangedListeners.put(repo, repo.getListenerList()
- .addRefsChangedListener(listener));
- }
- }
- if (prefix.equals(RefDatabase.ALL))
- return allRefs;
-
- Map<String, Ref> filtered = new HashMap<>();
- for (Map.Entry<String, Ref> entry : allRefs.entrySet()) {
- if (entry.getKey().startsWith(prefix))
- filtered.put(entry.getKey(), entry.getValue());
- }
- return filtered;
+ private Map<String, Ref> getRefs(final Repository repo, final String prefix)
+ throws IOException {
+ return refCache.byPrefix(repo, prefix);
}
/**
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeDecorator.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeDecorator.java
index b2cea36918..289692f1a6 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeDecorator.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeDecorator.java
@@ -15,6 +15,7 @@ package org.eclipse.egit.ui.internal.repository;
import java.io.File;
import java.io.IOException;
+import java.text.MessageFormat;
import java.util.Set;
import org.eclipse.core.commands.IStateListener;
@@ -28,6 +29,7 @@ import org.eclipse.egit.core.internal.indexdiff.IndexDiffCacheEntry;
import org.eclipse.egit.core.internal.indexdiff.IndexDiffData;
import org.eclipse.egit.ui.Activator;
import org.eclipse.egit.ui.internal.CommonUtils;
+import org.eclipse.egit.ui.internal.UIIcons;
import org.eclipse.egit.ui.internal.UIText;
import org.eclipse.egit.ui.internal.decorators.DecoratorRepositoryStateCache;
import org.eclipse.egit.ui.internal.decorators.GitDecorator;
@@ -42,6 +44,7 @@ import org.eclipse.egit.ui.internal.repository.tree.TagNode;
import org.eclipse.egit.ui.internal.repository.tree.command.ToggleBranchCommitCommand;
import org.eclipse.jface.viewers.IDecoration;
import org.eclipse.jgit.annotations.NonNull;
+import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Ref;
import org.eclipse.jgit.lib.Repository;
@@ -74,6 +77,8 @@ public class RepositoryTreeNodeDecorator extends GitDecorator
private boolean verboseBranchMode = false;
+ private final RefCache.Cache refCache = RefCache.get();
+
/**
* Constructs a repositories view label provider
*/
@@ -94,17 +99,11 @@ public class RepositoryTreeNodeDecorator extends GitDecorator
@Override
public void dispose() {
verboseBranchModeState.removeListener(this);
+ refCache.dispose();
super.dispose();
}
@Override
- public void indexDiffChanged(Repository repository,
- IndexDiffData indexDiffData) {
- DecoratorRepositoryStateCache.INSTANCE.clear(repository);
- super.indexDiffChanged(repository, indexDiffData);
- }
-
- @Override
public void handleStateChange(State state, Object oldValue) {
try {
boolean newValue = ((Boolean) state.getValue())
@@ -124,46 +123,150 @@ public class RepositoryTreeNodeDecorator extends GitDecorator
Repository repository = node.getRepository();
if (repository != null) {
UnitOfWork.execute(repository,
- () -> decorateText(node, repository, decoration));
+ () -> decorateNode(node, repository, decoration));
} else if (node.getType() == RepositoryTreeNodeType.REPOGROUP) {
decorateRepositoryGroup(node, decoration);
}
}
- private void decorateText(RepositoryTreeNode<?> node,
+ private void decorateNode(RepositoryTreeNode<?> node,
@NonNull Repository repository, IDecoration decoration) {
- boolean decorated = false;
+ try {
+ decorateText(node, repository, decoration);
+ decorateIcon(node, repository, decoration);
+ } catch (IOException e) {
+ Activator.logError(MessageFormat.format(
+ UIText.GitLabelProvider_UnableToRetrieveLabel,
+ node.toString()), e);
+ }
+ }
+
+ private void decorateIcon(RepositoryTreeNode<?> node,
+ @NonNull Repository repository, IDecoration decoration)
+ throws IOException {
+ switch (node.getType()) {
+ case TAG: {
+ String branchName = DecoratorRepositoryStateCache.INSTANCE
+ .getFullBranchName(repository);
+ if (branchName == null) {
+ return;
+ }
+ // HEAD would be on the commit id to which the tag is pointing
+ if (branchName.equals(((TagNode) node).getCommitId())) {
+ decoration.addOverlay(UIIcons.OVR_CHECKEDOUT,
+ IDecoration.TOP_LEFT);
+ }
+ break;
+ }
+ case ADDITIONALREF: {
+ Ref ref = refCache.findAdditional(repository,
+ ((Ref) node.getObject()).getName());
+ if (ref != null) {
+ decorateRefIcon(repository, ref, decoration);
+ }
+ break;
+ }
+ case REF: {
+ Ref ref = refCache.exact(repository,
+ ((Ref) node.getObject()).getName());
+ if (ref != null) {
+ decorateRefIcon(repository, ref, decoration);
+ }
+ break;
+ }
+ default:
+ break;
+ }
+ }
+
+ private void decorateRefIcon(@NonNull Repository repository, Ref ref,
+ IDecoration decoration) {
+ String branchName = DecoratorRepositoryStateCache.INSTANCE
+ .getFullBranchName(repository);
+ if (branchName == null) {
+ return;
+ }
+ String refName = ref.getName();
+ Ref leaf = ref.getLeaf();
+
+ String compareString = null;
+ if (refName.startsWith(Constants.R_HEADS)) {
+ // local branch: HEAD would be on the branch
+ compareString = refName;
+ } else if (refName.startsWith(Constants.R_REMOTES)) {
+ // remote branch: branch name is object id in detached HEAD
+ // state
+ ObjectId objectId = leaf.getObjectId();
+ if (objectId != null) {
+ String leafName = objectId.getName();
+ if (leafName.equals(branchName)) {
+ decoration.addOverlay(UIIcons.OVR_CHECKEDOUT,
+ IDecoration.TOP_LEFT);
+ return;
+ }
+ }
+ } else if (refName.equals(Constants.HEAD)) {
+ decoration.addOverlay(UIIcons.OVR_CHECKEDOUT, IDecoration.TOP_LEFT);
+ return;
+ } else {
+ String leafname = leaf.getName();
+ if (leafname.startsWith(Constants.R_REFS)
+ && leafname.equals(branchName)) {
+ decoration.addOverlay(UIIcons.OVR_CHECKEDOUT,
+ IDecoration.TOP_LEFT);
+ return;
+ }
+ ObjectId objectId = leaf.getObjectId();
+ if (objectId != null
+ && objectId.equals(DecoratorRepositoryStateCache.INSTANCE
+ .getHead(repository))) {
+ decoration.addOverlay(UIIcons.OVR_CHECKEDOUT,
+ IDecoration.TOP_LEFT);
+ }
+ // some other symbolic reference
+ return;
+ }
+
+ if (branchName.equals(compareString)) {
+ decoration.addOverlay(UIIcons.OVR_CHECKEDOUT, IDecoration.TOP_LEFT);
+ }
+ }
+
+ private void decorateText(RepositoryTreeNode<?> node,
+ @NonNull Repository repository, IDecoration decoration)
+ throws IOException {
switch (node.getType()) {
case REPO:
- decorated = decorateRepository(node, repository, decoration);
+ decorateRepository(node, repository, decoration);
break;
case ADDITIONALREF:
- decorated = decorateAdditionalRef((AdditionalRefNode) node,
+ decorateAdditionalRef((AdditionalRefNode) node,
decoration);
break;
case REF:
- decorated = decorateRef((RefNode) node, decoration);
+ decorateRef((RefNode) node, decoration);
break;
case TAG:
- decorated = decorateTag((TagNode) node, decoration);
+ decorateTag((TagNode) node, decoration);
break;
case STASHED_COMMIT:
- decorated = decorateStash((StashedCommitNode) node, decoration);
+ decorateStash((StashedCommitNode) node, decoration);
break;
case SUBMODULES:
- decorated = decorateSubmodules(repository, decoration);
+ decorateSubmodules(repository, decoration);
break;
default:
return;
}
- if (!decorated) {
- ensureCorrectLabelCaching(decoration);
- }
}
- private boolean decorateAdditionalRef(AdditionalRefNode node,
- IDecoration decoration) {
- Ref ref = node.getObject();
+ private void decorateAdditionalRef(AdditionalRefNode node,
+ IDecoration decoration) throws IOException {
+ String name = node.getObject().getName();
+ Ref ref = refCache.findAdditional(node.getRepository(), name);
+ if (ref == null) {
+ return;
+ }
StringBuilder suffix = new StringBuilder();
if (ref.isSymbolic()) {
suffix.append(OPEN_BRACKET).append(ref.getLeaf().getName())
@@ -171,7 +274,7 @@ public class RepositoryTreeNodeDecorator extends GitDecorator
}
ObjectId refId = ref.getObjectId();
suffix.append(' ');
- RevCommit commit = getLatestCommit(node);
+ RevCommit commit = getLatestCommit(node.getRepository(), ref);
if (commit != null) {
suffix.append(abbreviate(commit)).append(' ')
.append(commit.getShortMessage());
@@ -182,22 +285,25 @@ public class RepositoryTreeNodeDecorator extends GitDecorator
UIText.RepositoriesViewLabelProvider_UnbornBranchText);
}
decoration.addSuffix(suffix.toString());
- return true;
}
- private boolean decorateRef(RefNode node, IDecoration decoration) {
+ private void decorateRef(RefNode node, IDecoration decoration)
+ throws IOException {
if (verboseBranchMode) {
- RevCommit latest = getLatestCommit(node);
+ Ref ref = refCache.exact(node.getRepository(),
+ node.getObject().getName());
+ if (ref == null) {
+ return;
+ }
+ RevCommit latest = getLatestCommit(node.getRepository(), ref);
if (latest != null) {
decoration.addSuffix(" " + abbreviate(latest) + ' ' //$NON-NLS-1$
+ latest.getShortMessage());
- return true;
}
}
- return false;
}
- private boolean decorateRepository(RepositoryTreeNode<?> node,
+ private void decorateRepository(RepositoryTreeNode<?> node,
@NonNull Repository repository, IDecoration decoration) {
boolean isSubModule = node.getParent() != null && node.getParent()
.getType() == RepositoryTreeNodeType.SUBMODULES;
@@ -209,7 +315,7 @@ public class RepositoryTreeNodeDecorator extends GitDecorator
Ref head = DecoratorRepositoryStateCache.INSTANCE
.getHeadRef(repository);
if (head == null) {
- return false;
+ return;
}
suffix.append(OPEN_BRACKET);
if (head.isSymbolic()) {
@@ -231,7 +337,7 @@ public class RepositoryTreeNodeDecorator extends GitDecorator
String branch = DecoratorRepositoryStateCache.INSTANCE
.getCurrentBranchLabel(repository);
if (branch == null) {
- return false;
+ return;
}
suffix.append(OPEN_BRACKET);
suffix.append(branch);
@@ -250,7 +356,6 @@ public class RepositoryTreeNodeDecorator extends GitDecorator
suffix.append(']');
}
decoration.addSuffix(suffix.toString());
- return true;
}
private void decorateRepositoryGroup(RepositoryTreeNode<?> node,
@@ -289,62 +394,43 @@ public class RepositoryTreeNodeDecorator extends GitDecorator
}
}
}
- boolean decorated = false;
if (markGroupDirty) {
- decorated = true;
decoration.addPrefix(HAS_CHANGES_PREFIX);
}
if (numberOfBranches == 1) {
- decorated = true;
String repoLabel = singleRepoName != null ? singleRepoName
: MULTIPLE_REPOSITORIES;
decoration.addSuffix(
OPEN_BRACKET + repoLabel + ' ' + singleBranch + ']');
} else if (numberOfDirectories > 1) {
- decorated = true;
decoration.addSuffix(OPEN_PARENTHESIS + numberOfDirectories + ')');
}
- if (!decorated) {
- ensureCorrectLabelCaching(decoration);
- }
- }
-
- private void ensureCorrectLabelCaching(IDecoration decoration) {
- // Ensure the caching of last labels in
- // RepositoryTreeNodeLabelProvider works
- decoration.addSuffix(" ");//$NON-NLS-1$
}
- private boolean decorateStash(StashedCommitNode node,
+ private void decorateStash(StashedCommitNode node,
IDecoration decoration) {
RevCommit commit = node.getObject();
decoration.addSuffix(
OPEN_BRACKET + abbreviate(commit) + "] " //$NON-NLS-1$
+ commit.getShortMessage());
- return true;
}
- private boolean decorateSubmodules(@NonNull Repository repository,
+ private void decorateSubmodules(@NonNull Repository repository,
IDecoration decoration) {
if (haveSubmoduleChanges(repository)) {
decoration.addPrefix(HAS_CHANGES_PREFIX);
- return true;
}
- return false;
}
- private boolean decorateTag(TagNode node, IDecoration decoration) {
+ private void decorateTag(TagNode node, IDecoration decoration) {
if (verboseBranchMode && node.getCommitId() != null
&& node.getCommitId().length() > 0) {
decoration.addSuffix(" " + node.getCommitId().substring(0, 7) + ' ' //$NON-NLS-1$
+ node.getCommitShortMessage());
- return true;
}
- return false;
}
- private RevCommit getLatestCommit(RepositoryTreeNode node) {
- Ref ref = (Ref) node.getObject();
+ private RevCommit getLatestCommit(Repository repository, Ref ref) {
ObjectId id;
if (ref.isSymbolic()) {
id = ref.getLeaf().getObjectId();
@@ -354,7 +440,7 @@ public class RepositoryTreeNodeDecorator extends GitDecorator
if (id == null) {
return null;
}
- try (RevWalk walk = new RevWalk(node.getRepository())) {
+ try (RevWalk walk = new RevWalk(repository)) {
walk.setRetainBody(true);
return walk.parseCommit(id);
} catch (IOException ignored) {
@@ -383,7 +469,7 @@ public class RepositoryTreeNodeDecorator extends GitDecorator
}
Set<String> modified = data.getModified();
return data.getSubmodules().stream()
- .anyMatch(s -> modified.contains(s));
+ .anyMatch(modified::contains);
}
@Override
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeLabelProvider.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeLabelProvider.java
index 3921505618..458769d15b 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeLabelProvider.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeLabelProvider.java
@@ -15,7 +15,8 @@
*******************************************************************************/
package org.eclipse.egit.ui.internal.repository;
-import java.util.WeakHashMap;
+import java.util.Arrays;
+import java.util.function.Consumer;
import org.eclipse.egit.ui.internal.GitLabels;
import org.eclipse.egit.ui.internal.groups.RepositoryGroup;
@@ -28,10 +29,13 @@ import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNodeType;
import org.eclipse.egit.ui.internal.repository.tree.WorkingDirNode;
import org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider;
import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
+import org.eclipse.jface.viewers.IDecorationContext;
+import org.eclipse.jface.viewers.ILabelDecorator;
import org.eclipse.jface.viewers.StyledString;
+import org.eclipse.jface.viewers.ViewerCell;
import org.eclipse.jgit.lib.Ref;
import org.eclipse.jgit.lib.Repository;
-import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.custom.StyleRange;
import org.eclipse.ui.IMemento;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.model.WorkbenchLabelProvider;
@@ -50,91 +54,36 @@ public class RepositoryTreeNodeLabelProvider
private final boolean showPaths;
/**
- * Keeps the last label. If the label we originally get is undecorated, we
- * return this last decorated label instead to prevent flickering. When the
- * asynchronous lightweight decorator then has computed the decoration, the
- * label will be updated. Note that this works only because our
- * RepositoryTreeNodeDecorator always decorates! (If there's no decoration,
- * it appends a single blank to ensure the decorated label is different from
- * the undecorated one.)
- * <p>
- * For images, there is no such work-around, and thus we need to do the
- * image decorations in the label provider (in the
- * RepositoryTreeNodeWorkbenchAdapter in our case) in the UI thread.
- */
- private final WeakHashMap<Object, StyledString> previousDecoratedLabels = new WeakHashMap<>();
-
- /**
- * Creates a new {@link RepositoryTreeNodeLabelProvider} that shows the
- * paths for repositories and working tree nodes.
+ * Creates a new {@link RepositoryTreeNodeLabelProvider} that neither
+ * decorates nor shows paths.
*/
public RepositoryTreeNodeLabelProvider() {
- this(true);
+ this(new WorkbenchLabelProvider(), null, null, false);
}
/**
- * Creates a new {@link RepositoryTreeNodeLabelProvider}.
+ * Creates a new {@link RepositoryTreeNodeLabelProvider} that decorates and
+ * optionally shows paths.
*
* @param showPaths
- * whether to show the file system paths for repositories and
- * working tree nodes
+ * whether to show paths
*/
public RepositoryTreeNodeLabelProvider(boolean showPaths) {
- this(new WorkbenchLabelProvider(), showPaths);
+ this(new WorkbenchLabelProvider(), PlatformUI.getWorkbench()
+ .getDecoratorManager().getLabelDecorator(), null, showPaths);
}
private RepositoryTreeNodeLabelProvider(
- WorkbenchLabelProvider labelProvider, boolean showPaths) {
- super(labelProvider, PlatformUI.getWorkbench()
- .getDecoratorManager().getLabelDecorator(), null);
+ WorkbenchLabelProvider labelProvider, ILabelDecorator decorator,
+ IDecorationContext decorationContext, boolean showPaths) {
+ super(labelProvider, decorator, decorationContext);
this.labelProvider = labelProvider;
this.showPaths = showPaths;
}
@Override
- public void dispose() {
- super.dispose();
- previousDecoratedLabels.clear();
- }
-
- @Override
public StyledString getStyledText(Object element) {
- StyledString decoratedLabel = super.getStyledText(element);
- String decoratedValue = decoratedLabel.getString();
- String simpleValue = labelProvider.getText(element);
- if (decoratedValue.equals(simpleValue)) {
- // Decoration not available yet... but may be shortly. Try to
- // prevent flickering by returning the previous decorated label, if
- // any.
- StyledString previousLabel = previousDecoratedLabels.get(element);
- if (previousLabel != null) {
- return previousLabel;
- }
- } else if (decoratedValue.trim().equals(simpleValue)) {
- // No decoration...
- decoratedLabel = labelProvider.getStyledText(element);
- }
- if (showPaths) {
- if (element instanceof RepositoryNode) {
- Repository repository = ((RepositoryNode) element)
- .getRepository();
- if (repository != null) {
- decoratedLabel.append(" - ", StyledString.QUALIFIER_STYLER) //$NON-NLS-1$
- .append(repository.getDirectory().getAbsolutePath(),
- StyledString.QUALIFIER_STYLER);
- }
- } else if (element instanceof WorkingDirNode) {
- Repository repository = ((WorkingDirNode) element)
- .getRepository();
- if (repository != null) {
- decoratedLabel.append(" - ", StyledString.QUALIFIER_STYLER) //$NON-NLS-1$
- .append(repository.getWorkTree().getAbsolutePath(),
- StyledString.QUALIFIER_STYLER);
- }
- }
- }
- previousDecoratedLabels.put(element, decoratedLabel);
- return decoratedLabel;
+ return super.getStyledText(element);
}
@Override
@@ -143,13 +92,6 @@ public class RepositoryTreeNodeLabelProvider
}
@Override
- public Image getImage(Object element) {
- // We know that the decorator for RepositoryTreeNodes will not decorate
- // the image; our label provider will do so already.
- return labelProvider.getImage(element);
- }
-
- @Override
public String getToolTipText(Object element) {
if (element instanceof AdditionalRefNode) {
AdditionalRefNode additionalRefNode = (AdditionalRefNode) element;
@@ -160,6 +102,15 @@ public class RepositoryTreeNodeLabelProvider
}
@Override
+ public void update(ViewerCell cell) {
+ if (showPaths) {
+ update(cell, super::update);
+ } else {
+ super.update(cell);
+ }
+ }
+
+ @Override
public void restoreState(IMemento memento) {
// empty
}
@@ -198,4 +149,43 @@ public class RepositoryTreeNodeLabelProvider
public void init(ICommonContentExtensionSite config) {
// empty
}
+
+ static void update(ViewerCell cell, Consumer<ViewerCell> updater) {
+ Object element = cell.getElement();
+ if (element instanceof RepositoryNode
+ || element instanceof WorkingDirNode) {
+ String textBefore = cell.getText();
+ StyleRange[] rangesBefore = cell.getStyleRanges();
+ updater.accept(cell);
+ String textAfter = cell.getText();
+ StyleRange[] rangesAfter = cell.getStyleRanges();
+ if (textBefore.equals(textAfter)
+ && Arrays.equals(rangesBefore, rangesAfter)) {
+ // Decorating delegate decided to wait.
+ return;
+ }
+ Repository repository = ((RepositoryTreeNode<?>) element)
+ .getRepository();
+ if (repository == null) {
+ return;
+ }
+ String newText = " - "; //$NON-NLS-1$
+ if (element instanceof RepositoryNode) {
+ newText += repository.getDirectory().getAbsolutePath();
+ } else if (element instanceof WorkingDirNode) {
+ newText += repository.getWorkTree().getAbsolutePath();
+ }
+ StyleRange style = new StyleRange();
+ style.start = textAfter.length();
+ style.length = newText.length();
+ StyledString.QUALIFIER_STYLER.applyStyles(style);
+ StyleRange[] newRanges = new StyleRange[rangesAfter.length + 1];
+ System.arraycopy(rangesAfter, 0, newRanges, 0, rangesAfter.length);
+ newRanges[newRanges.length - 1] = style;
+ cell.setText(textAfter + newText);
+ cell.setStyleRanges(newRanges);
+ } else {
+ updater.accept(cell);
+ }
+ }
}
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeWorkbenchAdapter.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeWorkbenchAdapter.java
index f80c3800c7..4d6f094504 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeWorkbenchAdapter.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoryTreeNodeWorkbenchAdapter.java
@@ -14,22 +14,17 @@ import java.io.File;
import java.text.MessageFormat;
import org.eclipse.core.runtime.IPath;
-import org.eclipse.egit.ui.internal.DecorationOverlayDescriptor;
import org.eclipse.egit.ui.internal.GitLabels;
import org.eclipse.egit.ui.internal.ResourcePropertyTester;
import org.eclipse.egit.ui.internal.UIIcons;
import org.eclipse.egit.ui.internal.UIText;
-import org.eclipse.egit.ui.internal.decorators.DecoratorRepositoryStateCache;
import org.eclipse.egit.ui.internal.groups.RepositoryGroup;
import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode;
import org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNodeType;
import org.eclipse.egit.ui.internal.repository.tree.StashedCommitNode;
import org.eclipse.egit.ui.internal.repository.tree.TagNode;
import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IDecoration;
-import org.eclipse.jgit.annotations.NonNull;
import org.eclipse.jgit.lib.Constants;
-import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Ref;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.ui.PlatformUI;
@@ -63,18 +58,6 @@ public class RepositoryTreeNodeWorkbenchAdapter extends WorkbenchAdapter {
return null;
}
RepositoryTreeNode<?> node = (RepositoryTreeNode) object;
- ImageDescriptor base = getBaseImageDescriptor(node);
- if (base == null) {
- return null;
- }
- // We have to decorate here: if we let an asynchronous lightweight
- // decorator do it, image decorations may flicker in the
- // repositories view and elsewhere where we'd refresh viewers.
- return decorateImageDescriptor(base, node);
- }
-
- private ImageDescriptor getBaseImageDescriptor(
- @NonNull RepositoryTreeNode<?> node) {
switch (node.getType()) {
case FILE: {
Object item = node.getObject();
@@ -103,78 +86,6 @@ public class RepositoryTreeNodeWorkbenchAdapter extends WorkbenchAdapter {
return node.getType().getIcon();
}
- private ImageDescriptor decorateImageDescriptor(
- @NonNull ImageDescriptor base,
- @NonNull RepositoryTreeNode<?> node) {
- switch (node.getType()) {
- case TAG:
- case ADDITIONALREF:
- case REF:
- // if the branch or tag is checked out,
- // we want to decorate the corresponding
- // node with a little check indicator
- String refName = ((Ref) node.getObject()).getName();
- Ref leaf = ((Ref) node.getObject()).getLeaf();
-
- String compareString = null;
- Repository repository = node.getRepository();
- String branchName = DecoratorRepositoryStateCache.INSTANCE
- .getFullBranchName(repository);
- if (branchName == null) {
- return base;
- }
- if (refName.startsWith(Constants.R_HEADS)) {
- // local branch: HEAD would be on the branch
- compareString = refName;
- } else if (refName.startsWith(Constants.R_TAGS)) {
- // tag: HEAD would be on the commit id to which the tag is
- // pointing
- TagNode tagNode = (TagNode) node;
- compareString = tagNode.getCommitId();
- } else if (refName.startsWith(Constants.R_REMOTES)) {
- // remote branch: branch name is object id in detached HEAD
- // state
- ObjectId objectId = leaf.getObjectId();
- if (objectId != null) {
- String leafName = objectId.getName();
- if (leafName.equals(branchName)) {
- return new DecorationOverlayDescriptor(base,
- UIIcons.OVR_CHECKEDOUT, IDecoration.TOP_LEFT);
- }
- }
- } else if (refName.equals(Constants.HEAD)) {
- return new DecorationOverlayDescriptor(base,
- UIIcons.OVR_CHECKEDOUT, IDecoration.TOP_LEFT);
- } else {
- String leafname = leaf.getName();
- if (leafname.startsWith(Constants.R_REFS)
- && leafname.equals(branchName)) {
- return new DecorationOverlayDescriptor(base,
- UIIcons.OVR_CHECKEDOUT, IDecoration.TOP_LEFT);
- }
- ObjectId objectId = leaf.getObjectId();
- if (objectId != null && objectId
- .equals(DecoratorRepositoryStateCache.INSTANCE
- .getHead(repository))) {
- return new DecorationOverlayDescriptor(base,
- UIIcons.OVR_CHECKEDOUT, IDecoration.TOP_LEFT);
- }
- // some other symbolic reference
- return base;
- }
-
- if (compareString != null && compareString.equals(branchName)) {
- return new DecorationOverlayDescriptor(base,
- UIIcons.OVR_CHECKEDOUT, IDecoration.TOP_LEFT);
- }
-
- break;
- default:
- break;
- }
- return base;
- }
-
@Override
public String getLabel(Object object) {
RepositoryTreeNode<?> node = (RepositoryTreeNode) object;
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoryTreeNode.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoryTreeNode.java
index 63b54dc0e1..92584ea246 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoryTreeNode.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoryTreeNode.java
@@ -14,6 +14,7 @@
package org.eclipse.egit.ui.internal.repository.tree;
import java.io.File;
+import java.util.Objects;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
@@ -366,10 +367,16 @@ public abstract class RepositoryTreeNode<T> extends PlatformObject implements Co
return ((Repository) myObject).getDirectory().equals(
((Repository) otherObject).getDirectory());
case REF:
- case TAG:
case ADDITIONALREF:
return ((Ref) myObject).getName().equals(
((Ref) otherObject).getName());
+ case TAG: {
+ Ref myRef = (Ref) myObject;
+ Ref otherRef = (Ref) otherObject;
+ return Objects.equals(myRef.getName(), otherRef.getName())
+ && Objects.equals(myRef.getObjectId(),
+ otherRef.getObjectId());
+ }
case FOLDER:
case FILE:
return ((File) myObject).getPath().equals(
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/DeleteRepositoryGroupConfirmDialog.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/DeleteRepositoryGroupConfirmDialog.java
index ae9d7a2b89..26d7030d16 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/DeleteRepositoryGroupConfirmDialog.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/DeleteRepositoryGroupConfirmDialog.java
@@ -77,7 +77,8 @@ public class DeleteRepositoryGroupConfirmDialog extends TitleAreaDialog {
SWT.BORDER | SWT.V_SCROLL);
GridDataFactory.fillDefaults().grab(true, true)
.applyTo(groupsViewer.getControl());
- groupsViewer.setLabelProvider(new RepositoryTreeNodeLabelProvider());
+ groupsViewer
+ .setLabelProvider(new RepositoryTreeNodeLabelProvider(true));
groupsViewer.setContentProvider(
new DeleteRepositoryGroupTreeContentProvider());
groupsViewer.setInput(groupsToDelete);
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/search/CommitSearchPage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/search/CommitSearchPage.java
index 5f41929e38..f8c1ec7900 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/search/CommitSearchPage.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/search/CommitSearchPage.java
@@ -312,7 +312,7 @@ public class CommitSearchPage extends DialogPage implements ISearchPage {
repositoryGroup, SWT.SINGLE | SWT.V_SCROLL | SWT.H_SCROLL
| SWT.BORDER);
this.repositoryViewer
- .setLabelProvider(new RepositoryTreeNodeLabelProvider());
+ .setLabelProvider(new RepositoryTreeNodeLabelProvider(true));
this.repositoryViewer
.setContentProvider(new RepositoriesViewContentProvider());
this.repositoryViewer
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/search/CommitSearchResultsPage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/search/CommitSearchResultsPage.java
index 1353a4a89d..5e817a0e27 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/search/CommitSearchResultsPage.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/search/CommitSearchResultsPage.java
@@ -82,7 +82,7 @@ public class CommitSearchResultsPage extends AbstractTextSearchViewPage {
for (Object inputElement : getInput().getElements()) {
RepositoryCommit commit = (RepositoryCommit) inputElement;
repos.computeIfAbsent(commit.getRepository(),
- r -> new RepositoryMatch(r)).addCommit(commit);
+ RepositoryMatch::new).addCommit(commit);
}
return repos.values().toArray();
}
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/selection/MultiViewerSelectionProvider.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/selection/MultiViewerSelectionProvider.java
index d1c3f7bab4..372c864d8a 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/selection/MultiViewerSelectionProvider.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/selection/MultiViewerSelectionProvider.java
@@ -38,11 +38,9 @@ public class MultiViewerSelectionProvider extends AbstractSelectionProvider {
}
};
- private final ISelectionChangedListener selectionHook = event -> selectionChanged(
- event);
+ private final ISelectionChangedListener selectionHook = this::selectionChanged;
- private final ISelectionChangedListener postSelectionHook = event -> postSelectionChanged(
- event);
+ private final ISelectionChangedListener postSelectionHook = this::postSelectionChanged;
private Viewer currentViewer;
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java
index 5fec3702e9..ba0c91a03e 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java
@@ -30,6 +30,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.EnumSet;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
@@ -159,6 +160,7 @@ import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerComparator;
import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.jface.viewers.ViewerLabel;
import org.eclipse.jgit.annotations.NonNull;
import org.eclipse.jgit.annotations.Nullable;
import org.eclipse.jgit.api.AddCommand;
@@ -175,6 +177,7 @@ import org.eclipse.jgit.lib.Ref;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.RepositoryState;
import org.eclipse.jgit.revwalk.RevCommit;
+import org.eclipse.jgit.util.StringUtils;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.custom.VerifyKeyListener;
@@ -269,7 +272,9 @@ public class StagingView extends ViewPart
private RepositoryNode titleNode;
- private RepositoryTreeNodeLabelProvider titleLabelProvider;
+ private Map<File, ViewerLabel> titleLabels = new HashMap<>();
+
+ private DecoratingLabelProvider titleLabelProvider;
private SashForm mainSashForm;
@@ -734,11 +739,12 @@ public class StagingView extends ViewPart
GridLayoutFactory.fillDefaults().applyTo(parent);
titleNode = null;
- titleLabelProvider = new RepositoryTreeNodeLabelProvider(false);
+ titleLabelProvider = new DecoratingLabelProvider(
+ new RepositoryTreeNodeLabelProvider(),
+ PlatformUI.getWorkbench().getDecoratorManager());
titleLabelProvider.addListener(e -> {
if (titleNode != null && form != null && !form.isDisposed()) {
- form.setText(titleLabelProvider.getStyledText(titleNode)
- .getString());
+ updateTitle(false);
}
});
toolkit = new FormToolkit(parent.getDisplay());
@@ -1307,6 +1313,27 @@ public class StagingView extends ViewPart
service.showBusyForFamily(org.eclipse.egit.core.JobFamilies.INDEX_DIFF_CACHE_UPDATE);
}
+ private void updateTitle(boolean force) {
+ ViewerLabel label = titleLabels.computeIfAbsent(
+ titleNode.getRepository().getDirectory(),
+ r -> new ViewerLabel(null, null));
+ if (force) {
+ if (label.getImage() != null) {
+ form.setImage(label.getImage());
+ }
+ if (!StringUtils.isEmptyOrNull(label.getText())) {
+ form.setText(label.getText());
+ }
+ }
+ titleLabelProvider.updateLabel(label, titleNode);
+ if (label.hasNewImage()) {
+ form.setImage(label.getImage());
+ }
+ if (label.hasNewText()) {
+ form.setText(label.getText());
+ }
+ }
+
/**
* On Windows some SWT bug avoids repainting the non selected elements
* correctly, see bugzilla 533555.
@@ -1849,7 +1876,7 @@ public class StagingView extends ViewPart
StagingViewSearchThread searchThread = new StagingViewSearchThread(
StagingView.this);
filterText.getDisplay().timerExec(200,
- () -> searchThread.start());
+ searchThread::start);
});
return toolbarComposite;
}
@@ -2137,7 +2164,7 @@ public class StagingView extends ViewPart
}
}
});
- viewer.addOpenListener(event -> compareWith(event));
+ viewer.addOpenListener(this::compareWith);
viewer.setComparator(new StagingEntryComparator(!getSortCheckState(),
getPreferenceStore()
.getBoolean(UIPreferences.STAGING_VIEW_FILENAME_MODE)));
@@ -3652,6 +3679,7 @@ public class StagingView extends ViewPart
refreshAction.setEnabled(false);
updateSectionText();
titleNode = null;
+ form.setImage(getImage(UIIcons.REPOSITORY));
if (repository != null && repository.isBare()) {
form.setText(UIText.StagingView_BareRepoSelection);
} else {
@@ -3737,8 +3765,7 @@ public class StagingView extends ViewPart
if (repositoryChanged) {
titleNode = new RepositoryNode(null, repository);
- form.setText(titleLabelProvider.getStyledText(titleNode)
- .getString());
+ updateTitle(true);
// Reset paths, they're from the old repository
resetPathsToExpand();
removeRepositoryListeners();
@@ -3752,8 +3779,7 @@ public class StagingView extends ViewPart
repository));
} else if (titleNode != null) {
// The label decoration may need an update.
- form.setText(titleLabelProvider.getStyledText(titleNode)
- .getString());
+ updateTitle(false);
}
final StagingViewUpdate update = new StagingViewUpdate(repository,
indexDiff, null);
@@ -4380,6 +4406,7 @@ public class StagingView extends ViewPart
titleLabelProvider = null;
}
titleNode = null;
+ titleLabels.clear();
currentRepository = null;
lastSelection = null;
disposed = true;
diff --git a/org.eclipse.egit/META-INF/MANIFEST.MF b/org.eclipse.egit/META-INF/MANIFEST.MF
index 6a6f337684..a3674f2588 100644
--- a/org.eclipse.egit/META-INF/MANIFEST.MF
+++ b/org.eclipse.egit/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: org.eclipse.egit;singleton:=true
-Bundle-Version: 5.6.1.qualifier
+Bundle-Version: 5.7.0.qualifier
Bundle-Vendor: %Bundle-Vendor
Bundle-Localization: plugin
Bundle-ActivationPolicy: lazy
diff --git a/org.eclipse.egit/pom.xml b/org.eclipse.egit/pom.xml
index f66667f169..3d4f56f070 100644
--- a/org.eclipse.egit/pom.xml
+++ b/org.eclipse.egit/pom.xml
@@ -18,7 +18,7 @@
<parent>
<groupId>org.eclipse.egit</groupId>
<artifactId>egit-parent</artifactId>
- <version>5.6.1-SNAPSHOT</version>
+ <version>5.7.0-SNAPSHOT</version>
</parent>
<artifactId>org.eclipse.egit</artifactId>
diff --git a/pom.xml b/pom.xml
index 79461b0f71..273340bcfd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,7 @@
<groupId>org.eclipse.egit</groupId>
<artifactId>egit-parent</artifactId>
- <version>5.6.1-SNAPSHOT</version>
+ <version>5.7.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>EGit Parent</name>
@@ -60,7 +60,7 @@
</licenses>
<properties>
- <egit-version>5.6.1-SNAPSHOT</egit-version>
+ <egit-version>5.7.0-SNAPSHOT</egit-version>
<tycho-version>1.5.1</tycho-version>
<tycho-extras-version>${tycho-version}</tycho-extras-version>
<jboss-tycho-plugins-version>1.4.0</jboss-tycho-plugins-version>
diff --git a/tools/oomph/EGit.setup b/tools/oomph/EGit.setup
index bb6a30f248..a6ab15f0eb 100644
--- a/tools/oomph/EGit.setup
+++ b/tools/oomph/EGit.setup
@@ -105,15 +105,6 @@
xsi:type="pde:APIBaselineTask"
name="EGit"
activate="false"
- version="5.3.0"
- location="${workspace.location/../api.baseline/5.3.0}"
- remoteURI="https://download.eclipse.org/egit/updates-5.3/org.eclipse.egit.repository-5.3.0.201903130848-r.zip">
- <description>EGit 5.3.0 API baseline; to be used with branch stable-5.4</description>
- </setupTask>
- <setupTask
- xsi:type="pde:APIBaselineTask"
- name="EGit"
- activate="false"
version="5.4.0"
location="${workspace.location/../api.baseline/5.4.0}"
remoteURI="https://download.eclipse.org/egit/updates-5.4/org.eclipse.egit.repository-5.4.0.201906121030-r.zip">
@@ -122,10 +113,19 @@
<setupTask
xsi:type="pde:APIBaselineTask"
name="EGit"
+ activate="false"
version="5.5.0"
location="${workspace.location/../api.baseline/5.5.0}"
remoteURI="https://download.eclipse.org/egit/updates-5.5/org.eclipse.egit.repository-5.5.0.201909110433-r.zip">
- <description>EGit 5.5.0 API baseline; to be used with branch master</description>
+ <description>EGit 5.5.0 API baseline; to be used with branch stable-5.6</description>
+ </setupTask>
+ <setupTask
+ xsi:type="pde:APIBaselineTask"
+ name="EGit"
+ version="5.6.0"
+ location="${workspace.location/../api.baseline/5.6.0}"
+ remoteURI="https://download.eclipse.org/egit/updates-5.6/org.eclipse.egit.repository-5.6.0.201912101111-r.zip">
+ <description>EGit 5.6.0 API baseline; to be used with branch master</description>
</setupTask>
<stream name="master"
label="Workspace setup for branch master">

Back to the top