Merge changes Ib0d8c294,Idfb83482
* changes: Shallow fetch: Pass along "shallow"s in unparsed-wants case, too Shallow fetch: Pass a DepthWalk to PackWriter Change-Id: I7d1c3b4d0b7ebc254b53404d1618522b0174ac23
This commit is contained in:
commit
3b0b7677ff
|
@ -710,11 +710,32 @@ public void preparePack(@NonNull Iterator<RevObject> objectsSource)
|
||||||
public void preparePack(ProgressMonitor countingMonitor,
|
public void preparePack(ProgressMonitor countingMonitor,
|
||||||
@NonNull Set<? extends ObjectId> want,
|
@NonNull Set<? extends ObjectId> want,
|
||||||
@NonNull Set<? extends ObjectId> have) throws IOException {
|
@NonNull Set<? extends ObjectId> have) throws IOException {
|
||||||
|
preparePack(countingMonitor,
|
||||||
|
want, have, Collections.<ObjectId> emptySet());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prepare the list of objects to be written to the pack stream.
|
||||||
|
* <p>
|
||||||
|
* Like {@link #preparePack(ProgressMonitor, Set, Set)} but also allows
|
||||||
|
* specifying commits that should not be walked past ("shallow" commits).
|
||||||
|
* The caller is responsible for filtering out commits that should not
|
||||||
|
* be shallow any more ("unshallow" commits as in {@link #setShallowPack})
|
||||||
|
* from the shallow set.
|
||||||
|
*
|
||||||
|
* @since 4.5
|
||||||
|
*/
|
||||||
|
public void preparePack(ProgressMonitor countingMonitor,
|
||||||
|
@NonNull Set<? extends ObjectId> want,
|
||||||
|
@NonNull Set<? extends ObjectId> have,
|
||||||
|
@NonNull Set<? extends ObjectId> shallow) throws IOException {
|
||||||
ObjectWalk ow;
|
ObjectWalk ow;
|
||||||
if (shallowPack)
|
if (shallowPack) {
|
||||||
ow = new DepthWalk.ObjectWalk(reader, depth - 1);
|
ow = new DepthWalk.ObjectWalk(reader, depth - 1);
|
||||||
else
|
} else {
|
||||||
ow = new ObjectWalk(reader);
|
ow = new ObjectWalk(reader);
|
||||||
|
}
|
||||||
|
ow.assumeShallow(shallow);
|
||||||
preparePack(countingMonitor, ow, want, have);
|
preparePack(countingMonitor, ow, want, have);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1493,16 +1493,19 @@ else if (ref.getName().startsWith(Constants.R_HEADS))
|
||||||
pw.setTagTargets(tagTargets);
|
pw.setTagTargets(tagTargets);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (depth > 0)
|
|
||||||
pw.setShallowPack(depth, unshallowCommits);
|
|
||||||
|
|
||||||
RevWalk rw = walk;
|
RevWalk rw = walk;
|
||||||
|
if (depth > 0) {
|
||||||
|
pw.setShallowPack(depth, unshallowCommits);
|
||||||
|
rw = new DepthWalk.RevWalk(walk.getObjectReader(), depth - 1);
|
||||||
|
rw.assumeShallow(clientShallowCommits);
|
||||||
|
}
|
||||||
|
|
||||||
if (wantAll.isEmpty()) {
|
if (wantAll.isEmpty()) {
|
||||||
pw.preparePack(pm, wantIds, commonBase);
|
pw.preparePack(pm, wantIds, commonBase, clientShallowCommits);
|
||||||
} else {
|
} else {
|
||||||
walk.reset();
|
walk.reset();
|
||||||
|
|
||||||
ObjectWalk ow = walk.toObjectWalkWithSameObjects();
|
ObjectWalk ow = rw.toObjectWalkWithSameObjects();
|
||||||
pw.preparePack(pm, ow, wantAll, commonBase);
|
pw.preparePack(pm, ow, wantAll, commonBase);
|
||||||
rw = ow;
|
rw = ow;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue