aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Sohn2018-06-13 19:08:27 -0400
committerMatthias Sohn2018-06-13 19:09:26 -0400
commit3a25cb61723b3461b3049210a6512633650b12b9 (patch)
treea53a88de1fca56830de6f205c4b87ca1f094d91d
parentfc34792f8068b7785181cd84236247589864399b (diff)
parentd83b42807f460584ebc1767866a17c40f6d8c16a (diff)
downloadegit-3a25cb61723b3461b3049210a6512633650b12b9.zip
egit-3a25cb61723b3461b3049210a6512633650b12b9.tar.gz
egit-3a25cb61723b3461b3049210a6512633650b12b9.tar.xz
Merge branch 'stable-5.0'
* stable-5.0: Prepare 5.0.1-SNAPSHOT builds EGit v5.0.0.201806131550-r Fix merge of wrong patchset of "EGit integration for LFS" Prepare 5.0.0-SNAPSHOT builds EGit v5.0.0.201806131210-r Update documentation for 5.0 EGit integration for LFS Downgrade Apache httpclient to 4.5.2.v20170210-0925 Handle new CommandFailedException when execution of ssh command fails Fix target platform Revert "Update staging view on repository config changes" Update to latest Photon Orbit R20180606145124 Use hash lookup for TreeViewers Prepare 5.0.0-SNAPSHOT builds EGit v5.0.0.201806050710-rc3 Fix AssumeUnchangedOperation not working on directory/project Change-Id: Ideee702514592028c5757b976237f35f4eea32bf Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/Activator.java24
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/internal/CoreText.java3
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/internal/coretext.properties1
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/op/AssumeUnchangedOperation.java16
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/op/BranchOperation.java12
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/op/ConfigureGerritAfterCloneTask.java6
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/op/DiscardChangesOperation.java11
-rw-r--r--org.eclipse.egit.doc/build-help.xml4
-rw-r--r--org.eclipse.egit.doc/help/EGit/Contributor_Guide/Bugs.html12
-rw-r--r--org.eclipse.egit.doc/help/EGit/Contributor_Guide/Builds.html4
-rw-r--r--org.eclipse.egit.doc/help/EGit/Contributor_Guide/Contributing-Patches.html23
-rw-r--r--org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/4.11/4.11.html114
-rw-r--r--org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/5.0/5.0.html184
-rw-r--r--org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/5.0/Contributors.html (renamed from org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/4.11/Contributors.html)22
-rw-r--r--org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/5.0/Updating-This-Document.html (renamed from org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/4.11/Updating-This-Document.html)8
-rw-r--r--org.eclipse.egit.doc/help/EGit/User_Guide/Tasks.html26
-rw-r--r--org.eclipse.egit.doc/help/EGit/User_Guide/images/EGit-5.0_LFS_enable_automatically.pngbin0 -> 42109 bytes
-rw-r--r--org.eclipse.egit.doc/help/EGit/User_Guide/images/EGit-5.0_LFS_enable_globally.pngbin0 -> 41522 bytes
-rw-r--r--org.eclipse.egit.doc/help/EGit/User_Guide/images/EGit-5.0_LFS_enable_locally.pngbin0 -> 18856 bytes
-rw-r--r--org.eclipse.egit.doc/help/JGit/New_and_Noteworthy/4.11/4.11.html129
-rw-r--r--org.eclipse.egit.doc/help/JGit/New_and_Noteworthy/5.0/5.0.html160
-rw-r--r--org.eclipse.egit.doc/help/JGit/New_and_Noteworthy/5.0/Updating-This-Document.html (renamed from org.eclipse.egit.doc/help/JGit/New_and_Noteworthy/4.11/Updating-This-Document.html)16
-rw-r--r--org.eclipse.egit.doc/help/toc.xml40
-rw-r--r--org.eclipse.egit.target/egit-4.5.target4
-rw-r--r--org.eclipse.egit.target/egit-4.5.tpd2
-rw-r--r--org.eclipse.egit.target/egit-4.6.target4
-rw-r--r--org.eclipse.egit.target/egit-4.6.tpd2
-rw-r--r--org.eclipse.egit.target/egit-4.7.target4
-rw-r--r--org.eclipse.egit.target/egit-4.7.tpd2
-rw-r--r--org.eclipse.egit.target/egit-4.8-staging.target4
-rw-r--r--org.eclipse.egit.target/egit-4.8-staging.tpd2
-rw-r--r--org.eclipse.egit.target/egit-4.8.target19
-rw-r--r--org.eclipse.egit.target/egit-4.8.tpd2
-rw-r--r--org.eclipse.egit.target/orbit/R20180606145124-Photon.tpd (renamed from org.eclipse.egit.target/orbit/R20180531190352-Photon.tpd)15
-rw-r--r--org.eclipse.egit.target/releasetrain/4.8-photon.tpd5
-rw-r--r--org.eclipse.egit.ui/plugin.properties2
-rw-r--r--org.eclipse.egit.ui/plugin.xml39
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/PluginPreferenceInitializer.java1
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/UIPreferences.java2
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/ConfigurationChecker.java41
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/UIText.java24
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/blame/BlameInformationControl.java3
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/blame/BlameRevision.java18
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/DiffEditorOutlinePage.java1
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitDocument.java5
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FileDiff.java26
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/DialogsPreferencePage.java3
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/GitPreferenceRoot.java37
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoriesViewPropertyTester.java8
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/InstallLfsLocalCommand.java71
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java13
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/uitext.properties8
52 files changed, 819 insertions, 363 deletions
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/Activator.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/Activator.java
index 14bfadb..ef117df 100644
--- a/org.eclipse.egit.core/src/org/eclipse/egit/core/Activator.java
+++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/Activator.java
@@ -11,6 +11,7 @@ package org.eclipse.egit.core;
import java.io.File;
import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
import java.net.Authenticator;
import java.net.ProxySelector;
import java.text.MessageFormat;
@@ -183,7 +184,7 @@ public class Activator extends Plugin implements DebugOptionsListener {
Config.setTypedConfigGetter(new ReportingTypedConfigGetter());
// we want to be notified about debug options changes
- Dictionary<String, String> props = new Hashtable<String, String>(4);
+ Dictionary<String, String> props = new Hashtable<>(4);
props.put(DebugOptions.LISTENER_SYMBOLICNAME, pluginId);
context.registerService(DebugOptionsListener.class.getName(), this,
props);
@@ -208,6 +209,7 @@ public class Activator extends Plugin implements DebugOptionsListener {
registerAutoIgnoreDerivedResources();
registerPreDeleteResourceChangeListener();
registerMergeStrategyRegistryListener();
+ registerBuiltinLFS();
}
@SuppressWarnings("unchecked")
@@ -271,6 +273,20 @@ public class Activator extends Plugin implements DebugOptionsListener {
}
}
+ private void registerBuiltinLFS() {
+ Class<?> lfs;
+ try {
+ lfs = Class.forName("org.eclipse.jgit.lfs.BuiltinLFS"); //$NON-NLS-1$
+ if (lfs != null) {
+ lfs.getMethod("register").invoke(null); //$NON-NLS-1$
+ }
+ } catch (ClassNotFoundException | IllegalAccessException
+ | IllegalArgumentException | InvocationTargetException
+ | NoSuchMethodException | SecurityException e1) {
+ logWarning(CoreText.Activator_noBuiltinLfsSupportDetected, e1);
+ }
+ }
+
@Override
public void optionsChanged(DebugOptions options) {
// initialize the trace stuff
@@ -502,7 +518,7 @@ public class Activator extends Plugin implements DebugOptionsListener {
public CheckProjectsToShare() {
super(CoreText.Activator_AutoShareJobName);
- this.projectCandidates = new LinkedHashSet<IProject>();
+ this.projectCandidates = new LinkedHashSet<>();
setUser(false);
setSystem(true);
}
@@ -527,7 +543,7 @@ public class Activator extends Plugin implements DebugOptionsListener {
return Status.OK_STATUS;
}
- final Map<IProject, File> projects = new HashMap<IProject, File>();
+ final Map<IProject, File> projects = new HashMap<>();
for (IProject project : projectsToCheck) {
if (monitor.isCanceled()) {
return Status.CANCEL_STATUS;
@@ -695,7 +711,7 @@ public class Activator extends Plugin implements DebugOptionsListener {
return;
}
- final Set<IPath> toBeIgnored = new LinkedHashSet<IPath>();
+ final Set<IPath> toBeIgnored = new LinkedHashSet<>();
d.accept(new IResourceDeltaVisitor() {
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/CoreText.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/CoreText.java
index 2aa648b..f9bcabd 100644
--- a/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/CoreText.java
+++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/CoreText.java
@@ -46,6 +46,9 @@ public class CoreText extends NLS {
public static String Activator_ignoreResourceFailed;
/** */
+ public static String Activator_noBuiltinLfsSupportDetected;
+
+ /** */
public static String Activator_ReconfigureWindowCacheError;
/** */
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/coretext.properties b/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/coretext.properties
index 5d2ffef..d8293b6 100644
--- a/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/coretext.properties
+++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/coretext.properties
@@ -46,6 +46,7 @@ Activator_autoIgnoreDerivedResources=Auto-ignore derived resources
Activator_AutoShareJobName=Auto share git projects
Activator_AutoSharingFailed=Auto sharing project with git failed
Activator_ignoreResourceFailed=Ignoring {0} failed
+Activator_noBuiltinLfsSupportDetected=Builtin LFS support not present/detected
Activator_ReconfigureWindowCacheError=Exception when reconfiguring window cache from configuration, default configuration will be used
AssumeUnchangedOperation_adding=Marking resources unchanged
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/op/AssumeUnchangedOperation.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/op/AssumeUnchangedOperation.java
index a71ee53..5b4e7aa 100644
--- a/org.eclipse.egit.core/src/org/eclipse/egit/core/op/AssumeUnchangedOperation.java
+++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/op/AssumeUnchangedOperation.java
@@ -65,7 +65,7 @@ public class AssumeUnchangedOperation implements IEGitOperation {
final Collection<? extends IResource> rsrcs, boolean assumeUnchanged) {
rsrcList = rsrcs;
locations = Collections.emptyList();
- caches = new IdentityHashMap<Repository, DirCache>();
+ caches = new IdentityHashMap<>();
this.assumeUnchanged = assumeUnchanged;
}
@@ -88,7 +88,7 @@ public class AssumeUnchangedOperation implements IEGitOperation {
this.db = repository;
this.locations = locations;
this.rsrcList = Collections.emptyList();
- caches = new IdentityHashMap<Repository, DirCache>();
+ caches = new IdentityHashMap<>();
this.assumeUnchanged = assumeUnchanged;
}
@@ -167,9 +167,15 @@ public class AssumeUnchangedOperation implements IEGitOperation {
IPath dbDir = new Path(db.getWorkTree().getAbsolutePath());
final String path = location.makeRelativeTo(dbDir).toString();
- final DirCacheEntry ent = cache.getEntry(path);
- if (ent != null) {
- ent.setAssumeValid(assumeUnchanged);
+ if (location.toFile().isDirectory()) {
+ for (DirCacheEntry ent : cache.getEntriesWithin(path)) {
+ ent.setAssumeValid(assumeUnchanged);
+ }
+ } else {
+ DirCacheEntry ent = cache.getEntry(path);
+ if (ent != null) {
+ ent.setAssumeValid(assumeUnchanged);
+ }
}
}
}
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 3794a4c..9787c77 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
@@ -34,6 +34,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.SubMonitor;
import org.eclipse.core.runtime.jobs.ISchedulingRule;
import org.eclipse.egit.core.Activator;
+import org.eclipse.egit.core.EclipseGitProgressTransformer;
import org.eclipse.egit.core.internal.CoreText;
import org.eclipse.egit.core.internal.job.RuleUtil;
import org.eclipse.egit.core.internal.util.ProjectUtil;
@@ -110,7 +111,9 @@ public class BranchOperation extends BaseOperation {
closeProjectsMissingAfterCheckout(progress);
try (Git git = new Git(repository)) {
- CheckoutCommand co = git.checkout();
+ CheckoutCommand co = git.checkout().setProgressMonitor(
+ new EclipseGitProgressTransformer(
+ progress.newChild(1)));
co.setName(target);
try {
@@ -129,7 +132,6 @@ public class BranchOperation extends BaseOperation {
if (result.getStatus() == Status.NONDELETED) {
retryDelete(result.getUndeletedList());
}
- progress.worked(1);
refreshAffectedProjects(progress);
postExecute(progress.newChild(1));
@@ -159,7 +161,7 @@ public class BranchOperation extends BaseOperation {
private void refreshAffectedProjects(SubMonitor progress)
throws CoreException {
- List<String> pathsToHandle = new ArrayList<String>();
+ List<String> pathsToHandle = new ArrayList<>();
pathsToHandle.addAll(result.getModifiedList());
pathsToHandle.addAll(result.getRemovedList());
pathsToHandle.addAll(result.getConflictList());
@@ -231,7 +233,7 @@ public class BranchOperation extends BaseOperation {
if (targetTreeId == null || currentTreeId == null)
return new IProject[0];
- Map<File, IProject> locations = new HashMap<File, IProject>();
+ Map<File, IProject> locations = new HashMap<>();
for (IProject project : currentProjects) {
IPath location = project.getLocation();
if (location == null)
@@ -241,7 +243,7 @@ public class BranchOperation extends BaseOperation {
locations.put(location.toFile(), project);
}
- List<IProject> toBeClosed = new ArrayList<IProject>();
+ List<IProject> toBeClosed = new ArrayList<>();
File root = repository.getWorkTree();
try (TreeWalk walk = new TreeWalk(repository)) {
walk.addTree(targetTreeId);
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/op/ConfigureGerritAfterCloneTask.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/op/ConfigureGerritAfterCloneTask.java
index 61a8f6e..5c106cd 100644
--- a/org.eclipse.egit.core/src/org/eclipse/egit/core/op/ConfigureGerritAfterCloneTask.java
+++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/op/ConfigureGerritAfterCloneTask.java
@@ -26,6 +26,7 @@ import org.eclipse.egit.core.Activator;
import org.eclipse.egit.core.NetUtil;
import org.eclipse.egit.core.internal.gerrit.GerritUtil;
import org.eclipse.egit.core.op.CloneOperation.PostCloneTask;
+import org.eclipse.jgit.errors.CommandFailedException;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.StoredConfig;
@@ -218,9 +219,12 @@ public class ConfigureGerritAfterCloneTask implements PostCloneTask {
String result = SshSupport.runSshCommand(sshUri,
credentialsProvider, repo.getFS(),
GERRIT_SSHD_VERSION_API, timeout);
+ if (result != null && result.contains("\n")) { //$NON-NLS-1$
+ result = result.substring(0, result.indexOf('\n'));
+ }
return result != null
&& GERRIT_SSHD_REPLY.matcher(result).matches();
- } catch (IOException e) {
+ } catch (IOException | CommandFailedException e) {
// Something went wrong with the connection or with the command
// execution. Maybe the server didn't recognize the command. Do
// the safe thing and claim it wasn't a Gerrit. In the worst
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/op/DiscardChangesOperation.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/op/DiscardChangesOperation.java
index 2755977..c18ed0f 100644
--- a/org.eclipse.egit.core/src/org/eclipse/egit/core/op/DiscardChangesOperation.java
+++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/op/DiscardChangesOperation.java
@@ -31,6 +31,7 @@ import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.SubMonitor;
import org.eclipse.core.runtime.jobs.ISchedulingRule;
import org.eclipse.egit.core.Activator;
+import org.eclipse.egit.core.EclipseGitProgressTransformer;
import org.eclipse.egit.core.internal.CoreText;
import org.eclipse.egit.core.internal.job.RuleUtil;
import org.eclipse.egit.core.internal.util.ProjectUtil;
@@ -161,13 +162,12 @@ public class DiscardChangesOperation implements IEGitOperation {
Collection<String> paths = entry.getValue();
try {
- discardChanges(repository, paths);
+ discardChanges(repository, paths, progress.newChild(1));
} catch (GitAPIException e) {
errorOccurred = true;
Activator.logError(
CoreText.DiscardChangesOperation_discardFailed, e);
}
- progress.worked(1);
try {
ProjectUtil.refreshRepositoryResources(repository, paths,
@@ -186,11 +186,14 @@ public class DiscardChangesOperation implements IEGitOperation {
}
}
- private void discardChanges(Repository repository, Collection<String> paths)
+ private void discardChanges(Repository repository, Collection<String> paths,
+ IProgressMonitor progress)
throws GitAPIException {
ResourceUtil.saveLocalHistory(repository);
try (Git git = new Git(repository)) {
- CheckoutCommand checkoutCommand = git.checkout();
+ CheckoutCommand checkoutCommand = git.checkout().setProgressMonitor(
+ new EclipseGitProgressTransformer(progress));
+
if (revision != null) {
checkoutCommand.setStartPoint(revision);
}
diff --git a/org.eclipse.egit.doc/build-help.xml b/org.eclipse.egit.doc/build-help.xml
index 40137d5..282f380 100644
--- a/org.eclipse.egit.doc/build-help.xml
+++ b/org.eclipse.egit.doc/build-help.xml
@@ -44,8 +44,8 @@
>
<path name="EGit/User_Guide" title="EGit User Guide" />
<path name="JGit/User_Guide" title="JGit User Guide" />
- <path name="EGit/New_and_Noteworthy/4.11" title="EGit 4.11 New and Noteworthy" />
- <path name="JGit/New_and_Noteworthy/4.11" title="JGit 4.11 New and Noteworthy" />
+ <path name="EGit/New_and_Noteworthy/5.0" title="EGit 5.0 New and Noteworthy" />
+ <path name="JGit/New_and_Noteworthy/5.0" title="JGit 5.0 New and Noteworthy" />
<path name="EGit/Git_For_Eclipse_Users" title="Git for Eclipse Users" />
<path name="EGit/Contributor_Guide" title="EGit Contributor Guide" />
<stylesheet url="book.css" />
diff --git a/org.eclipse.egit.doc/help/EGit/Contributor_Guide/Bugs.html b/org.eclipse.egit.doc/help/EGit/Contributor_Guide/Bugs.html
index 3224d12..6654f43 100644
--- a/org.eclipse.egit.doc/help/EGit/Contributor_Guide/Bugs.html
+++ b/org.eclipse.egit.doc/help/EGit/Contributor_Guide/Bugs.html
@@ -60,6 +60,18 @@
<a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=JGit&amp;rep_platform=All&amp;op_sys=All" target="egit_external">File a bug for JGit</a>
</li>
</ul>
+ <h4 id="File_a_bug_for_a_vulnerability">File a bug for a vulnerability</h4>
+ <p>If you discovered a vulnerability you want to report </p>
+ <ul>
+ <li>create a bug in Bugzilla here
+ <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=JGit" target="egit_external">https://bugs.eclipse.org/bugs/enter_bug.cgi?product=JGit</a>
+ </li>
+ <li>click "Show Advanced Fields" </li>
+ <li>and check the option "Committer-only group for handling security advisories in a closed fashion."</li>
+ <li>describe the vulnerability</li>
+ </ul>
+ <p>this will ensure that the discussion on the vulnerability is kept private between the reporter and the committer group
+ until the project prepared a release fixing the vulnerability</p>
<h3 id="Bug_Reports_and_Links">Bug Reports and Links</h3>
<table border="1" cellpadding="3" cellspacing="0">
<tr>
diff --git a/org.eclipse.egit.doc/help/EGit/Contributor_Guide/Builds.html b/org.eclipse.egit.doc/help/EGit/Contributor_Guide/Builds.html
index 59052f3..c5f9a14 100644
--- a/org.eclipse.egit.doc/help/EGit/Contributor_Guide/Builds.html
+++ b/org.eclipse.egit.doc/help/EGit/Contributor_Guide/Builds.html
@@ -56,8 +56,8 @@
</ul>
<h2 id="JGit_2">JGit</h2>
<ul>
- <li>JGit can be built using Maven.</li>
- <li>use Java 8 to run the JGit Maven build</li>
+ <li>JGit can be built using Maven or Bazel</li>
+ <li>use Java 8 to run the JGit build</li>
<li>JGit packaging projects (Eclipse features and p2 repository) are built using Maven and Tycho.</li>
</ul>
<h2 id="EGit_2">EGit</h2>
diff --git a/org.eclipse.egit.doc/help/EGit/Contributor_Guide/Contributing-Patches.html b/org.eclipse.egit.doc/help/EGit/Contributor_Guide/Contributing-Patches.html
index 76259ee..353df56 100644
--- a/org.eclipse.egit.doc/help/EGit/Contributor_Guide/Contributing-Patches.html
+++ b/org.eclipse.egit.doc/help/EGit/Contributor_Guide/Contributing-Patches.html
@@ -59,7 +59,7 @@
</ul>
<p>In addition ensure</p>
<ul>
- <li>that the contributed code is licensed under the project license (EPL for EGit and EDL for JGit). This is done by putting a
+ <li>that the contributed code is licensed under the project license (EPL 2.0 for EGit and EDL 1.0 for JGit). This is done by putting a
<a href="http://www.eclipse.org/legal/copyrightandlicensenotice.php" target="egit_external">copyright and license header</a> into every new java file. See other existing project source files for the correct content.
</li>
</ul>
@@ -298,6 +298,26 @@ git config remote.review.push HEAD:refs/for/master
<p>Another workaround is to use
<a href="http://stackoverflow.com/questions/10413922/convert-spaces-to-tabs-in-lines-i-changed-in-a-commit?answertab=active#tab-top" target="egit_external">this little script</a> from the command line to edit away trailing whitespace from changed lines.
</p>
+ <h3 id="Use_of_the_.22final.22_modifier">Use of the "final" modifier</h3>
+ <p>New code uses the "final" modifier in the following circumstances
+ <a href="https://gerrit-review.googlesource.com/c/gerrit/+/61701/" target="egit_external">https://gerrit-review.googlesource.com/c/gerrit/+/61701/</a>.
+ </p>
+ <p>Always:</p>
+ <ul>
+ <li>final fields: marking fields as final forces them to be initialized in the constructor or at declaration</li>
+ <li>final static fields: clearly communicates the intent</li>
+ <li>where necessary to use final variables in inner anonymous classes</li>
+ </ul>
+ <p>Optional:</p>
+ <ul>
+ <li>final classes: use when appropriate, e.g. API restriction</li>
+ <li>final methods: similar to final classes</li>
+ </ul>
+ <p>Never:</p>
+ <ul>
+ <li>local variables: it clutters the code, and makes the code less readable. When copying old code to new location, finals should be removed</li>
+ <li>method parameters: similar to local variables</li>
+ </ul>
<h2 id="Commit_message_guidelines">Commit message guidelines</h2>
<ul>
<li>The commit message header should fit on one line and should start with an uppercase letter. A blank line separates it from the body of the message.</li>
@@ -368,6 +388,7 @@ Copyright (C) YEAR Your Name &lt;you@example.org&gt;
<a href="#Manual_alpha_testing">Manual alpha testing</a> section for some advice about how to test you work yourself.
</p>
<ul>
+ <li>Add automated tests for enhancements and bug fixes to ensure functional correctness and avoid regressions</li>
<li>Run all existing tests. It does not take very long.</li>
<li>Pay attention to the Java and Eclipse SDK baselines. EGit requires only Java 8 and Eclipse 4.4. You cannot use API's that are newer.</li>
</ul>
diff --git a/org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/4.11/4.11.html b/org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/4.11/4.11.html
deleted file mode 100644
index 32f21dc..0000000
--- a/org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/4.11/4.11.html
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <title>EGit 4.11 New and Noteworthy</title>
- <link type="text/css" rel="stylesheet" href="../../../book.css"/>
- </head>
- <body>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <th style="width: 100%" align="center" colspan="3">EGit 4.11 New and Noteworthy</th>
- </tr>
- <tr>
- <td style="width: 20%" align="left"></td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right">
- <a href="Contributors.html" title="Contributors">
- <img alt="Next" border="0" src="../../../images/next.gif"/>
- </a>
- </td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top"></td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top">Contributors</td>
- </tr>
- </table><hr class="navigation-separator"/>
- <h1 id="EGit">EGit</h1>
- <h2 id="Usability">Usability</h2>
- <ul>
- <li>
- <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=531328" target="egit_external">bug 531328</a>: Delete Repository dialog: use "Delete" instead of "OK" for button
- </li>
- <li>
- <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=531431" target="egit_external">bug 531431</a>: Use "Close" instead of "Ok" on the confirmation button of FetchResultDialog
- </li>
- <li>
- <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=531264" target="egit_external">bug 531264</a>: Discard Local Changes should use verbs if triggered from Staging View
- </li>
- <li>
- <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=530685" target="egit_external">bug 530685</a>: Include local branch name in branch proposals of push branch wizard
- </li>
- <li>
- <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=530685" target="egit_external">bug 530685</a>: Asynchronous content proposals for upstream refs in PushBranchPage
- </li>
- <li>Make the PushWizardDialog a NonBlockingWizardDialog</li>
- <li>
- <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=530757" target="egit_external">bug 530757</a>: Remove extra progress popup in PushBranchWizard
- </li>
- <li>
- <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=510945" target="egit_external">bug 510945</a>: Provide option to copy file names in staging view to clipboard
- </li>
- <li>
- <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=530625" target="egit_external">bug 530625</a>: Select "ssh" protocol also for git-style URLs without scheme
- </li>
- <li>Avoid internal job being displayed in progress view</li>
- </ul>
- <h2 id="Performance_Improvements">Performance Improvements</h2>
- <ul>
- <li>
- <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=531948" target="egit_external">bug 531948</a>: Speed up getting the last commit that changed a file
- </li>
- </ul>
- <h2 id="Bug_Fixes">Bug Fixes</h2>
- <p>
- <a href="https://bugs.eclipse.org/bugs/buglist.cgi?resolution=FIXED&amp;resolution=DUPLICATE&amp;classification=Technology&amp;list_id=10006180&amp;order=Importance&amp;product=EGit&amp;query_format=advanced&amp;target_milestone=4.11" target="egit_external"> 15 Bugs and 2 enhancement requests</a> were closed
- </p>
- <ul>
- <li>Fix CSS for dark theme [
- <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=531527" target="egit_external">https://bugs.eclipse.org/bugs/show_bug.cgi?id=531527</a>)
- </li>
- <li>{{bug bug 531527)</li>
- <li>{{bug]: Prevent NPE in RefContentProposal.appendObjectSummary </li>
- <li>Prevent MissingObjectException being logged in ref content proposal</li>
- <li>
- <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=503198" target="egit_external">bug 503198</a>: Fix focus handling in GitHistoryPage
- </li>
- <li>
- <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=530412" target="egit_external">bug 530412</a>: Fix wrongly used IExtension.getNamespaceIdentifier
- </li>
- <li>
- <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=521176" target="egit_external">bug 521176</a>: Fix non-modal PushResultDialog
- </li>
- <li>
- <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=529950" target="egit_external">bug 529950</a>: More appealing layout on git project property page
- </li>
- </ul>
- <h2 id="Build_and_Release_Engineering">Build and Release Engineering</h2>
- <ul>
- <li>Update orbit to S20180302171354 (photon) and R20180206163158 (oxygen)</li>
- <li>Update tycho to 1.1.0</li>
- <li>Upgrade gson to version 2.8.2 (used by JGit)</li>
- <li>Upgrade commons-compress to 1.15 (used by JGit)</li>
- <li>Add com.jcraft.jzlib 1.1.1 (CQ 15293, bug 529129)</li>
- <li>Update API baselines in Oomph setup</li>
- </ul><hr class="navigation-separator"/>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <td style="width: 20%" align="left"></td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right">
- <a href="Contributors.html" title="Contributors">
- <img alt="Next" border="0" src="../../../images/next.gif"/>
- </a>
- </td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top"></td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top">Contributors</td>
- </tr>
- </table>
- </body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/5.0/5.0.html b/org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/5.0/5.0.html
new file mode 100644
index 0000000..8b2bc27
--- /dev/null
+++ b/org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/5.0/5.0.html
@@ -0,0 +1,184 @@
+<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <title>EGit 5.0 New and Noteworthy</title>
+ <link type="text/css" rel="stylesheet" href="../../../book.css"/>
+ </head>
+ <body>
+ <table class="navigation" style="width: 100%;" border="0" summary="navigation">
+ <tr>
+ <th style="width: 100%" align="center" colspan="3">EGit 5.0 New and Noteworthy</th>
+ </tr>
+ <tr>
+ <td style="width: 20%" align="left"></td>
+ <td style="width: 60%" align="center"></td>
+ <td style="width: 20%" align="right">
+ <a href="Contributors.html" title="Contributors">
+ <img alt="Next" border="0" src="../../../images/next.gif"/>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 20%" align="left" valign="top"></td>
+ <td style="width: 60%" align="center"></td>
+ <td style="width: 20%" align="right" valign="top">Contributors</td>
+ </tr>
+ </table><hr class="navigation-separator"/>
+ <h1 id="EGit">EGit</h1>
+ <h2 id="Features">Features</h2>
+ <ul>
+ <li>Built-in EGit integration for LFS
+ <ul>
+ <li>Register builtin LFS on startup. When EGit starts and the lfs bundle (org.eclipse.jgit.lfs) is available register the LFS implementation and check configuration.</li>
+ <li>Allow install (enablement) of LFS support in Preferences (global) and on the repository (local).</li>
+ <li>Apply smudge/clean filters where applicable and required.</li>
+ <li>LFS integration using built-in JGit lfs filters fully works when using Gerrit with lfs plugin using ssh protocol.</li>
+ <li>Authentication when transporting lfs objects over http still missing, this is tracked in JGit
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=535814" target="egit_external">bug 535814</a>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=534604" target="egit_external">bug 534604</a> Enable resource selection for launch variables
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=533344" target="egit_external">bug 533344</a> Allow cherry-picking a Gerrit change
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=531953" target="egit_external">bug 531953</a> Allow cherry-picking merge commits
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=529255" target="egit_external">bug 529255</a> Github API: Support diff/patch generation via the Github API
+ </li>
+ </ul>
+ <h2 id="Usability">Usability</h2>
+ <ul>
+ <li>Add tracing of low-level JSch log messages</li>
+ <li>Natural sort for refs in FetchResultTable</li>
+ <li>Allow shortcuts for Gitflow commands</li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=534404" target="egit_external">bug 534404</a> Suggest complete repository path in NewRepositoryWizard
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=529449" target="egit_external">bug 529449</a> Natural sort for tags in CreateTagDialog
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=478159" target="egit_external">bug 478159</a> Show affected projects when deleting repository
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=510132" target="egit_external">bug 510132</a> Add support for the "*" as wildcard character in the staging view filter
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=511628" target="egit_external">bug 511628</a> Select repositories via double-click in RepositorySearchDialog
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=533019" target="egit_external">bug 533019</a> Update staging view on repository config changes
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=532458" target="egit_external">bug 532458</a> Remove some margins in staging view
+ </li>
+ </ul>
+ <h2 id="Performance_Improvements">Performance Improvements</h2>
+ <ul>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=535516" target="egit_external">bug 535516</a> Use hash lookup for TreeViewers
+ </li>
+ <li>Ignore IndexChangedEvent if it originates from the same JGit process</li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=500106" target="egit_external">bug 500106</a> Improve asynchronous Eclipse workspace refreshes done by EGit
+ </li>
+ <li>Speed up the RepositoriesViewContentProvider</li>
+ <li>Use PathFilterGroup instead of PathFilter if possible. TreeWalks looking for a single path can use PathFilterGroup instead of PathFilter. This should be a little bit faster.</li>
+ <li>In EGit use mmap to map git packfiles into memory. Avoids allocating JGit buffer cache on the Java heap.</li>
+ </ul>
+ <h2 id="Bug_Fixes">Bug Fixes</h2>
+ <p>
+ <a href="https://bugs.eclipse.org/bugs/buglist.cgi?resolution=FIXED&amp;resolution=DUPLICATE&amp;classification=Technology&amp;list_id=10006180&amp;order=Importance&amp;product=EGit&amp;query_format=advanced&amp;target_milestone=5.0" target="egit_external">21 Bugs and 8 enhancement requests</a> were closed
+ </p>
+ <ul>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=529141" target="egit_external">bug 529141</a> Fix AssumeUnchangedOperation not working on directory/project
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=525769" target="egit_external">bug 525769</a> Don't try to store incomplete credentials in secure store
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=470452" target="egit_external">bug 470452</a> Improve check for uncommitted changes before cherry-pick
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=520693" target="egit_external">bug 520693</a> Respect gitattributes in the compare editor
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=533230" target="egit_external">bug 533230</a> Fix Repositories view blocking Eclipse on startup
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=533198" target="egit_external">bug 533198</a> improve branch name validation performance which was bad for big repositories
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=533477" target="egit_external">bug 533477</a> Fix substring matches in filter in branch selection dialogs
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=358206" target="egit_external">bug 358206</a> Handle Gerrit Change-Ids for merge commits
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=533336" target="egit_external">bug 533336</a> Keep Gerrit Change-Id for conflicting cherry-pick
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=531171" target="egit_external">bug 531171</a> Remove problem characters from task related branch name suggestion
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=533019" target="egit_external">bug 533019</a> Fix invalid thread access in staging view when config changes
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=525769" target="egit_external">bug 525769</a> Don't try to store incomplete credentials in secure store
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=534440" target="egit_external">bug 534440</a> Github API: Fix Repository.getWatchers(); add Repository.getStars()
+ </li>
+ </ul>
+ <h2 id="Removal_of.C2.A0deprecated_methods">Removal of deprecated methods</h2>
+ <ul>
+ <li>Remove deprecated UIUtils#applyHyperlinkDetectorStyleRanges and #getHyperlinkDetectorStyleRanges.</li>
+ <li>Remove deprecated InitOperation constructor. Use InitOperation#InitOperation(Repository, InitParameters) instead.</li>
+ <li>Remove deprecated GitFlowOperation#fetch(IProgressMonitor). Use GitFlowOperation#fetch(IProgressMonitor, int) instead.</li>
+ <li>Remove deprecated FeatureTrackOperation constructor. Use FeatureTrackOperation#FeatureTrackOperation(GitFlowRepository, Ref, int) instead.</li>
+ <li>Remove deprecated GitSynchronizeData#getSrcRemoteName</li>
+ <li>Remove deprecated GitSynchronizeData#getSrcMerge</li>
+ <li>Remove deprecated RepositoryMapping#getSubmoduleRepository. Use #getMapping(IResource) and then #getRepository()} on the returned mapping instead; it will return a submodule repository if the resource is in one.</li>
+ <li>Remove deprecated RemoveFromIndexOperation(Repository, IResource[]). Use #RemoveFromIndexOperation(Collection) instead.</li>
+ <li>Remove deprecated IgnoreOperation#IgnoreOperation(IResource[]). Use #IgnoreOperation(Collection) instead.</li>
+ <li>Github API: Remove deprecated WatcherService. Use StargazerService instead.</li>
+ <li>Github API: Remove deprecated User#getGravatarId and #setGravatarId</li>
+ <li>Github API: Remove deprecated Repository#getMasterBranch and #setMasterBranch</li>
+ <li>Github API: Remove deprecated Gist#setUser and #getUser methods</li>
+ </ul>
+ <h2 id="Build_and_Release_Engineering">Build and Release Engineering</h2>
+ <ul>
+ <li>Update to latest Photon Orbit R20180606145124</li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=530393" target="egit_external">bug 530393</a> Update EGit license to EPL-2.0
+ </li>
+ <li>Update target platform to use Orbit R20180531190352</li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=532272" target="egit_external">bug 532272</a> Update API baseline in Oomph setup
+ </li>
+ </ul><hr class="navigation-separator"/>
+ <table class="navigation" style="width: 100%;" border="0" summary="navigation">
+ <tr>
+ <td style="width: 20%" align="left"></td>
+ <td style="width: 60%" align="center"></td>
+ <td style="width: 20%" align="right">
+ <a href="Contributors.html" title="Contributors">
+ <img alt="Next" border="0" src="../../../images/next.gif"/>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 20%" align="left" valign="top"></td>
+ <td style="width: 60%" align="center"></td>
+ <td style="width: 20%" align="right" valign="top">Contributors</td>
+ </tr>
+ </table>
+ </body>
+</html> \ No newline at end of file
diff --git a/org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/4.11/Contributors.html b/org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/5.0/Contributors.html
index 6bef7ea..699d46a 100644
--- a/org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/4.11/Contributors.html
+++ b/org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/5.0/Contributors.html
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <title>EGit 4.11 New and Noteworthy - Contributors</title>
+ <title>EGit 5.0 New and Noteworthy - Contributors</title>
<link type="text/css" rel="stylesheet" href="../../../book.css"/>
</head>
<body>
@@ -12,7 +12,7 @@
</tr>
<tr>
<td style="width: 20%" align="left">
- <a href="4.11.html" title="EGit 4.11 New and Noteworthy">
+ <a href="5.0.html" title="EGit 5.0 New and Noteworthy">
<img alt="Previous" border="0" src="../../../images/prev.gif"/>
</a>
</td>
@@ -24,30 +24,28 @@
</td>
</tr>
<tr>
- <td style="width: 20%" align="left" valign="top">EGit 4.11 New and Noteworthy</td>
+ <td style="width: 20%" align="left" valign="top">EGit 5.0 New and Noteworthy</td>
<td style="width: 60%" align="center"></td>
<td style="width: 20%" align="right" valign="top">Updating This Document</td>
</tr>
</table><hr class="navigation-separator"/>
<h1 id="Contributors">Contributors</h1>
- <p>The following 7 developers worked on this release:</p>
- <p>Andrey Loskutov,
- Fabian Pfaff,
- Jonas Hungershausen,
- Lars Vogel,
+ <p>The following 5 developers worked on this release:</p>
+ <p>Christian Barcenas,
+ Markus Duft,
Matthias Sohn,
Michael Keppler,
Thomas Wolf</p><hr class="navigation-separator"/>
<table class="navigation" style="width: 100%;" border="0" summary="navigation">
<tr>
<td style="width: 20%" align="left">
- <a href="4.11.html" title="EGit 4.11 New and Noteworthy">
+ <a href="5.0.html" title="EGit 5.0 New and Noteworthy">
<img alt="Previous" border="0" src="../../../images/prev.gif"/>
</a>
</td>
<td style="width: 60%" align="center">
- <a href="4.11.html" title="EGit 4.11 New and Noteworthy">
- <img alt="EGit 4.11 New and Noteworthy" border="0" src="../../../images/home.gif"/>
+ <a href="5.0.html" title="EGit 5.0 New and Noteworthy">
+ <img alt="EGit 5.0 New and Noteworthy" border="0" src="../../../images/home.gif"/>
</a>
</td>
<td style="width: 20%" align="right">
@@ -57,7 +55,7 @@
</td>
</tr>
<tr>
- <td style="width: 20%" align="left" valign="top">EGit 4.11 New and Noteworthy</td>
+ <td style="width: 20%" align="left" valign="top">EGit 5.0 New and Noteworthy</td>
<td style="width: 60%" align="center"></td>
<td style="width: 20%" align="right" valign="top">Updating This Document</td>
</tr>
diff --git a/org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/4.11/Updating-This-Document.html b/org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/5.0/Updating-This-Document.html
index e904259..b5d2cea 100644
--- a/org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/4.11/Updating-This-Document.html
+++ b/org.eclipse.egit.doc/help/EGit/New_and_Noteworthy/5.0/Updating-This-Document.html
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <title>EGit 4.11 New and Noteworthy - Updating This Document</title>
+ <title>EGit 5.0 New and Noteworthy - Updating This Document</title>
<link type="text/css" rel="stylesheet" href="../../../book.css"/>
</head>
<body>
@@ -29,7 +29,7 @@
<p> This document is maintained in a collaborative wiki. If you wish to
update or modify this document please visit
- <a href="http://wiki.eclipse.org/EGit/New_and_Noteworthy/4.11" target="egit_external">http://wiki.eclipse.org/EGit/New_and_Noteworthy/4.11</a>
+ <a href="http://wiki.eclipse.org/EGit/New_and_Noteworthy/5.0" target="egit_external">http://wiki.eclipse.org/EGit/New_and_Noteworthy/5.0</a>
</p><hr class="navigation-separator"/>
<table class="navigation" style="width: 100%;" border="0" summary="navigation">
<tr>
@@ -39,8 +39,8 @@
</a>
</td>
<td style="width: 60%" align="center">
- <a href="4.11.html" title="EGit 4.11 New and Noteworthy">
- <img alt="EGit 4.11 New and Noteworthy" border="0" src="../../../images/home.gif"/>
+ <a href="5.0.html" title="EGit 5.0 New and Noteworthy">
+ <img alt="EGit 5.0 New and Noteworthy" border="0" src="../../../images/home.gif"/>
</a>
</td>
<td style="width: 20%" align="right"></td>
diff --git a/org.eclipse.egit.doc/help/EGit/User_Guide/Tasks.html b/org.eclipse.egit.doc/help/EGit/User_Guide/Tasks.html
index 8bfbbdd..c49bfc1 100644
--- a/org.eclipse.egit.doc/help/EGit/User_Guide/Tasks.html
+++ b/org.eclipse.egit.doc/help/EGit/User_Guide/Tasks.html
@@ -2697,7 +2697,31 @@ Sein oder nicht sein
<li>Path to the project to import (folder which contains <tt>.project</tt>), relative to the repository</li>
</ol>
<p>Each project has one entry. So for multiple projects in the same repository, create such an entry for each project with the same repository URL. The import is smart enough to only clone each repository once.</p>
- <p>If the repository contains a project at the root, use <tt>.</tt> as the project path.</p><hr class="navigation-separator"/>
+ <p>If the repository contains a project at the root, use <tt>.</tt> as the project path.</p>
+ <h2 id="GIT_LFS_Support">GIT LFS Support</h2>
+ <p>Partial support for GIT LFS is included in EGit when the optional JGit LFS support bundle "Java implementation of Git - optional LFS support" is installed. This support works best when using the SSH protocol with a capable LFS remote (i.e. GitHub or Gerrit with LFS plugin).</p>
+ <p>To enable usage of EGit's LFS support, either enable it globally (for the current user) by pressing the "Enable LFS support globally" button:</p>
+ <p>
+ <img border="0" src="images/EGit-5.0_LFS_enable_globally.png"/>
+ </p>
+ <p>... or configure Eclipse to automatically make sure the LFS support is enabled whenever Eclipse starts up. Check the "Automatically configure LFS..." checkbox:</p>
+ <p>
+ <img border="0" src="images/EGit-5.0_LFS_enable_automatically.png"/>
+ </p>
+ <p>... or - to enable builtin LFS support only for a single repository - right click a repository and select "Enable LFS locally"</p>
+ <p>
+ <img border="0" src="images/EGit-5.0_LFS_enable_locally.png"/>
+ </p>
+ <p>Note that if the JGit LFS support has not been installed some actions are disabled. If LFS support is already enabled in a more global scope the "Enable LFS locally" action is not displayed.</p>
+ <p>Once LFS support is enable directly or indirectly for a repository, you can work as usual with files, more specifically these use cases should work:</p>
+ <ol>
+ <li>Fetching LFS objects from a LFS Server (note that HTTP authentication is not implemented yet, so SSH works best, as this provides a mechanism to authenticate).</li>
+ <li>Pushing LFS objects to an LFS Server (same note about HTTP authentication applies).</li>
+ <li>Staging and committing files which are managed by LFS (through .gitattributes).</li>
+ <li>Checking out files managed by LFS</li>
+ <li>Viewing LFS managed file's content from the GIT history</li>
+ <li>Comparing actual file content for LFS managed files from the history</li>
+ </ol><hr class="navigation-separator"/>
<table class="navigation" style="width: 100%;" border="0" summary="navigation">
<tr>
<td style="width: 20%" align="left">
diff --git a/org.eclipse.egit.doc/help/EGit/User_Guide/images/EGit-5.0_LFS_enable_automatically.png b/org.eclipse.egit.doc/help/EGit/User_Guide/images/EGit-5.0_LFS_enable_automatically.png
new file mode 100644
index 0000000..c3d8cba
--- /dev/null
+++ b/org.eclipse.egit.doc/help/EGit/User_Guide/images/EGit-5.0_LFS_enable_automatically.png
Binary files differ
diff --git a/org.eclipse.egit.doc/help/EGit/User_Guide/images/EGit-5.0_LFS_enable_globally.png b/org.eclipse.egit.doc/help/EGit/User_Guide/images/EGit-5.0_LFS_enable_globally.png
new file mode 100644
index 0000000..02c6c84
--- /dev/null
+++ b/org.eclipse.egit.doc/help/EGit/User_Guide/images/EGit-5.0_LFS_enable_globally.png
Binary files differ
diff --git a/org.eclipse.egit.doc/help/EGit/User_Guide/images/EGit-5.0_LFS_enable_locally.png b/org.eclipse.egit.doc/help/EGit/User_Guide/images/EGit-5.0_LFS_enable_locally.png
new file mode 100644
index 0000000..cb5efd6
--- /dev/null
+++ b/org.eclipse.egit.doc/help/EGit/User_Guide/images/EGit-5.0_LFS_enable_locally.png
Binary files differ
diff --git a/org.eclipse.egit.doc/help/JGit/New_and_Noteworthy/4.11/4.11.html b/org.eclipse.egit.doc/help/JGit/New_and_Noteworthy/4.11/4.11.html
deleted file mode 100644
index 2efe2fa..0000000
--- a/org.eclipse.egit.doc/help/JGit/New_and_Noteworthy/4.11/4.11.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <title>JGit 4.11 New and Noteworthy</title>
- <link type="text/css" rel="stylesheet" href="../../../book.css"/>
- </head>
- <body>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <th style="width: 100%" align="center" colspan="3">JGit 4.11 New and Noteworthy</th>
- </tr>
- <tr>
- <td style="width: 20%" align="left"></td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right">
- <a href="Updating-This-Document.html" title="Updating This Document">
- <img alt="Next" border="0" src="../../../images/next.gif"/>
- </a>
- </td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top"></td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top">Updating This Document</td>
- </tr>
- </table><hr class="navigation-separator"/>
- <h1 id="JGit">JGit</h1>
- <h2 id="Features">Features</h2>
- <ul>
- <li>LFS: Enable LFS support for the CLI, better error handling</li>
- <li>LFS: support merge/rebase/cherry-pick/diff/compare with LFS files</li>
- <li>LFS: Dramatically improve checkout speed with SSH authentication</li>
- <li>LFS: pre-push upload support</li>
- <li>LFS: Add remote download to SmudgeFilter</li>
- <li>Add ObjectIdSerializer</li>
- <li>dfs: Try to avoid searching UNREACHABLE_GARBAGE during packing</li>
- <li>RepoCommand: generate relative submodule URLs from absolute URLs.</li>
- <li>RepoCommand: don't record new commit if tree did not change</li>
- <li>RepoCommand: persist unreadable submodules in .gitmodules</li>
- <li>Add negotiation statistics to PackStatistics</li>
- <li>Basic submodule merge handling (bug 494551)</li>
- <li>Add class to access WindowCache statistics</li>
- <li>Progress reporting for checkout</li>
- </ul>
- <h2 id="Performance_Improvements">Performance Improvements</h2>
- <ul>
- <li>Add a minimum negotiation feature for fetch. Limits how many "have" lines the client sends. This feature is gated behind a "fetch.useminimalnegotiation" configuration flag, which defaults to false.</li>
- <li>GC: Replace Files methods with File alternatives</li>
- </ul>
- <h2 id="Fixes">Fixes</h2>
- <p>
- <a href="https://bugs.eclipse.org/bugs/buglist.cgi?classification=Technology&amp;list_id=10006180&amp;order=Importance&amp;product=JGit&amp;query_format=advanced&amp;resolution=FIXED&amp;resolution=DUPLICATE&amp;target_milestone=4.11" target="egit_external"> 1 enhancement requests and 7 bugs</a> were closed
- </p>
- <ul>
- <li>Fix DiffFormatter for diffs against working tree with autocrlf=true (bug 530106)</li>
- <li>Fix processing of gitignore negations (bug 409664)</li>
- <li>PathMatcher: fix handling of **/</li>
- <li>Don't subclass ThreadLocal to avoid memory leak in NLS (bug 449321)</li>
- <li>Set context classloader to null in WorkQueue (bug 517107)</li>
- <li>Fix ssh host name handling for Jsch (bug 531118)</li>
- <li>Fix that Jsch overrides the port in the URI with the one in ~/.ssh/config</li>
- <li>InitCommand: Don't leave Repository open after Git is closed</li>
- <li>MergedReftable to skip shadowed refs in same reftable</li>
- <li>Fix CleanCommand not to throw FileNotFoundExceptions (bug 514434)</li>
- <li>GC: Remove empty references folders</li>
- <li>Close RevWalk in BranchTrackingStatus.of() (bug 530757)</li>
- <li>Fix index blob for merges with CRLF translations (bug 499615)</li>
- <li>Honor CRLF settings when writing merge results (bug 499615)</li>
- <li>Minor improvements in git config file inclusions</li>
- <li>Enforce DFS blockLimit is a multiple of blockSize</li>
- <li>Skip broken symbolic ref in DfsReftableDatabase</li>
- <li>Revert handling of ssh IdentityFile to pre-4.9 behavior (bug 529173)</li>
- <li>RefDirectory#hasLooseRef: Fix stream resource leak reported by error-prone</li>
- <li>Ensure DirectoryStream is closed promptly</li>
- <li>Fix file handle leak in FetchCommand#fetchSubmodules (bug 526494)</li>
- <li>Skip unborn branches in UploadPack</li>
- <li>TransportLocal should reuse FS from source repo</li>
- </ul>
- <h2 id="Build_and_Release_Engineering">Build and Release Engineering</h2>
- <ul>
- <li>Upgrade spotbugs-maven-plugin to 3.1.2</li>
- <li>Update orbit to S20180302171354 (photon) and R20180206163158 (oxygen)</li>
- <li>Update tycho to 1.1.0</li>
- <li>Bazel: Support building with Java 9</li>
- <li>Update tycho to 1.1.0</li>
- <li>Upgrade gson to version 2.8.2</li>
- <li>Upgrade commons-compress to 1.15</li>
- <li>Upgrade error_prone_core to 2.2.0</li>
- <li>Upgrade Spotbugs to 3.1.1</li>
- <li>Add com.jcraft.jzlib 1.1.1 (bug 529129)</li>
- </ul>
- <h2 id="Contributors">Contributors</h2>
- <p>The following 17 contributors worked on this release:</p>
- <p>Christian Halstrick,
- Dave Borowitz,
- David Ostrovsky,
- David Pursehouse,
- David Turner,
- Han-Wen Nienhuys,
- Hector Caballero,
- Marc Strapetz,
- Markus Duft,
- Matthias Sohn,
- Michael Keppler,
- Minh Thai,
- Shawn Pearce,
- Terry Parker,
- Thomas Wolf,
- Tim Hosey,
- Zhen Chen</p><hr class="navigation-separator"/>
- <table class="navigation" style="width: 100%;" border="0" summary="navigation">
- <tr>
- <td style="width: 20%" align="left"></td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right">
- <a href="Updating-This-Document.html" title="Updating This Document">
- <img alt="Next" border="0" src="../../../images/next.gif"/>
- </a>
- </td>
- </tr>
- <tr>
- <td style="width: 20%" align="left" valign="top"></td>
- <td style="width: 60%" align="center"></td>
- <td style="width: 20%" align="right" valign="top">Updating This Document</td>
- </tr>
- </table>
- </body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.egit.doc/help/JGit/New_and_Noteworthy/5.0/5.0.html b/org.eclipse.egit.doc/help/JGit/New_and_Noteworthy/5.0/5.0.html
new file mode 100644
index 0000000..0b6c43c
--- /dev/null
+++ b/org.eclipse.egit.doc/help/JGit/New_and_Noteworthy/5.0/5.0.html
@@ -0,0 +1,160 @@
+<?xml version='1.0' encoding='utf-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <title>JGit 5.0 New and Noteworthy</title>
+ <link type="text/css" rel="stylesheet" href="../../../book.css"/>
+ </head>
+ <body>
+ <table class="navigation" style="width: 100%;" border="0" summary="navigation">
+ <tr>
+ <th style="width: 100%" align="center" colspan="3">JGit 5.0 New and Noteworthy</th>
+ </tr>
+ <tr>
+ <td style="width: 20%" align="left"></td>
+ <td style="width: 60%" align="center"></td>
+ <td style="width: 20%" align="right">
+ <a href="Updating-This-Document.html" title="Updating This Document">
+ <img alt="Next" border="0" src="../../../images/next.gif"/>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 20%" align="left" valign="top"></td>
+ <td style="width: 60%" align="center"></td>
+ <td style="width: 20%" align="right" valign="top">Updating This Document</td>
+ </tr>
+ </table><hr class="navigation-separator"/>
+ <h1 id="JGit">JGit</h1>
+ <h2 id="Features">Features</h2>
+ <ul>
+ <li>Fetch: Basic support for protocol v2 of the fetch-pack/upload-pack protocol. This protocol is described in the Git project in
+ <a href="https://github.com/git/git/blob/master/Documentation/technical/protocol-v2.txt" target="egit_external">"Documentation/technical/protocol-v2.txt"</a>. Notes:
+ <ul>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=534847" target="egit_external">bug 534847</a> AdvertiseRefsHook is not executed for v2, to be replaced by an appropriate hook
+ </li>
+ <li>
+ <a href="https://git.eclipse.org/r/#/c/120007/" target="egit_external">change 120007</a> support for shallow fetch using protocol v2 is not complete
+ </li>
+ </ul>
+ </li>
+ <li>Add protocol v2 support in jgit daemon. With this patch, a server spawned by jgit daemon can be accessed using protocol v2 from a Git client that supports it (for example, "git" with the appropriate patches, to be released with git 2.18). This is only activated if the repository's config has "protocol.version" be 2.</li>
+ <li>Store in IndexChangedEvent if it was caused by JGit itself. This allows to differentiate if index was changed by an external git command or by JGit itself.</li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=358206" target="egit_external">bug 358206</a> Handle Gerrit Change-Ids for merge commits
+ </li>
+ <li>UploadPack: basic support for filtering by blob size. This is incomplete in that the filter-by-sparse-specification feature also supported by Git is not included yet.</li>
+ <li>Implement --force option in FetchCommand and CLI fetch command</li>
+ </ul>
+ <h2 id="Performance_Improvements">Performance Improvements</h2>
+ <ul>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=388582" target="egit_external">bug 388582</a> Skip ignored directories in FileTreeIterator
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=532300" target="egit_external">bug 532300</a> Significantly speed up FileTreeIterator on Windows
+ </li>
+ <li>Configure WindowCache settings to use in JGit CLI. Set the same defaults as in EGit. Use mmap to map git packfiles into memory. Avoids allocating JGit buffer cache on the Java heap.</li>
+ </ul>
+ <h2 id="Fixes">Fixes</h2>
+ <p>
+ <a href="https://bugs.eclipse.org/bugs/buglist.cgi?classification=Technology&amp;list_id=10006180&amp;order=Importance&amp;product=JGit&amp;query_format=advanced&amp;resolution=FIXED&amp;resolution=DUPLICATE&amp;target_milestone=5.0" target="egit_external">0 enhancement requests and 6 bugs</a> were closed
+ </p>
+ <ul>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=423206" target="egit_external">bug 423206</a> Make JGit describe behaves same as c-git for lightweight tags
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=535672" target="egit_external">bug 535672</a> Ensure Jsch checks all configured algorithms
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=535655" target="egit_external">bug 535655</a> Validate branch names on branch creation
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=533549" target="egit_external">bug 533549</a> Don't prune symbolic refs when fetch.prune = true
+ </li>
+ <li>Use a secure random generator to seed nonce for digest authentication</li>
+ <li>Retry stale NFS file handles on .git/config file (
+ <a href="https://git.eclipse.org/r/#/c/120973/" target="egit_external">https://git.eclipse.org/r/#/c/120973/</a>)
+ </li>
+ <li>
+ <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=529463" target="egit_external">bug 529463</a> ssh: Kill the external process when we're done instead of waiting forever
+ </li>
+ <li>Allow '@' as last character of ref. Previously @ was allowed e.g. in branch names, but not as the last character.</li>
+ <li>Don't throw an exception if a pre-push hook is ignored.</li>
+ <li>LFS: Fix potential NPE in LfsPrePushHook</li>
+ <li>FS#runProcess: Fix OutputStream left unclosed after IOException</li>
+ </ul>
+ <h2 id="Incompatible_Changes">Incompatible Changes</h2>
+ <ul>
+ <li>Remove deprecated Repository#notifyIndexChanged. Implementors should now override Repository#notifyIndexChanged(boolean)</li>
+ <li>Remove deprecated LfsProtocolServlet#getLargeFileRepository. Use LfsProtocolServlet##getLargeFileRepository(LfsRequest, String, String) instead.</li>
+ <li>Remove deprecated Lfs#Lfs(Path). Use Lfs#Lfs(Repository) instead.</li>
+ <li>Remove deprecated StreamCopyThread#flush</li>
+ <li>Remove deprecated SafeBufferedOutputStream. Use Java 8 BufferedOutputStream instead.</li>
+ <li>Remove deprecated EolCanonicalizingInputStream. Use AutoLFInputStream instead.</li>
+ <li>Remove deprecated FileUtils#relativize(String, String). Use the more-clearly-named FileUtils#relativizeNativePath(String, String) instead, or directly call FileUtils#relativizePath(String, String, String, boolean).</li>
+ <li>Remove deprecated FileUtil using Java 7 NIO</li>
+ <li>Remove deprecated TreeWalk#getEolStreamType. Use TreeWalk#getEolStreamType(OperationType) instead.</li>
+ <li>Remove deprecated FileTreeIterator(WorkingTreeIterator, File, FS). Use FileTreeIterator#FileTreeIterator(FileTreeIterator, File, FS) instead.</li>
+ <li>Remove deprecated TransportHttp#httpOpen(String, URL). Use TransportHttp#httpOpen(String, URL, AcceptEncoding) instead.</li>
+ <li>Remove deprecated ResolveMerger#processEntry method</li>
+ <li>Remove deprecated Repository#getRef. Use Repository#exactRef(String) or Repository#findRef(String) instead.</li>
+ <li>Remove deprecated BitmapBuilder#add. Use BitmapBuilder#or or BitmapBuilder#addObject instead.</li>
+ <li>Remove deprecated LockFile(File, FS) constructor. Use org.eclipse.jgit.internal.storage.file.LockFile#LockFile(File) instead.</li>
+ <li>Remove deprecated IgnoreNode#isIgnored method. Parameter negateFirstMatch is not honored anymore</li>
+ <li>Remove deprecated Statistics, UploadPackLogger, UploadPackLoggerChain. Use PackStatistics and PostUploadHook and PostUploadHookChain instead.</li>
+ <li>Remove UploadPack#getPackStatistics. Use #getStatistics instead</li>
+ <li>Remove UploadPack#getLogger and UploadPack#setLogger</li>
+ <li>Remove deprecated StoredObjectRepresentationnotAvailableException constructor. Use #StoredObjectRepresentationNotAvailableException(ObjectToPack, Throwable) instead.</li>
+ <li>Remove deprecated ArchiveCommand#putEntry method. Use #putEntry(Closeable, ObjectId, String, FileMode, ObjectLoader)} instead.</li>
+ <li>Fix misspelled class name: EmtpyCommitException -&gt; EmptyCommitException</li>
+ <li>RemoteAddCommand#setName(String) and #setUri(URIish): return RemoteAddCommand to allow chaining.</li>
+ </ul>
+ <h2 id="Build_and_Release_Engineering">Build and Release Engineering</h2>
+ <ul>
+ <li>Update to latest Photon Orbit R20180606145124</li>
+ <li>Update maven plugins to fix Zip Slip vulnerability</li>
+ <li>Bazel: Add a target to build jgit commandline tool</li>
+ <li>Use eclipse compiler in Maven build. Define profiles "ecj" for using Eclipse compiler and "javac" for using javac including errorprone. By default ecj will be used.</li>
+ <li>Upgrade error_prone_core to 2.3.1</li>
+ <li>Update SUA to current version.</li>
+ </ul>
+ <h2 id="Contributors">Contributors</h2>
+ <p>The following 17 contributors worked on this release:</p>
+ <p>Carsten Pfeiffer,
+ Christian Halstrick,
+ Dave Borowitz,
+ David Pursehouse,
+ David Turner,
+ Han-Wen Nienhuys,
+ Jonathan Nieder,
+ Jonathan Tan,
+ Marcel Trautwein,
+ Markus Duft,
+ Masaya Suzuki,
+ Matthias Sohn,
+ Michael Keppler,
+ Mincong HUANG,
+ Minh Thai,
+ Nasser Grainawi,
+ Thomas Wolf</p><hr class="navigation-separator"/>
+ <table class="navigation" style="width: 100%;" border="0" summary="navigation">
+ <tr>
+ <td style="width: 20%" align="left"></td>
+ <td style="width: 60%" align="center"></td>
+ <td style="width: 20%" align="right">
+ <a href="Updating-This-Document.html" title="Updating This Document">
+ <img alt="Next" border="0" src="../../../images/next.gif"/>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 20%" align="left" valign="top"></td>
+ <td style="width: 60%" align="center"></td>
+ <td style="width: 20%" align="right" valign="top">Updating This Document</td>
+ </tr>
+ </table>
+ </body>
+</html> \ No newline at end of file
diff --git a/org.eclipse.egit.doc/help/JGit/New_and_Noteworthy/4.11/Updating-This-Document.html b/org.eclipse.egit.doc/help/JGit/New_and_Noteworthy/5.0/Updating-This-Document.html
index 31758be..be622d5 100644
--- a/org.eclipse.egit.doc/help/JGit/New_and_Noteworthy/4.11/Updating-This-Document.html
+++ b/org.eclipse.egit.doc/help/JGit/New_and_Noteworthy/5.0/Updating-This-Document.html
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <title>JGit 4.11 New and Noteworthy - Updating This Document</title>
+ <title>JGit 5.0 New and Noteworthy - Updating This Document</title>
<link type="text/css" rel="stylesheet" href="../../../book.css"/>
</head>
<body>
@@ -12,7 +12,7 @@
</tr>
<tr>
<td style="width: 20%" align="left">
- <a href="4.11.html" title="JGit 4.11 New and Noteworthy">
+ <a href="5.0.html" title="JGit 5.0 New and Noteworthy">
<img alt="Previous" border="0" src="../../../images/prev.gif"/>
</a>
</td>
@@ -20,7 +20,7 @@
<td style="width: 20%" align="right"></td>
</tr>
<tr>
- <td style="width: 20%" align="left" valign="top">JGit 4.11 New and Noteworthy</td>
+ <td style="width: 20%" align="left" valign="top">JGit 5.0 New and Noteworthy</td>
<td style="width: 60%" align="center"></td>
<td style="width: 20%" align="right" valign="top"></td>
</tr>
@@ -29,24 +29,24 @@
<p> This document is maintained in a collaborative wiki. If you wish to
update or modify this document please visit
- <a href="http://wiki.eclipse.org/JGit/New_and_Noteworthy/4.11" target="egit_external">http://wiki.eclipse.org/JGit/New_and_Noteworthy/4.11</a>
+ <a href="http://wiki.eclipse.org/JGit/New_and_Noteworthy/5.0" target="egit_external">http://wiki.eclipse.org/JGit/New_and_Noteworthy/5.0</a>
</p><hr class="navigation-separator"/>
<table class="navigation" style="width: 100%;" border="0" summary="navigation">
<tr>
<td style="width: 20%" align="left">
- <a href="4.11.html" title="JGit 4.11 New and Noteworthy">
+ <a href="5.0.html" title="JGit 5.0 New and Noteworthy">
<img alt="Previous" border="0" src="../../../images/prev.gif"/>
</a>
</td>
<td style="width: 60%" align="center">
- <a href="4.11.html" title="JGit 4.11 New and Noteworthy">
- <img alt="JGit 4.11 New and Noteworthy" border="0" src="../../../images/home.gif"/>
+ <a href="5.0.html" title="JGit 5.0 New and Noteworthy">
+ <img alt="JGit 5.0 New and Noteworthy" border="0" src="../../../images/home.gif"/>
</a>
</td>
<td style="width: 20%" align="right"></td>
</tr>
<tr>
- <td style="width: 20%" align="left" valign="top">JGit 4.11 New and Noteworthy</td>
+ <td style="width: 20%" align="left" valign="top">JGit 5.0 New and Noteworthy</td>
<td style="width: 60%" align="center"></td>
<td style="width: 20%" align="right" valign="top"></td>
</tr>
diff --git a/org.eclipse.egit.doc/help/toc.xml b/org.eclipse.egit.doc/help/toc.xml
index d81142b..d4cfd5a 100644
--- a/org.eclipse.egit.doc/help/toc.xml
+++ b/org.eclipse.egit.doc/help/toc.xml
@@ -313,6 +313,7 @@
<topic href="help/EGit/User_Guide/Tasks.html#Export" label="Export"></topic>
<topic href="help/EGit/User_Guide/Tasks.html#Format" label="Format"></topic>
</topic>
+ <topic href="help/EGit/User_Guide/Tasks.html#GIT_LFS_Support" label="GIT LFS Support"></topic>
</topic>
<topic href="help/EGit/User_Guide/Reference.html" label="Reference">
<topic href="help/EGit/User_Guide/Reference.html#Menus" label="Menus">
@@ -445,25 +446,28 @@
</topic>
<topic href="help/JGit/User_Guide/Updating-This-Document.html" label="Updating This Document"></topic>
</topic>
- <topic href="help/EGit/New_and_Noteworthy/4.11/4.11.html" label="EGit 4.11 New and Noteworthy">
- <topic href="help/EGit/New_and_Noteworthy/4.11/4.11.html" label="EGit">
- <topic href="help/EGit/New_and_Noteworthy/4.11/4.11.html#Usability" label="Usability"></topic>
- <topic href="help/EGit/New_and_Noteworthy/4.11/4.11.html#Performance_Improvements" label="Performance Improvements"></topic>
- <topic href="help/EGit/New_and_Noteworthy/4.11/4.11.html#Bug_Fixes" label="Bug Fixes"></topic>
- <topic href="help/EGit/New_and_Noteworthy/4.11/4.11.html#Build_and_Release_Engineering" label="Build and Release Engineering"></topic>
+ <topic href="help/EGit/New_and_Noteworthy/5.0/5.0.html" label="EGit 5.0 New and Noteworthy">
+ <topic href="help/EGit/New_and_Noteworthy/5.0/5.0.html" label="EGit">
+ <topic href="help/EGit/New_and_Noteworthy/5.0/5.0.html#Features" label="Features"></topic>
+ <topic href="help/EGit/New_and_Noteworthy/5.0/5.0.html#Usability" label="Usability"></topic>
+ <topic href="help/EGit/New_and_Noteworthy/5.0/5.0.html#Performance_Improvements" label="Performance Improvements"></topic>
+ <topic href="help/EGit/New_and_Noteworthy/5.0/5.0.html#Bug_Fixes" label="Bug Fixes"></topic>
+ <topic href="help/EGit/New_and_Noteworthy/5.0/5.0.html#Removal_of.C2.A0deprecated_methods" label="Removal of deprecated methods"></topic>
+ <topic href="help/EGit/New_and_Noteworthy/5.0/5.0.html#Build_and_Release_Engineering" label="Build and Release Engineering"></topic>
</topic>
- <topic href="help/EGit/New_and_Noteworthy/4.11/Contributors.html" label="Contributors"></topic>
- <topic href="help/EGit/New_and_Noteworthy/4.11/Updating-This-Document.html" label="Updating This Document"></topic>
+ <topic href="help/EGit/New_and_Noteworthy/5.0/Contributors.html" label="Contributors"></topic>
+ <topic href="help/EGit/New_and_Noteworthy/5.0/Updating-This-Document.html" label="Updating This Document"></topic>
</topic>
- <topic href="help/JGit/New_and_Noteworthy/4.11/4.11.html" label="JGit 4.11 New and Noteworthy">
- <topic href="help/JGit/New_and_Noteworthy/4.11/4.11.html" label="JGit">
- <topic href="help/JGit/New_and_Noteworthy/4.11/4.11.html#Features" label="Features"></topic>
- <topic href="help/JGit/New_and_Noteworthy/4.11/4.11.html#Performance_Improvements" label="Performance Improvements"></topic>
- <topic href="help/JGit/New_and_Noteworthy/4.11/4.11.html#Fixes" label="Fixes"></topic>
- <topic href="help/JGit/New_and_Noteworthy/4.11/4.11.html#Build_and_Release_Engineering" label="Build and Release Engineering"></topic>
- <topic href="help/JGit/New_and_Noteworthy/4.11/4.11.html#Contributors" label="Contributors"></topic>
+ <topic href="help/JGit/New_and_Noteworthy/5.0/5.0.html" label="JGit 5.0 New and Noteworthy">
+ <topic href="help/JGit/New_and_Noteworthy/5.0/5.0.html" label="JGit">
+ <topic href="help/JGit/New_and_Noteworthy/5.0/5.0.html#Features" label="Features"></topic>
+ <topic href="help/JGit/New_and_Noteworthy/5.0/5.0.html#Performance_Improvements" label="Performance Improvements"></topic>
+ <topic href="help/JGit/New_and_Noteworthy/5.0/5.0.html#Fixes" label="Fixes"></topic>
+ <topic href="help/JGit/New_and_Noteworthy/5.0/5.0.html#Incompatible_Changes" label="Incompatible Changes"></topic>
+ <topic href="help/JGit/New_and_Noteworthy/5.0/5.0.html#Build_and_Release_Engineering" label="Build and Release Engineering"></topic>
+ <topic href="help/JGit/New_and_Noteworthy/5.0/5.0.html#Contributors" label="Contributors"></topic>
</topic>
- <topic href="help/JGit/New_and_Noteworthy/4.11/Updating-This-Document.html" label="Updating This Document"></topic>
+ <topic href="help/JGit/New_and_Noteworthy/5.0/Updating-This-Document.html" label="Updating This Document"></topic>
</topic>
<topic href="help/EGit/Git_For_Eclipse_Users/Git-For-Eclipse-Users.html" label="Git for Eclipse Users">
<topic href="help/EGit/Git_For_Eclipse_Users/Git-For-Eclipse-Users.html" label="Centralised version control systems"></topic>
@@ -530,6 +534,7 @@
<topic href="help/EGit/Contributor_Guide/Bugs.html#Filing_Bugs" label="Filing Bugs">
<topic href="help/EGit/Contributor_Guide/Bugs.html#How_to_file_bugs" label="How to file bugs"></topic>
<topic href="help/EGit/Contributor_Guide/Bugs.html#File_a_bug" label="File a bug"></topic>
+ <topic href="help/EGit/Contributor_Guide/Bugs.html#File_a_bug_for_a_vulnerability" label="File a bug for a vulnerability"></topic>
</topic>
<topic href="help/EGit/Contributor_Guide/Bugs.html#Bug_Reports_and_Links" label="Bug Reports and Links"></topic>
</topic>
@@ -560,6 +565,7 @@
<topic href="help/EGit/Contributor_Guide/Contributing-Patches.html#Coding_standards" label="Coding standards">
<topic href="help/EGit/Contributor_Guide/Contributing-Patches.html#Braces_for_one-line_statements" label="Braces for one-line statements"></topic>
<topic href="help/EGit/Contributor_Guide/Contributing-Patches.html#Removing_trailing_whitespace" label="Removing trailing whitespace"></topic>
+ <topic href="help/EGit/Contributor_Guide/Contributing-Patches.html#Use_of_the_.22final.22_modifier" label="Use of the &quot;final&quot; modifier"></topic>
</topic>
<topic href="help/EGit/Contributor_Guide/Contributing-Patches.html#Commit_message_guidelines" label="Commit message guidelines"></topic>
<topic href="help/EGit/Contributor_Guide/Contributing-Patches.html#Copyright" label="Copyright"></topic>
@@ -583,4 +589,4 @@
</topic>
<topic href="help/EGit/Contributor_Guide/Updating-This-Document.html" label="Updating This Document"></topic>
</topic>
-</toc>
+</toc> \ No newline at end of file
diff --git a/org.eclipse.egit.target/egit-4.5.target b/org.eclipse.egit.target/egit-4.5.target
index 4a08221..4752856 100644
--- a/org.eclipse.egit.target/egit-4.5.target
+++ b/org.eclipse.egit.target/egit-4.5.target
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/mbarbero/fr.obeo.releng.targetplatform -->
-<target name="egit-4.5" sequenceNumber="1527855925">
+<target name="egit-4.5" sequenceNumber="1528375662">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.8.v20171121"/>
@@ -78,7 +78,7 @@
<unit id="org.tukaani.xz.source" version="1.6.0.v20170629-1752"/>
<unit id="com.jcraft.jzlib" version="1.1.1.v201205102305"/>
<unit id="com.jcraft.jzlib.source" version="1.1.1.v201205102305"/>
- <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20180531190352/repository"/>
+ <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20180606145124/repository"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.sdk.ide" version="0.0.0"/>
diff --git a/org.eclipse.egit.target/egit-4.5.tpd b/org.eclipse.egit.target/egit-4.5.tpd
index 6798d4a..91f7520 100644
--- a/org.eclipse.egit.target/egit-4.5.tpd
+++ b/org.eclipse.egit.target/egit-4.5.tpd
@@ -2,5 +2,5 @@ target "egit-4.5" with source configurePhase
include "projects/jetty-9.4.8.tpd"
include "projects/swtbot-snapshot.tpd"
-include "orbit/R20180531190352-Photon.tpd"
+include "orbit/R20180606145124-Photon.tpd"
include "releasetrain/4.5-mars.tpd"
diff --git a/org.eclipse.egit.target/egit-4.6.target b/org.eclipse.egit.target/egit-4.6.target
index e987bd7..87b6d3d 100644
--- a/org.eclipse.egit.target/egit-4.6.target
+++ b/org.eclipse.egit.target/egit-4.6.target
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/mbarbero/fr.obeo.releng.targetplatform -->
-<target name="egit-4.6" sequenceNumber="1527855911">
+<target name="egit-4.6" sequenceNumber="1528375657">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.8.v20171121"/>
@@ -78,7 +78,7 @@
<unit id="org.tukaani.xz.source" version="1.6.0.v20170629-1752"/>
<unit id="com.jcraft.jzlib" version="1.1.1.v201205102305"/>
<unit id="com.jcraft.jzlib.source" version="1.1.1.v201205102305"/>
- <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20180531190352/repository"/>
+ <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20180606145124/repository"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.sdk.ide" 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 f75d0fd..77c2d3e 100644
--- a/org.eclipse.egit.target/egit-4.6.tpd
+++ b/org.eclipse.egit.target/egit-4.6.tpd
@@ -2,5 +2,5 @@ target "egit-4.6" with source configurePhase
include "projects/jetty-9.4.8.tpd"
include "projects/swtbot-snapshot.tpd"
-include "orbit/R20180531190352-Photon.tpd"
+include "orbit/R20180606145124-Photon.tpd"
include "releasetrain/4.6-neon.tpd"
diff --git a/org.eclipse.egit.target/egit-4.7.target b/org.eclipse.egit.target/egit-4.7.target
index 51427e7..ba7945b 100644
--- a/org.eclipse.egit.target/egit-4.7.target
+++ b/org.eclipse.egit.target/egit-4.7.target
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/mbarbero/fr.obeo.releng.targetplatform -->
-<target name="egit-4.7" sequenceNumber="1527855889">
+<target name="egit-4.7" sequenceNumber="1528375621">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.8.v20171121"/>
@@ -78,7 +78,7 @@
<unit id="org.tukaani.xz.source" version="1.6.0.v20170629-1752"/>
<unit id="com.jcraft.jzlib" version="1.1.1.v201205102305"/>
<unit id="com.jcraft.jzlib.source" version="1.1.1.v201205102305"/>
- <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20180531190352/repository"/>
+ <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20180606145124/repository"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.sdk.ide" 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 7957858..4fc3009 100644
--- a/org.eclipse.egit.target/egit-4.7.tpd
+++ b/org.eclipse.egit.target/egit-4.7.tpd
@@ -2,5 +2,5 @@ target "egit-4.7" with source configurePhase
include "projects/jetty-9.4.8.tpd"
include "projects/swtbot-snapshot.tpd"
-include "orbit/R20180531190352-Photon.tpd"
+include "orbit/R20180606145124-Photon.tpd"
include "releasetrain/4.7-oxygen.tpd"
diff --git a/org.eclipse.egit.target/egit-4.8-staging.target b/org.eclipse.egit.target/egit-4.8-staging.target
index 6f12886..eede2ca 100644
--- a/org.eclipse.egit.target/egit-4.8-staging.target
+++ b/org.eclipse.egit.target/egit-4.8-staging.target
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/mbarbero/fr.obeo.releng.targetplatform -->
-<target name="egit-4.8-staging" sequenceNumber="1527855872">
+<target name="egit-4.8-staging" sequenceNumber="1528375590">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.8.v20171121"/>
@@ -78,7 +78,7 @@
<unit id="org.tukaani.xz.source" version="1.6.0.v20170629-1752"/>
<unit id="com.jcraft.jzlib" version="1.1.1.v201205102305"/>
<unit id="com.jcraft.jzlib.source" version="1.1.1.v201205102305"/>
- <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20180531190352/repository"/>
+ <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20180606145124/repository"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.sdk.ide" version="0.0.0"/>
diff --git a/org.eclipse.egit.target/egit-4.8-staging.tpd b/org.eclipse.egit.target/egit-4.8-staging.tpd
index 5c9bb4a..3cf962f 100644
--- a/org.eclipse.egit.target/egit-4.8-staging.tpd
+++ b/org.eclipse.egit.target/egit-4.8-staging.tpd
@@ -2,5 +2,5 @@ target "egit-4.8-staging" with source configurePhase
include "projects/jetty-9.4.8.tpd"
include "projects/swtbot-snapshot.tpd"
-include "orbit/R20180531190352-Photon.tpd"
+include "orbit/R20180606145124-Photon.tpd"
include "releasetrain/staging.tpd"
diff --git a/org.eclipse.egit.target/egit-4.8.target b/org.eclipse.egit.target/egit-4.8.target
index 3a72a48..4c7ed39 100644
--- a/org.eclipse.egit.target/egit-4.8.target
+++ b/org.eclipse.egit.target/egit-4.8.target
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/mbarbero/fr.obeo.releng.targetplatform -->
-<target name="egit-4.8" sequenceNumber="1527855864">
+<target name="egit-4.8" sequenceNumber="1528872799">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.8.v20171121"/>
@@ -35,8 +35,11 @@
<unit id="com.jcraft.jsch.source" version="0.1.54.v20170116-1932"/>
<unit id="javaewah" version="1.1.6.v20160919-1400"/>
<unit id="javaewah.source" version="1.1.6.v20160919-1400"/>
+ <unit id="javax.activation" version="1.1.0.v201211130549"/>
<unit id="javax.servlet" version="3.1.0.v201410161800"/>
<unit id="javax.servlet.source" version="3.1.0.v201410161800"/>
+ <unit id="javax.xml.bind" version="2.2.0.v201105210648"/>
+ <unit id="javax.xml.stream" version="1.0.1.v201004272200"/>
<unit id="org.apache.ant" version="1.9.6.v201510161327"/>
<unit id="org.apache.ant.source" version="1.9.6.v201510161327"/>
<unit id="org.apache.commons.codec" version="1.9.0.v20170208-1614"/>
@@ -47,8 +50,6 @@
<unit id="org.apache.commons.logging.source" version="1.1.1.v201101211721"/>
<unit id="org.apache.httpcomponents.httpcore" version="4.4.6.v20170210-0925"/>
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.6.v20170210-0925"/>
- <unit id="org.apache.httpcomponents.httpclient" version="4.5.2.v20180410-1551"/>
- <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.2.v20180410-1551"/>
<unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
<unit id="org.apache.log4j.source" version="1.2.15.v201012070815"/>
<unit id="org.kohsuke.args4j" version="2.33.0.v20160323-2218"/>
@@ -78,15 +79,23 @@
<unit id="org.tukaani.xz.source" version="1.6.0.v20170629-1752"/>
<unit id="com.jcraft.jzlib" version="1.1.1.v201205102305"/>
<unit id="com.jcraft.jzlib.source" version="1.1.1.v201205102305"/>
- <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20180531190352/repository"/>
+ <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20180606145124/repository"/>
+ </location>
+ <location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
+ <unit id="org.apache.httpcomponents.httpclient" version="4.5.2.v20170210-0925"/>
+ <unit id="org.apache.httpcomponents.httpclient.source" version="4.5.2.v20170210-0925"/>
+ <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20170919201930/repository/"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.sdk.ide" version="0.0.0"/>
+ <unit id="org.eclipse.ecf.console.feature.feature.group" version="0.0.0"/>
+ <unit id="org.eclipse.ecf.core.feature.feature.group" version="0.0.0"/>
+ <unit id="org.eclipse.ecf.filetransfer.feature.feature.group" version="0.0.0"/>
<unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
+ <unit id="org.eclipse.equinox.concurrent" version="0.0.0"/>
<unit id="org.eclipse.mylyn.commons.sdk.feature.group" version="0.0.0"/>
<unit id="org.eclipse.mylyn.ide_feature.feature.group" version="0.0.0"/>
<unit id="org.eclipse.mylyn.team_feature.feature.group" version="0.0.0"/>
- <unit id="org.eclipse.mylyn.context.sdk.feature.group" version="0.0.0"/>
<unit id="org.eclipse.mylyn_feature.feature.group" version="0.0.0"/>
<unit id="org.eclipse.mylyn.context_feature.feature.group" version="0.0.0"/>
<unit id="org.eclipse.mylyn.sdk_feature.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 f93c76d..8ca431c 100644
--- a/org.eclipse.egit.target/egit-4.8.tpd
+++ b/org.eclipse.egit.target/egit-4.8.tpd
@@ -2,5 +2,5 @@ target "egit-4.8" with source configurePhase
include "projects/jetty-9.4.8.tpd"
include "projects/swtbot-snapshot.tpd"
-include "orbit/R20180531190352-Photon.tpd"
+include "orbit/R20180606145124-Photon.tpd"
include "releasetrain/4.8-photon.tpd"
diff --git a/org.eclipse.egit.target/orbit/R20180531190352-Photon.tpd b/org.eclipse.egit.target/orbit/R20180606145124-Photon.tpd
index 660a7f3..a876c25 100644
--- a/org.eclipse.egit.target/orbit/R20180531190352-Photon.tpd
+++ b/org.eclipse.egit.target/orbit/R20180606145124-Photon.tpd
@@ -1,15 +1,18 @@
-target "R20180531190352-Photon" with source configurePhase
+target "R20180606145124-Photon" with source configurePhase
// see http://download.eclipse.org/tools/orbit/downloads/
-location "http://download.eclipse.org/tools/orbit/downloads/drops/R20180531190352/repository" {
+location "http://download.eclipse.org/tools/orbit/downloads/drops/R20180606145124/repository" {
com.google.gson [2.8.2.v20180104-1110,2.8.2.v20180104-1110]
com.google.gson.source [2.8.2.v20180104-1110,2.8.2.v20180104-1110]
com.jcraft.jsch [0.1.54.v20170116-1932,0.1.54.v20170116-1932]
com.jcraft.jsch.source [0.1.54.v20170116-1932,0.1.54.v20170116-1932]
javaewah [1.1.6.v20160919-1400,1.1.6.v20160919-1400]
javaewah.source [1.1.6.v20160919-1400,1.1.6.v20160919-1400]
+ javax.activation [1.1.0.v201211130549,1.1.0.v201211130549]
javax.servlet [3.1.0.v201410161800,3.1.0.v201410161800]
javax.servlet.source [3.1.0.v201410161800,3.1.0.v201410161800]
+ javax.xml.bind [2.2.0.v201105210648,2.2.0.v201105210648]
+ javax.xml.stream [1.0.1.v201004272200,1.0.1.v201004272200]
org.apache.ant [1.9.6.v201510161327,1.9.6.v201510161327]
org.apache.ant.source [1.9.6.v201510161327,1.9.6.v201510161327]
org.apache.commons.codec [1.9.0.v20170208-1614,1.9.0.v20170208-1614]
@@ -20,8 +23,6 @@ location "http://download.eclipse.org/tools/orbit/downloads/drops/R2018053119035
org.apache.commons.logging.source [1.1.1.v201101211721,1.1.1.v201101211721]
org.apache.httpcomponents.httpcore [4.4.6.v20170210-0925,4.4.6.v20170210-0925]
org.apache.httpcomponents.httpcore.source [4.4.6.v20170210-0925,4.4.6.v20170210-0925]
- org.apache.httpcomponents.httpclient [4.5.2.v20180410-1551,4.5.2.v20180410-1551]
- org.apache.httpcomponents.httpclient.source [4.5.2.v20180410-1551,4.5.2.v20180410-1551]
org.apache.log4j [1.2.15.v201012070815,1.2.15.v201012070815]
org.apache.log4j.source [1.2.15.v201012070815,1.2.15.v201012070815]
org.kohsuke.args4j [2.33.0.v20160323-2218,2.33.0.v20160323-2218]
@@ -51,4 +52,10 @@ location "http://download.eclipse.org/tools/orbit/downloads/drops/R2018053119035
org.tukaani.xz.source [1.6.0.v20170629-1752,1.6.0.v20170629-1752]
com.jcraft.jzlib [1.1.1.v201205102305,1.1.1.v201205102305]
com.jcraft.jzlib.source [1.1.1.v201205102305,1.1.1.v201205102305]
+}
+
+location "http://download.eclipse.org/tools/orbit/downloads/drops/R20170919201930/repository/" {
+ // platform uses this outdated version of httpclient in Photon
+ org.apache.httpcomponents.httpclient [4.5.2.v20170210-0925,4.5.2.v20170210-0925]
+ org.apache.httpcomponents.httpclient.source [4.5.2.v20170210-0925,4.5.2.v20170210-0925]
} \ No newline at end of file
diff --git a/org.eclipse.egit.target/releasetrain/4.8-photon.tpd b/org.eclipse.egit.target/releasetrain/4.8-photon.tpd
index f9f8580..4ca351f 100644
--- a/org.eclipse.egit.target/releasetrain/4.8-photon.tpd
+++ b/org.eclipse.egit.target/releasetrain/4.8-photon.tpd
@@ -2,11 +2,14 @@ target "4.8-photon" with source configurePhase
location "http://download.eclipse.org/releases/photon/" {
org.eclipse.sdk.ide lazy
+ org.eclipse.ecf.console.feature.feature.group lazy
+ org.eclipse.ecf.core.feature.feature.group lazy
+ org.eclipse.ecf.filetransfer.feature.feature.group lazy
org.eclipse.emf.sdk.feature.group lazy
+ org.eclipse.equinox.concurrent lazy
org.eclipse.mylyn.commons.sdk.feature.group lazy
org.eclipse.mylyn.ide_feature.feature.group lazy
org.eclipse.mylyn.team_feature.feature.group lazy
- org.eclipse.mylyn.context.sdk.feature.group lazy
org.eclipse.mylyn_feature.feature.group lazy
org.eclipse.mylyn.context_feature.feature.group lazy
org.eclipse.mylyn.sdk_feature.feature.group lazy
diff --git a/org.eclipse.egit.ui/plugin.properties b/org.eclipse.egit.ui/plugin.properties
index 6e9a0e0..76e454f 100644
--- a/org.eclipse.egit.ui/plugin.properties
+++ b/org.eclipse.egit.ui/plugin.properties
@@ -458,3 +458,5 @@ HistoryShowBlame.label=&Show Revision Information
HistoryShowVersions.label=&Open
RebaseInteractiveOpenInCommitViewer.label=&Open in Commit Viewer
+
+InstallLfsLocalCommand.label=Enable LFS locally \ No newline at end of file
diff --git a/org.eclipse.egit.ui/plugin.xml b/org.eclipse.egit.ui/plugin.xml
index 5049eb4..86b0f32 100644
--- a/org.eclipse.egit.ui/plugin.xml
+++ b/org.eclipse.egit.ui/plugin.xml
@@ -1083,6 +1083,11 @@
</command>
<command
categoryId="org.eclipse.egit.ui.commandCategory"
+ id="org.eclipse.egit.ui.team.InstallLfsLocal"
+ name="%InstallLfsLocalCommand.label">
+ </command>
+ <command
+ categoryId="org.eclipse.egit.ui.commandCategory"
id="org.eclipse.egit.ui.team.Disconnect"
name="%DisconnectCommand.name">
</command>
@@ -2106,6 +2111,32 @@
</activeWhen>
</handler>
<handler
+ commandId="org.eclipse.egit.ui.team.InstallLfsLocal">
+ <class
+ class="org.eclipse.egit.ui.internal.repository.tree.command.InstallLfsLocalCommand">
+ </class>
+ <activeWhen>
+ <and>
+ <count
+ value="+">
+ </count>
+ <iterate>
+ <and>
+ <instanceof
+ value="org.eclipse.egit.ui.internal.repository.tree.RepositoryNode">
+ </instanceof>
+ <test
+ property="GitRepository.isSafe">
+ </test>
+ <test
+ property="GitRepository.canEnableLfs">
+ </test>
+ </and>
+ </iterate>
+ </and>
+ </activeWhen>
+ </handler>
+ <handler
class="org.eclipse.egit.ui.internal.actions.UntrackActionHandler"
commandId="org.eclipse.egit.ui.team.Untrack">
<activeWhen>
@@ -4653,6 +4684,12 @@
</visibleWhen>
</command>
<command
+ commandId="org.eclipse.egit.ui.team.InstallLfsLocal"
+ label="%InstallLfsLocalCommand.label"
+ style="push">
+ <visibleWhen checkEnabled="true" />
+ </command>
+ <command
commandId="org.eclipse.egit.ui.RepositoriesViewRemove"
label="%RepoViewRemove.label"
style="push">
@@ -6255,7 +6292,7 @@
class="org.eclipse.egit.ui.internal.repository.tree.RepositoriesViewPropertyTester"
id="org.eclipse.egit.ui.RepositoryTester"
namespace="GitRepository"
- properties="isBare,isSafe,canCommit,canAmend,canResetHead,canStash,isRefCheckedOut,isLocalBranch,fetchExists,pushExists,canMerge,canAbortRebase,canContinueRebase,isSubmodule,containsHead,hasGerritConfiguration,canFetchFromGerrit,canPushToGerrit"
+ properties="isBare,isSafe,canCommit,canAmend,canResetHead,canStash,isRefCheckedOut,isLocalBranch,fetchExists,pushExists,canMerge,canAbortRebase,canContinueRebase,isSubmodule,containsHead,hasGerritConfiguration,canFetchFromGerrit,canPushToGerrit,canEnableLfs"
type="org.eclipse.egit.ui.internal.repository.tree.RepositoryTreeNode">
</propertyTester>
<propertyTester
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/PluginPreferenceInitializer.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/PluginPreferenceInitializer.java
index 878ffff..d46af6b 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/PluginPreferenceInitializer.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/PluginPreferenceInitializer.java
@@ -110,6 +110,7 @@ public class PluginPreferenceInitializer extends AbstractPreferenceInitializer {
store.setDefault(UIPreferences.SHOW_FETCH_POPUP_SUCCESS, true);
store.setDefault(UIPreferences.SHOW_PUSH_POPUP_SUCCESS, true);
store.setDefault(UIPreferences.SHOW_HOME_DIR_WARNING, true);
+ store.setDefault(UIPreferences.LFS_AUTO_CONFIGURATION, false);
store.setDefault(UIPreferences.SHOW_DETACHED_HEAD_WARNING, true);
store.setDefault(UIPreferences.SHOW_CHECKOUT_CONFIRMATION, true);
store.setDefault(UIPreferences.SHOW_RUNNING_LAUNCH_ON_CHECKOUT_WARNING,
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/UIPreferences.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/UIPreferences.java
index 3726a25..b2bd957 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/UIPreferences.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/UIPreferences.java
@@ -191,6 +191,8 @@ public class UIPreferences {
/** */
public static final String SHOW_HOME_DIR_WARNING = "show_home_drive_warning"; //$NON-NLS-1$
/** */
+ public static final String LFS_AUTO_CONFIGURATION = "auto_lfs_config"; //$NON-NLS-1$
+ /** */
public static final String SHOW_DETACHED_HEAD_WARNING = "show_detached_head_warning"; //$NON-NLS-1$
/** */
public static final String SHOW_CHECKOUT_CONFIRMATION = "show_checkout_confirmation"; //$NON-NLS-1$
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/ConfigurationChecker.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/ConfigurationChecker.java
index 23cf809..f856a15 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/ConfigurationChecker.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/ConfigurationChecker.java
@@ -20,6 +20,11 @@ import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.egit.ui.Activator;
import org.eclipse.egit.ui.UIPreferences;
import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jgit.lib.ConfigConstants;
+import org.eclipse.jgit.lib.StoredConfig;
+import org.eclipse.jgit.util.FS;
+import org.eclipse.jgit.util.LfsFactory;
+import org.eclipse.jgit.util.LfsFactory.LfsInstallCommand;
import org.eclipse.jgit.util.SystemReader;
import org.eclipse.osgi.util.NLS;
import org.eclipse.ui.PlatformUI;
@@ -31,8 +36,7 @@ import org.eclipse.ui.PlatformUI;
public class ConfigurationChecker {
/**
- * Checks the system configuration. Currently only the HOME variable on
- * Windows is checked
+ * Checks the system configuration.
*/
public static void checkConfiguration() {
// Schedule a job
@@ -61,6 +65,39 @@ public class ConfigurationChecker {
private static void check() {
checkHome();
+ checkLfs();
+ }
+
+ private static void checkLfs() {
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ boolean auto = store.getBoolean(UIPreferences.LFS_AUTO_CONFIGURATION);
+ if (auto && !isLfsConfigured()) {
+ try {
+ LfsInstallCommand cmd = LfsFactory.getInstance()
+ .getInstallCommand();
+ if (cmd != null) {
+ cmd.call();
+ }
+ } catch (Exception e) {
+ Activator.handleIssue(IStatus.WARNING,
+ UIText.ConfigurationChecker_installLfsCannotInstall, e,
+ true);
+ }
+ }
+ }
+
+ private static boolean isLfsConfigured() {
+ try {
+ StoredConfig cfg = SystemReader.getInstance().openUserConfig(null,
+ FS.DETECTED);
+ cfg.load();
+ return cfg.getSubsections(ConfigConstants.CONFIG_FILTER_SECTION)
+ .contains("lfs"); //$NON-NLS-1$
+ } catch (Exception e) {
+ Activator.handleIssue(IStatus.WARNING,
+ UIText.ConfigurationChecker_installLfsCannotLoadConfig, e, false);
+ }
+ return false;
}
private static void checkHome() {
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/UIText.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/UIText.java
index ec072e1..f472bc9 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/UIText.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/UIText.java
@@ -712,6 +712,21 @@ public class UIText extends NLS {
public static String GitPreferenceRoot_defaultMergeStrategyLabel;
/** */
+ public static String GitPreferenceRoot_lfsSupportCaption;
+
+ /** */
+ public static String GitPreferenceRoot_lfsSupportCaptionNotAvailable;
+
+ /** */
+ public static String GitPreferenceRoot_lfsSupportInstall;
+
+ /** */
+ public static String GitPreferenceRoot_lfsSupportSuccessMessage;
+
+ /** */
+ public static String GitPreferenceRoot_lfsSupportSuccessTitle;
+
+ /** */
public static String ProcessStepsRebaseCommand_CancelDialogMessage;
/** */
@@ -2446,6 +2461,12 @@ public class UIText extends NLS {
public static String ConfigurationChecker_homeNotSet;
/** */
+ public static String ConfigurationChecker_installLfsCannotInstall;
+
+ /** */
+ public static String ConfigurationChecker_installLfsCannotLoadConfig;
+
+ /** */
public static String ConfigurationEditorComponent_ConfigLocationLabel;
/** */
@@ -3702,6 +3723,9 @@ public class UIText extends NLS {
public static String RepositoriesViewLabelProvider_UnbornBranchText;
/** */
+ public static String DialogsPreferencePage_autoConfigureLfs;
+
+ /** */
public static String DialogsPreferencePage_DetachedHeadCombo;
/** */
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/blame/BlameInformationControl.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/blame/BlameInformationControl.java
index 5f5f06a..835c616 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/blame/BlameInformationControl.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/blame/BlameInformationControl.java
@@ -390,7 +390,8 @@ public class BlameInformationControl extends AbstractInformationControl
revision.getRepository(), revision.getSourcePath(),
revision.getCommit(), parent, reader);
if (diffEntry != null) {
- FileDiff fileDiff = new FileDiff(revision.getCommit(),
+ FileDiff fileDiff = new FileDiff(revision.getRepository(),
+ revision.getCommit(),
diffEntry);
document.setDefault(revision.getRepository(), fileDiff);
}
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/blame/BlameRevision.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/blame/BlameRevision.java
index 307773f..8922fc3 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/blame/BlameRevision.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/blame/BlameRevision.java
@@ -21,11 +21,11 @@ import org.eclipse.egit.core.internal.CompareCoreUtils;
import org.eclipse.jface.text.revisions.Revision;
import org.eclipse.jface.text.source.LineRange;
import org.eclipse.jgit.diff.DiffAlgorithm;
+import org.eclipse.jgit.diff.DiffAlgorithm.SupportedAlgorithm;
import org.eclipse.jgit.diff.DiffEntry;
import org.eclipse.jgit.diff.EditList;
import org.eclipse.jgit.diff.RawText;
import org.eclipse.jgit.diff.RawTextComparator;
-import org.eclipse.jgit.diff.DiffAlgorithm.SupportedAlgorithm;
import org.eclipse.jgit.lib.AbbreviatedObjectId;
import org.eclipse.jgit.lib.ConfigConstants;
import org.eclipse.jgit.lib.Constants;
@@ -35,6 +35,7 @@ import org.eclipse.jgit.lib.PersonIdent;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.StoredConfig;
import org.eclipse.jgit.revwalk.RevCommit;
+import org.eclipse.jgit.util.LfsFactory;
import org.eclipse.swt.graphics.RGB;
/**
@@ -213,8 +214,10 @@ public class BlameRevision extends Revision {
if (diffEntry == null)
return null;
- RawText oldText = readText(diffEntry.getOldId(), reader);
- RawText newText = readText(diffEntry.getNewId(), reader);
+ RawText oldText = readText(repository, diffEntry.getOldId(), reader,
+ diffEntry.getOldPath());
+ RawText newText = readText(repository, diffEntry.getNewId(), reader,
+ diffEntry.getNewPath());
StoredConfig config = repository.getConfig();
DiffAlgorithm diffAlgorithm = DiffAlgorithm.getAlgorithm(config
@@ -231,10 +234,11 @@ public class BlameRevision extends Revision {
}
}
- private static RawText readText(AbbreviatedObjectId blobId,
- ObjectReader reader) throws IOException {
- ObjectLoader oldLoader = reader.open(blobId.toObjectId(),
- Constants.OBJ_BLOB);
+ private static RawText readText(Repository db, AbbreviatedObjectId blobId,
+ ObjectReader reader, String path) throws IOException {
+ ObjectLoader oldLoader = LfsFactory.getInstance().applySmudgeFilter(db,
+ reader.open(blobId.toObjectId(), Constants.OBJ_BLOB),
+ LfsFactory.getAttributesForPath(db, path).get(Constants.ATTR_DIFF));
return new RawText(oldLoader.getCachedBytes());
}
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 cb282cf..50a264f 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
@@ -65,6 +65,7 @@ public class DiffEditorOutlinePage extends NestedContentOutlinePage {
super.createControl(parent);
TreeViewer viewer = getTreeViewer();
viewer.setAutoExpandLevel(2);
+ viewer.setUseHashlookup(true);
viewer.setContentProvider(new DiffContentProvider());
viewer.setLabelProvider(new DiffLabelProvider());
viewer.addDoubleClickListener(
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitDocument.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitDocument.java
index 76c51ba..3ef42d6 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitDocument.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/decorators/GitDocument.java
@@ -47,6 +47,7 @@ import org.eclipse.jgit.revwalk.RevTree;
import org.eclipse.jgit.revwalk.RevWalk;
import org.eclipse.jgit.treewalk.CanonicalTreeParser;
import org.eclipse.jgit.treewalk.TreeWalk;
+import org.eclipse.jgit.util.LfsFactory;
import org.eclipse.osgi.util.NLS;
class GitDocument extends Document implements RefsChangedListener {
@@ -220,7 +221,9 @@ class GitDocument extends Document implements RefsChangedListener {
GitTraceLocation.getTrace().trace(
GitTraceLocation.QUICKDIFF.getLocation(),
"(GitDocument) compareTo: " + baseline); //$NON-NLS-1$
- ObjectLoader loader = repository.open(id, Constants.OBJ_BLOB);
+ ObjectLoader loader = LfsFactory.getInstance().applySmudgeFilter(
+ repository, repository.open(id, Constants.OBJ_BLOB),
+ tw.getAttributes().get(Constants.ATTR_DIFF));
byte[] bytes = loader.getBytes();
String charset;
charset = CompareCoreUtils.getResourceEncoding(resource);
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FileDiff.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FileDiff.java
index 9af04b5..b21f4b6 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FileDiff.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FileDiff.java
@@ -49,6 +49,7 @@ import org.eclipse.jgit.treewalk.EmptyTreeIterator;
import org.eclipse.jgit.treewalk.TreeWalk;
import org.eclipse.jgit.treewalk.filter.TreeFilter;
import org.eclipse.jgit.treewalk.filter.TreeFilterMarker;
+import org.eclipse.jgit.util.LfsFactory;
import org.eclipse.ui.model.WorkbenchAdapter;
/**
@@ -82,6 +83,8 @@ public class FileDiff extends WorkbenchAdapter {
private DiffEntry diffEntry;
+ private Repository repository;
+
static ObjectId[] trees(final RevCommit commit, final RevCommit[] parents) {
final ObjectId[] r = new ObjectId[parents.length + 1];
for (int i = 0; i < r.length - 1; i++)
@@ -152,7 +155,7 @@ public class FileDiff extends WorkbenchAdapter {
List<DiffEntry> renames = detector.compute(walk.getObjectReader(),
org.eclipse.jgit.lib.NullProgressMonitor.INSTANCE);
for (DiffEntry m : renames) {
- final FileDiff d = new FileDiff(commit, m);
+ final FileDiff d = new FileDiff(repository, commit, m);
r.add(d);
for (Iterator<DiffEntry> i = xentries.iterator(); i.hasNext();) {
DiffEntry n = i.next();
@@ -163,7 +166,7 @@ public class FileDiff extends WorkbenchAdapter {
}
}
for (DiffEntry m : xentries) {
- final FileDiff d = new FileDiff(commit, m);
+ final FileDiff d = new FileDiff(repository, commit, m);
r.add(d);
}
}
@@ -180,7 +183,8 @@ public class FileDiff extends WorkbenchAdapter {
int treeFilterMarks = treeFilterMarker.getMarks(walk);
- final FileDiffForMerges d = new FileDiffForMerges(commit,
+ final FileDiffForMerges d = new FileDiffForMerges(repository,
+ commit,
treeFilterMarks);
d.path = walk.getPathString();
int m0 = 0;
@@ -310,7 +314,10 @@ public class FileDiff extends WorkbenchAdapter {
throws IOException {
if (id.equals(ObjectId.zeroId()))
return new RawText(new byte[] {});
- ObjectLoader ldr = reader.open(id, Constants.OBJ_BLOB);
+ ObjectLoader ldr = LfsFactory.getInstance().applySmudgeFilter(repository,
+ reader.open(id, Constants.OBJ_BLOB),
+ LfsFactory.getAttributesForPath(repository, getPath())
+ .get(Constants.ATTR_DIFF));
return new RawText(ldr.getCachedBytes(Integer.MAX_VALUE));
}
@@ -406,10 +413,14 @@ public class FileDiff extends WorkbenchAdapter {
* Create a file diff for a specified {@link RevCommit} and
* {@link DiffEntry}
*
+ * @param repo
+ *
* @param c
* @param entry
*/
- public FileDiff(final RevCommit c, final DiffEntry entry) {
+ public FileDiff(final Repository repo, final RevCommit c,
+ final DiffEntry entry) {
+ repository = repo;
diffEntry = entry;
commit = c;
}
@@ -464,8 +475,9 @@ public class FileDiff extends WorkbenchAdapter {
private final int treeFilterMarks;
- private FileDiffForMerges(final RevCommit c, int treeFilterMarks) {
- super (c, null);
+ private FileDiffForMerges(final Repository repo, final RevCommit c,
+ int treeFilterMarks) {
+ super(repo, c, null);
this.treeFilterMarks = treeFilterMarks;
}
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/DialogsPreferencePage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/DialogsPreferencePage.java
index 2fc0d35..2194dcb 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/DialogsPreferencePage.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/DialogsPreferencePage.java
@@ -79,6 +79,9 @@ public class DialogsPreferencePage extends FieldEditorPreferencePage implements
UIPreferences.CLONE_WIZARD_SHOW_DETAILED_FAILURE_DIALOG,
UIText.DialogsPreferencePage_ShowCloneFailedDialog,
confirmDialogsGroup));
+ addField(new BooleanFieldEditor(UIPreferences.LFS_AUTO_CONFIGURATION,
+ UIText.DialogsPreferencePage_autoConfigureLfs,
+ confirmDialogsGroup));
updateMargins(confirmDialogsGroup);
Group infoGroup = new Group(main, SWT.SHADOW_ETCHED_IN);
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/GitPreferenceRoot.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/GitPreferenceRoot.java
index 5113a4f..bf251b0 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/GitPreferenceRoot.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/GitPreferenceRoot.java
@@ -24,6 +24,7 @@ import org.eclipse.egit.core.GitCorePreferences;
import org.eclipse.egit.ui.Activator;
import org.eclipse.egit.ui.UIPreferences;
import org.eclipse.egit.ui.internal.UIText;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.jface.preference.BooleanFieldEditor;
@@ -33,6 +34,8 @@ import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.IntegerFieldEditor;
import org.eclipse.jface.preference.StringFieldEditor;
import org.eclipse.jface.window.Window;
+import org.eclipse.jgit.util.LfsFactory;
+import org.eclipse.jgit.util.LfsFactory.LfsInstallCommand;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
@@ -250,6 +253,40 @@ public class GitPreferenceRoot extends DoublePreferencesPreferencePage
addField(new BooleanFieldEditor(UIPreferences.CLONE_WIZARD_STORE_SECURESTORE,
UIText.GitPreferenceRoot_SecureStoreUseByDefault, secureGroup));
updateMargins(secureGroup);
+
+ boolean lfsAvailable = LfsFactory.getInstance().isAvailable()
+ && LfsFactory.getInstance().getInstallCommand() != null;
+ Group lfsGroup = new Group(main, SWT.SHADOW_ETCHED_IN);
+ GridLayoutFactory.fillDefaults().applyTo(lfsGroup);
+ GridDataFactory.fillDefaults().grab(true, false).span(GROUP_SPAN, 1)
+ .applyTo(lfsGroup);
+ lfsGroup.setText(
+ lfsAvailable ? UIText.GitPreferenceRoot_lfsSupportCaption : UIText.GitPreferenceRoot_lfsSupportCaptionNotAvailable);
+ Button lfsEnable = new Button(lfsGroup, SWT.PUSH);
+ lfsEnable.setEnabled(lfsAvailable);
+ lfsEnable.setText(UIText.GitPreferenceRoot_lfsSupportInstall);
+ lfsEnable.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ // enable LFS support for user.
+ LfsInstallCommand cmd = LfsFactory.getInstance()
+ .getInstallCommand();
+ try {
+ if (cmd != null) {
+ cmd.call();
+
+ MessageDialog.openInformation(getShell(),
+ UIText.GitPreferenceRoot_lfsSupportSuccessTitle,
+ UIText.GitPreferenceRoot_lfsSupportSuccessMessage);
+ }
+ } catch (Exception ex) {
+ Activator.handleError(
+ UIText.ConfigurationChecker_installLfsCannotInstall,
+ ex, true);
+ }
+ }
+ });
+ updateMargins(lfsGroup);
}
private void updateMargins(Group group) {
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoriesViewPropertyTester.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoriesViewPropertyTester.java
index 770c0dd..0a828d7 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoriesViewPropertyTester.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/RepositoriesViewPropertyTester.java
@@ -24,6 +24,7 @@ import org.eclipse.jgit.lib.Ref;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.RepositoryState;
import org.eclipse.jgit.transport.RemoteConfig;
+import org.eclipse.jgit.util.LfsFactory;
/**
* Property Tester used for enabling/disabling of context menus in the Git
@@ -145,6 +146,13 @@ public class RepositoriesViewPropertyTester extends PropertyTester {
return parent != null
&& parent.getType() == RepositoryTreeNodeType.SUBMODULES;
}
+
+ if ("canEnableLfs".equals(property)) { //$NON-NLS-1$
+ if (LfsFactory.getInstance().isAvailable()) {
+ return !LfsFactory.getInstance().isEnabled(repository);
+ }
+ }
+
return false;
}
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/InstallLfsLocalCommand.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/InstallLfsLocalCommand.java
new file mode 100644
index 0000000..b4dc43e
--- /dev/null
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/tree/command/InstallLfsLocalCommand.java
@@ -0,0 +1,71 @@
+/******************************************************************************
+ * Copyright (c) 2018, Markus Duft <markus.duft@ssi-schaefer.com>
+ *
+ * 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.tree.command;
+
+import java.util.List;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.egit.ui.Activator;
+import org.eclipse.egit.ui.internal.UIText;
+import org.eclipse.egit.ui.internal.repository.tree.RepositoryNode;
+import org.eclipse.jgit.util.LfsFactory;
+import org.eclipse.jgit.util.LfsFactory.LfsInstallCommand;
+
+/**
+ * Command to install LFS support in selected repositories.
+ */
+public class InstallLfsLocalCommand extends
+ RepositoriesViewCommandHandler<RepositoryNode> {
+
+ /**
+ * Command id
+ */
+ public static final String ID = "org.eclipse.egit.ui.team.InstallLfsLocal"; //$NON-NLS-1$
+
+ /**
+ * Execute installation
+ */
+ @Override
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ if (!LfsFactory.getInstance().isAvailable()) {
+ return null;
+ }
+
+ // get selected nodes
+ final List<RepositoryNode> selectedNodes;
+ try {
+ selectedNodes = getSelectedNodes(event);
+ if (selectedNodes.isEmpty())
+ return null;
+ } catch (ExecutionException e) {
+ Activator.handleError(e.getMessage(), e, true);
+ return null;
+ }
+
+ for (RepositoryNode n : selectedNodes) {
+ try {
+ LfsInstallCommand cmd = LfsFactory.getInstance()
+ .getInstallCommand();
+ if (cmd != null) {
+ cmd.setRepository(n.getRepository()).call();
+ }
+ } catch (Exception e) {
+ Activator.handleError(
+ UIText.ConfigurationChecker_installLfsCannotInstall, e,
+ false);
+ }
+ }
+
+ return null;
+ }
+
+}
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 ae17af6..2094640 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
@@ -749,8 +749,6 @@ public class StagingView extends ViewPart
private ListenerHandle refsChangedListener;
- private ListenerHandle configChangedListener;
-
private LocalResourceManager resources = new LocalResourceManager(
JFaceResources.getResources());
@@ -2044,6 +2042,7 @@ public class StagingView extends ViewPart
Tree tree = toolkit.createTree(composite, SWT.FULL_SELECTION
| SWT.MULTI);
TreeViewer treeViewer = new TreeViewer(tree);
+ treeViewer.setUseHashlookup(true);
return treeViewer;
}
@@ -3721,13 +3720,6 @@ public class StagingView extends ViewPart
.addRefsChangedListener(
event -> updateRebaseButtonVisibility(repository
.getRepositoryState().isRebasing()));
- if (configChangedListener != null) {
- configChangedListener.remove();
- }
- configChangedListener = repository.getListenerList()
- .addConfigChangedListener(
- event -> asyncExec(
- () -> resetCommitMessageComponent()));
}
final StagingViewUpdate update = new StagingViewUpdate(repository,
indexDiff, null);
@@ -4281,9 +4273,6 @@ public class StagingView extends ViewPart
if (refsChangedListener != null) {
refsChangedListener.remove();
}
- if (configChangedListener != null) {
- configChangedListener.remove();
- }
if (switchRepositoriesAction != null) {
switchRepositoriesAction.dispose();
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/uitext.properties b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/uitext.properties
index 27db53e..2f4e26d 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/uitext.properties
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/uitext.properties
@@ -256,6 +256,11 @@ GitPreferenceRoot_useLogicalModel=Allow models (e.g., Java, EMF) to participate
GitPreferenceRoot_preferreMergeStrategy_label=You can select a specific merge strategy below\nto override the default JGit merge behavior for merge operations\n(merge, rebase, pull, revert, squash, stash, submodule update)
GitPreferenceRoot_preferreMergeStrategy_group=Preferred merge strategy for operations that require merges
GitPreferenceRoot_defaultMergeStrategyLabel=Default Strategy (as defined by JGit)
+GitPreferenceRoot_lfsSupportCaption=LFS support
+GitPreferenceRoot_lfsSupportCaptionNotAvailable=LFS support (not installed)
+GitPreferenceRoot_lfsSupportInstall=Enable LFS support globally (for the current user)
+GitPreferenceRoot_lfsSupportSuccessMessage=LFS support has been installed for the current user.
+GitPreferenceRoot_lfsSupportSuccessTitle=LFS configured
GitProjectPropertyPage_LabelBranch=Branch:
GitProjectPropertyPage_LabelGitDir=Git directory:
GitProjectPropertyPage_LabelId=HEAD:
@@ -1312,6 +1317,7 @@ RepositoriesViewLabelProvider_SymbolicRefNodeText=References
RepositoriesViewLabelProvider_TagsNodeText=Tags
RepositoriesViewLabelProvider_UnbornBranchText=unborn branch; will be created on commit
+DialogsPreferencePage_autoConfigureLfs=Automatically configure LFS without confirmation
DialogsPreferencePage_DetachedHeadCombo=D&etached HEAD and checkout of remote-tracking branch
DialogsPreferencePage_HideConfirmationGroupHeader=Show confirmation dialogs
DialogsPreferencePage_ShowInfoGroupHeader=Show result dialogs after git remote operations
@@ -1422,6 +1428,8 @@ user global configuration and to define the default location to store repositori
not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and\n\
EGit might behave differently since they see different configuration options.\n\
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.
+ConfigurationChecker_installLfsCannotInstall=Cannot install LFS support
+ConfigurationChecker_installLfsCannotLoadConfig=Cannot load user configuration
ConfigurationEditorComponent_ConfigLocationLabel=&Location:
ConfigurationEditorComponent_EmptyStringNotAllowed=Empty string is not allowed
ConfigurationEditorComponent_KeyColumnHeader=Key