Merge branch 'stable-5.1'

* stable-5.1:
  Prepare 5.1.3-SNAPSHOT builds
  EGit v5.1.2.201810061102-r
  Don't use virtual memory mapping in WindowCache on Windows

Change-Id: I0fbe5e117691a13a1e6bdbc89d690aff42a11a2f
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/GitCorePreferenceInitializer.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/GitCorePreferenceInitializer.java
index 4aefd8a..3a2f121 100644
--- a/org.eclipse.egit.core/src/org/eclipse/egit/core/GitCorePreferenceInitializer.java
+++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/GitCorePreferenceInitializer.java
@@ -15,6 +15,7 @@
 import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
 import org.eclipse.core.runtime.preferences.DefaultScope;
 import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.jgit.util.SystemReader;
 
 /** Initializes plugin preferences with default values. */
 public class GitCorePreferenceInitializer extends AbstractPreferenceInitializer {
@@ -26,7 +27,8 @@
 
 		p.putInt(GitCorePreferences.core_packedGitWindowSize, 8 * 1024);
 		p.putInt(GitCorePreferences.core_packedGitLimit, 10 * MB);
-		p.putBoolean(GitCorePreferences.core_packedGitMMAP, true);
+		p.putBoolean(GitCorePreferences.core_packedGitMMAP,
+				!SystemReader.getInstance().isWindows());
 		p.putInt(GitCorePreferences.core_deltaBaseCacheLimit, 10 * MB);
 		p.putInt(GitCorePreferences.core_streamFileThreshold, 50 * MB);
 		p.putBoolean(GitCorePreferences.core_autoShareProjects, true);
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/project/GitProjectData.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/project/GitProjectData.java
index e66aeb8..507c37f 100644
--- a/org.eclipse.egit.core/src/org/eclipse/egit/core/project/GitProjectData.java
+++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/project/GitProjectData.java
@@ -63,6 +63,7 @@
 import org.eclipse.jgit.storage.file.WindowCacheConfig;
 import org.eclipse.jgit.util.FS;
 import org.eclipse.jgit.util.FileUtils;
+import org.eclipse.jgit.util.SystemReader;
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.team.core.RepositoryProvider;
 import org.eclipse.team.core.TeamException;
@@ -416,7 +417,14 @@
 		IEclipsePreferences p = InstanceScope.INSTANCE.getNode(Activator.getPluginId());
 		c.setPackedGitLimit(p.getInt(GitCorePreferences.core_packedGitLimit, d.getInt(GitCorePreferences.core_packedGitLimit, 0)));
 		c.setPackedGitWindowSize(p.getInt(GitCorePreferences.core_packedGitWindowSize, d.getInt(GitCorePreferences.core_packedGitWindowSize, 0)));
-		c.setPackedGitMMAP(p.getBoolean(GitCorePreferences.core_packedGitMMAP, d.getBoolean(GitCorePreferences.core_packedGitMMAP, false)));
+		if (SystemReader.getInstance().isWindows()) {
+			c.setPackedGitMMAP(false);
+		} else {
+			c.setPackedGitMMAP(
+					p.getBoolean(GitCorePreferences.core_packedGitMMAP,
+							d.getBoolean(GitCorePreferences.core_packedGitMMAP,
+									false)));
+		}
 		c.setDeltaBaseCacheLimit(p.getInt(GitCorePreferences.core_deltaBaseCacheLimit, d.getInt(GitCorePreferences.core_deltaBaseCacheLimit, 0)));
 		c.setStreamFileThreshold(p.getInt(GitCorePreferences.core_streamFileThreshold, d.getInt(GitCorePreferences.core_streamFileThreshold, 0)));
 		c.install();
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/WindowCachePreferencePage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/WindowCachePreferencePage.java
index ce3c228..2bf360a 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/WindowCachePreferencePage.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/WindowCachePreferencePage.java
@@ -17,6 +17,7 @@
 import org.eclipse.egit.ui.internal.UIText;
 import org.eclipse.jface.preference.BooleanFieldEditor;
 import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jgit.util.SystemReader;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPreferencePage;
 import org.eclipse.ui.preferences.ScopedPreferenceStore;
@@ -63,9 +64,13 @@
 				UIText.WindowCachePreferencePage_streamFileThreshold,
 				getFieldEditorParent(), 10 * MB, 1 * GB));
 
-		addField(new BooleanFieldEditor(GitCorePreferences.core_packedGitMMAP,
-				UIText.WindowCachePreferencePage_packedGitMMAP,
-				getFieldEditorParent()));
+		if (!SystemReader.getInstance().isWindows()) {
+			BooleanFieldEditor mmapEditor = new BooleanFieldEditor(
+					GitCorePreferences.core_packedGitMMAP,
+					UIText.WindowCachePreferencePage_packedGitMMAP,
+					getFieldEditorParent());
+			addField(mmapEditor);
+		}
 	}
 
 	@Override