Browse Source

Merge "Break the dependency on RevObject when creating a newObjectToPack()."

stable-3.0
Shawn Pearce 12 years ago committed by Gerrit Code Review @ Eclipse.org
parent
commit
234b4e0432
  1. 2
      org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/ShowPackDelta.java
  2. 6
      org.eclipse.jgit/src/org/eclipse/jgit/storage/dfs/DfsObjectToPack.java
  3. 5
      org.eclipse.jgit/src/org/eclipse/jgit/storage/dfs/DfsReader.java
  4. 6
      org.eclipse.jgit/src/org/eclipse/jgit/storage/file/LocalObjectToPack.java
  5. 5
      org.eclipse.jgit/src/org/eclipse/jgit/storage/file/WindowCursor.java
  6. 12
      org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/ObjectReuseAsIs.java
  7. 13
      org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/ObjectToPack.java
  8. 11
      org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java

2
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/ShowPackDelta.java

@ -94,7 +94,7 @@ class ShowPackDelta extends TextBuiltin {
throws IOException, MissingObjectException,
StoredObjectRepresentationNotAvailableException {
ObjectReuseAsIs asis = (ObjectReuseAsIs) reader;
ObjectToPack target = asis.newObjectToPack(obj);
ObjectToPack target = asis.newObjectToPack(obj, obj.getType());
PackWriter pw = new PackWriter(reader) {
@Override

6
org.eclipse.jgit/src/org/eclipse/jgit/storage/dfs/DfsObjectToPack.java

@ -43,7 +43,7 @@
package org.eclipse.jgit.storage.dfs;
import org.eclipse.jgit.revwalk.RevObject;
import org.eclipse.jgit.lib.AnyObjectId;
import org.eclipse.jgit.storage.pack.ObjectToPack;
import org.eclipse.jgit.storage.pack.StoredObjectRepresentation;
@ -61,8 +61,8 @@ class DfsObjectToPack extends ObjectToPack {
/** Length of the data section of the object. */
long length;
DfsObjectToPack(RevObject obj) {
super(obj);
DfsObjectToPack(AnyObjectId src, final int type) {
super(src, type);
}
@Override

5
org.eclipse.jgit/src/org/eclipse/jgit/storage/dfs/DfsReader.java

@ -83,7 +83,6 @@ import org.eclipse.jgit.lib.ObjectReader;
import org.eclipse.jgit.lib.ProgressMonitor;
import org.eclipse.jgit.revwalk.ObjectWalk;
import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.revwalk.RevObject;
import org.eclipse.jgit.revwalk.RevWalk;
import org.eclipse.jgit.storage.pack.CachedPack;
import org.eclipse.jgit.storage.pack.ObjectReuseAsIs;
@ -433,8 +432,8 @@ public final class DfsReader extends ObjectReader implements ObjectReuseAsIs {
throw new MissingObjectException(objectId.copy(), typeHint);
}
public DfsObjectToPack newObjectToPack(RevObject obj) {
return new DfsObjectToPack(obj);
public DfsObjectToPack newObjectToPack(AnyObjectId objectId, int type) {
return new DfsObjectToPack(objectId, type);
}
private static final Comparator<DfsObjectRepresentation> REPRESENTATION_SORT = new Comparator<DfsObjectRepresentation>() {

6
org.eclipse.jgit/src/org/eclipse/jgit/storage/file/LocalObjectToPack.java

@ -43,7 +43,7 @@
package org.eclipse.jgit.storage.file;
import org.eclipse.jgit.revwalk.RevObject;
import org.eclipse.jgit.lib.AnyObjectId;
import org.eclipse.jgit.storage.pack.ObjectToPack;
import org.eclipse.jgit.storage.pack.StoredObjectRepresentation;
@ -58,8 +58,8 @@ class LocalObjectToPack extends ObjectToPack {
/** Length of the data section of the object. */
long length;
LocalObjectToPack(RevObject obj) {
super(obj);
LocalObjectToPack(AnyObjectId src, final int type) {
super(src, type);
}
@Override

5
org.eclipse.jgit/src/org/eclipse/jgit/storage/file/WindowCursor.java

@ -68,7 +68,6 @@ import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.ObjectLoader;
import org.eclipse.jgit.lib.ObjectReader;
import org.eclipse.jgit.lib.ProgressMonitor;
import org.eclipse.jgit.revwalk.RevObject;
import org.eclipse.jgit.storage.pack.CachedPack;
import org.eclipse.jgit.storage.pack.ObjectReuseAsIs;
import org.eclipse.jgit.storage.pack.ObjectToPack;
@ -148,8 +147,8 @@ final class WindowCursor extends ObjectReader implements ObjectReuseAsIs {
return sz;
}
public LocalObjectToPack newObjectToPack(RevObject obj) {
return new LocalObjectToPack(obj);
public LocalObjectToPack newObjectToPack(AnyObjectId objectId, int type) {
return new LocalObjectToPack(objectId, type);
}
public void selectObjectRepresentation(PackWriter packer,

12
org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/ObjectReuseAsIs.java

@ -49,9 +49,9 @@ import java.util.List;
import org.eclipse.jgit.errors.MissingObjectException;
import org.eclipse.jgit.errors.StoredObjectRepresentationNotAvailableException;
import org.eclipse.jgit.lib.AnyObjectId;
import org.eclipse.jgit.lib.ObjectReader;
import org.eclipse.jgit.lib.ProgressMonitor;
import org.eclipse.jgit.revwalk.RevObject;
/**
* Extension of {@link ObjectReader} that supports reusing objects in packs.
@ -71,13 +71,13 @@ public interface ObjectReuseAsIs {
* object state, such as to remember what file and offset contains the
* object's pack encoded data.
*
* @param obj
* identity of the object that will be packed. The object's
* parsed status is undefined here. Implementers must not rely on
* the object being parsed.
* @param objectId
* the id of the object that will be packed.
* @param type
* the Git type of the object that will be packed.
* @return a new instance for this object.
*/
public ObjectToPack newObjectToPack(RevObject obj);
public ObjectToPack newObjectToPack(AnyObjectId objectId, int type);
/**
* Select the best object representation for a packer.

13
org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/ObjectToPack.java

@ -47,7 +47,6 @@ package org.eclipse.jgit.storage.pack;
import org.eclipse.jgit.lib.AnyObjectId;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.revwalk.RevObject;
import org.eclipse.jgit.transport.PackedObjectInfo;
/**
@ -120,18 +119,6 @@ public class ObjectToPack extends PackedObjectInfo {
flags = type << TYPE_SHIFT;
}
/**
* Construct for the specified object.
*
* @param obj
* identity of the object that will be packed. The object's
* parsed status is undefined here. Implementers must not rely on
* the object being parsed.
*/
public ObjectToPack(RevObject obj) {
this(obj, obj.getType());
}
/**
* @return delta base object id if object is going to be packed in delta
* representation; null otherwise - if going to be packed as a

11
org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java

@ -1826,13 +1826,18 @@ public class PackWriter {
}
private void addObject(final RevObject object, final int pathHashCode) {
addObject(object, object.getType(), pathHashCode);
}
private void addObject(
final AnyObjectId src, final int type, final int pathHashCode) {
final ObjectToPack otp;
if (reuseSupport != null)
otp = reuseSupport.newObjectToPack(object);
otp = reuseSupport.newObjectToPack(src, type);
else
otp = new ObjectToPack(object);
otp = new ObjectToPack(src, type);
otp.setPathHash(pathHashCode);
objectsLists[object.getType()].add(otp);
objectsLists[type].add(otp);
objectsMap.add(otp);
}

Loading…
Cancel
Save