If the local receiving repository has disabled the use of delta base offset, for example to retain compatibility with older versions of Git that predate OFS_DELTA, we shouldn't ask for ofs-delta support when we obtain a pack from the remote server. Signed-off-by: Shawn O. Pearce <spearce@xxxxxxxxxxx> --- I just realized we don't honor this during fetch, and we should. .../jgit/transport/BasePackFetchConnection.java | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/BasePackFetchConnection.java b/org.spearce.jgit/src/org/spearce/jgit/transport/BasePackFetchConnection.java index b75e0ef..b51ce23 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/transport/BasePackFetchConnection.java +++ b/org.spearce.jgit/src/org/spearce/jgit/transport/BasePackFetchConnection.java @@ -49,6 +49,7 @@ import org.spearce.jgit.lib.ObjectId; import org.spearce.jgit.lib.ProgressMonitor; import org.spearce.jgit.lib.Ref; +import org.spearce.jgit.lib.RepositoryConfig; import org.spearce.jgit.revwalk.RevCommit; import org.spearce.jgit.revwalk.RevCommitList; import org.spearce.jgit.revwalk.RevFlag; @@ -126,10 +127,15 @@ private boolean includeTags; + private boolean allowOfsDelta; + BasePackFetchConnection(final PackTransport packTransport) { super(packTransport); + + final RepositoryConfig cfg = local.getConfig(); includeTags = transport.getTagOpt() != TagOpt.NO_TAGS; thinPack = transport.isFetchThin(); + allowOfsDelta = cfg.getBoolean("repack", "usedeltabaseoffset", true); walk = new RevWalk(local); reachableCommits = new RevCommitList<RevCommit>(); @@ -282,7 +288,8 @@ private String enableCapabilities() { final StringBuilder line = new StringBuilder(); if (includeTags) includeTags = wantCapability(line, OPTION_INCLUDE_TAG); - wantCapability(line, OPTION_OFS_DELTA); + if (allowOfsDelta) + wantCapability(line, OPTION_OFS_DELTA); multiAck = wantCapability(line, OPTION_MULTI_ACK); if (thinPack) thinPack = wantCapability(line, OPTION_THIN_PACK); -- 1.6.3.rc3.212.g8c698 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html