Просмотр исходного кода

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

tags/v3.0.0.201305080800-m7
Shawn Pearce 11 лет назад
Родитель
Сommit
234b4e0432

+ 1
- 1
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

+ 3
- 3
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

+ 2
- 3
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>() {

+ 3
- 3
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

+ 2
- 3
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,

+ 6
- 6
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.

+ 0
- 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

+ 8
- 3
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);
}


Загрузка…
Отмена
Сохранить