Merge changes Ideaefd51,I6c347393

* changes:
  Reapply "Create util class for work tree updating in both filesystem and index."
  ResolveMerger: add coverage for inCore file => directory transition
diff --git a/org.eclipse.jgit/.settings/.api_filters b/org.eclipse.jgit/.settings/.api_filters
index 4af7adc..1c283e7 100644
--- a/org.eclipse.jgit/.settings/.api_filters
+++ b/org.eclipse.jgit/.settings/.api_filters
@@ -9,20 +9,6 @@
             </message_arguments>
         </filter>
     </resource>
-    <resource path="src/org/eclipse/jgit/lib/ObjectDatabase.java" type="org.eclipse.jgit.lib.ObjectDatabase">
-        <filter id="336695337">
-            <message_arguments>
-                <message_argument value="org.eclipse.jgit.lib.ObjectDatabase"/>
-                <message_argument value="getShallowCommits()"/>
-            </message_arguments>
-        </filter>
-        <filter id="336695337">
-            <message_arguments>
-                <message_argument value="org.eclipse.jgit.lib.ObjectDatabase"/>
-                <message_argument value="setShallowCommits(Set&lt;ObjectId&gt;)"/>
-            </message_arguments>
-        </filter>
-    </resource>
     <resource path="src/org/eclipse/jgit/lib/TypedConfigGetter.java" type="org.eclipse.jgit.lib.TypedConfigGetter">
         <filter id="403767336">
             <message_arguments>
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjDatabase.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjDatabase.java
index c50e038..46ec87d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjDatabase.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjDatabase.java
@@ -29,7 +29,6 @@
 import org.eclipse.jgit.internal.storage.pack.PackExt;
 import org.eclipse.jgit.lib.AnyObjectId;
 import org.eclipse.jgit.lib.ObjectDatabase;
-import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.ObjectInserter;
 import org.eclipse.jgit.lib.ObjectReader;
 
@@ -58,8 +57,6 @@ public void markDirty() {
 		}
 	};
 
-	private static final Set<ObjectId> shallowCommits = Collections.emptySet();
-
 	/**
 	 * Sources for a pack file.
 	 * <p>
@@ -507,19 +504,6 @@ protected abstract ReadableChannel openFile(
 	protected abstract DfsOutputStream writeFile(
 			DfsPackDescription desc, PackExt ext) throws IOException;
 
-	@Override
-	public Set<ObjectId> getShallowCommits() throws IOException {
-		return shallowCommits;
-	}
-
-	@Override
-	public void setShallowCommits(Set<ObjectId> shallowCommits) {
-		if (!shallowCommits.isEmpty()) {
-			throw new UnsupportedOperationException(
-					"Shallow commits expected to be empty.");
-		}
-	}
-
 	void addPack(DfsPackFile newPack) throws IOException {
 		PackList o, n;
 		do {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectDatabase.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectDatabase.java
index 1c0f436..a39766c 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectDatabase.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectDatabase.java
@@ -11,6 +11,7 @@
 package org.eclipse.jgit.lib;
 
 import java.io.IOException;
+import java.util.Collections;
 import java.util.Set;
 
 import org.eclipse.jgit.errors.IncorrectObjectTypeException;
@@ -23,6 +24,9 @@
  * {@link org.eclipse.jgit.lib.ObjectId}.
  */
 public abstract class ObjectDatabase implements AutoCloseable {
+
+	private static final Set<ObjectId> shallowCommits = Collections.emptySet();
+
 	/**
 	 * Initialize a new database instance for access.
 	 */
@@ -79,7 +83,10 @@ public void create() throws IOException {
 	 *
 	 * @since 6.3
 	 */
-	public abstract Set<ObjectId> getShallowCommits() throws IOException;
+	public Set<ObjectId> getShallowCommits() throws IOException {
+		return shallowCommits;
+	}
+
 
 	/**
 	 * Update the shallow commits of the current repository
@@ -90,7 +97,13 @@ public void create() throws IOException {
 	 *
 	 * @since 6.3
 	 */
-	public abstract void setShallowCommits(Set<ObjectId> shallowCommits) throws IOException;
+	public void setShallowCommits(Set<ObjectId> shallowCommits)
+			throws IOException {
+		if (!shallowCommits.isEmpty()) {
+			throw new UnsupportedOperationException(
+					"Shallow commits expected to be empty."); //$NON-NLS-1$
+		}
+	}
 
 	/**
 	 * Close any resources held by this database.