Browse Source

Use object id provided by working tree iterator for submodules

The working tree iterator now supports providing an object id
for submodule entries and this value should be used instead
of recomputing it again in AddCommand.

Change-Id: I30082514c23fc65968bb78add5ad69a1ca95cf3a
stable-2.0
Kevin Sawicki 13 years ago
parent
commit
3734db9282
  1. 16
      org.eclipse.jgit/src/org/eclipse/jgit/api/AddCommand.java

16
org.eclipse.jgit/src/org/eclipse/jgit/api/AddCommand.java

@ -43,7 +43,6 @@
*/ */
package org.eclipse.jgit.api; package org.eclipse.jgit.api;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.Collection; import java.util.Collection;
@ -59,7 +58,6 @@ import org.eclipse.jgit.dircache.DirCacheEntry;
import org.eclipse.jgit.dircache.DirCacheIterator; import org.eclipse.jgit.dircache.DirCacheIterator;
import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.FileMode; import org.eclipse.jgit.lib.FileMode;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.ObjectInserter; import org.eclipse.jgit.lib.ObjectInserter;
import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.treewalk.FileTreeIterator; import org.eclipse.jgit.treewalk.FileTreeIterator;
@ -185,20 +183,10 @@ public class AddCommand extends GitCommand<DirCache> {
} finally { } finally {
in.close(); in.close();
} }
} else
entry.setObjectId(f.getEntryObjectId());
builder.add(entry); builder.add(entry);
lastAddedFile = path; lastAddedFile = path;
} else {
Repository subRepo = Git.open(
new File(repo.getWorkTree(), path))
.getRepository();
ObjectId subRepoHead = subRepo
.resolve(Constants.HEAD);
if (subRepoHead != null) {
entry.setObjectId(subRepoHead);
builder.add(entry);
lastAddedFile = path;
}
}
} else { } else {
builder.add(c.getDirCacheEntry()); builder.add(c.getDirCacheEntry());
} }

Loading…
Cancel
Save