Browse Source

ReceivePack: Remove need new,base object id properties

These are more like internal implementation details of how IndexPack
works with ReceivePack to validate the incoming object stream.
Callers who are embedding the ReceivePack logic in their own
application don't really need to know the details of which objects
were used for delta bases in the incoming thin pack, or exactly
which objects were newly transmitted.

Hide these from the API, as exposing them through ReceivePack was
an early mistake.

Change-Id: I7ee44a314fa19e6a8520472ce05de92c324ad43e
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
stable-0.8
Shawn O. Pearce 15 years ago
parent
commit
329a0e1689
  1. 53
      org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java

53
org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java

@ -184,10 +184,6 @@ public class ReceivePack {
/** Lock around the received pack file, while updating refs. */ /** Lock around the received pack file, while updating refs. */
private PackLock packLock; private PackLock packLock;
private boolean needNewObjectIds;
private boolean needBaseObjectIds;
private boolean ensureObjectsProvidedVisible; private boolean ensureObjectsProvidedVisible;
/** /**
@ -255,45 +251,6 @@ public class ReceivePack {
return refs; return refs;
} }
/**
* Configure this receive pack instance to keep track of the objects assumed
* for delta bases.
* <p>
* By default a receive pack doesn't save the objects that were used as
* delta bases. Setting this flag to {@code true} will allow the caller to
* use {@link #getBaseObjectIds()} to retrieve that list.
*
* @param b {@code true} to enable keeping track of delta bases.
*/
public void setNeedBaseObjectIds(boolean b) {
this.needBaseObjectIds = b;
}
/**
* @return the set of objects the incoming pack assumed for delta purposes
*/
public final Set<ObjectId> getBaseObjectIds() {
return ip.getBaseObjectIds();
}
/**
* Configure this receive pack instance to keep track of new objects.
* <p>
* By default a receive pack doesn't save the new objects that were created
* when it was instantiated. Setting this flag to {@code true} allows the
* caller to use {@link #getNewObjectIds()} to retrieve that list.
*
* @param b {@code true} to enable keeping track of new objects.
*/
public void setNeedNewObjectIds(boolean b) {
this.needNewObjectIds = b;
}
/** @return the new objects that were sent by the user */
public final Set<ObjectId> getNewObjectIds() {
return ip.getNewObjectIds();
}
/** /**
* Configure this receive pack instance to ensure that the provided * Configure this receive pack instance to ensure that the provided
* objects are visible to the user. * objects are visible to the user.
@ -804,9 +761,8 @@ public class ReceivePack {
ip = IndexPack.create(db, rawIn); ip = IndexPack.create(db, rawIn);
ip.setFixThin(true); ip.setFixThin(true);
ip.setNeedNewObjectIds(needNewObjectIds || ensureObjectsProvidedVisible); ip.setNeedNewObjectIds(ensureObjectsProvidedVisible);
ip.setNeedBaseObjectIds(needBaseObjectIds ip.setNeedBaseObjectIds(ensureObjectsProvidedVisible);
|| ensureObjectsProvidedVisible);
ip.setObjectChecking(isCheckReceivedObjects()); ip.setObjectChecking(isCheckReceivedObjects());
ip.index(NullProgressMonitor.INSTANCE); ip.index(NullProgressMonitor.INSTANCE);
@ -823,7 +779,7 @@ public class ReceivePack {
final Set<ObjectId> baseObjects; final Set<ObjectId> baseObjects;
if (ensureObjectsProvidedVisible) if (ensureObjectsProvidedVisible)
baseObjects = getBaseObjectIds(); baseObjects = ip.getBaseObjectIds();
else else
baseObjects = Collections.emptySet(); baseObjects = Collections.emptySet();
@ -857,9 +813,8 @@ public class ReceivePack {
if (!b.has(RevFlag.UNINTERESTING)) if (!b.has(RevFlag.UNINTERESTING))
throw new MissingObjectException(b, b.getType()); throw new MissingObjectException(b, b.getType());
} }
for (ObjectId id : getNewObjectIds()) { for (ObjectId id : ip.getNewObjectIds())
provided.add(id); provided.add(id);
}
} }
RevCommit c; RevCommit c;

Loading…
Cancel
Save