Browse Source

Merge "Deprecate Repository#hasObject"

tags/v5.3.0.201901161700-m1
Jonathan Nieder 5 years ago
parent
commit
752d5547e4
18 changed files with 146 additions and 131 deletions
  1. 4
    4
      org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DumbClientDumbServerTest.java
  2. 4
    4
      org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DumbClientSmartServerTest.java
  3. 1
    1
      org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HookMessageTest.java
  4. 6
    6
      org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerSslTest.java
  5. 21
    21
      org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerTest.java
  6. 4
    4
      org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcBranchPrunedTest.java
  7. 6
    6
      org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcPruneNonReferencedTest.java
  8. 3
    3
      org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcTagTest.java
  9. 4
    4
      org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/ObjectDirectoryTest.java
  10. 1
    1
      org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PackParserTest.java
  11. 1
    1
      org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/ReceivePackAdvertiseRefsHookTest.java
  12. 67
    67
      org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/UploadPackTest.java
  13. 2
    1
      org.eclipse.jgit/src/org/eclipse/jgit/api/FetchCommand.java
  14. 2
    0
      org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java
  15. 1
    1
      org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackPushConnection.java
  16. 1
    1
      org.eclipse.jgit/src/org/eclipse/jgit/transport/BaseReceivePack.java
  17. 14
    2
      org.eclipse.jgit/src/org/eclipse/jgit/transport/FetchProcess.java
  18. 4
    4
      org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkFetchConnection.java

+ 4
- 4
org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DumbClientDumbServerTest.java View File

@@ -194,13 +194,13 @@ public class DumbClientDumbServerTest extends HttpTestCase {
@Test
public void testInitialClone_Loose() throws Exception {
Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

try (Transport t = Transport.open(dst, remoteURI)) {
t.fetch(NullProgressMonitor.INSTANCE, mirror(master));
}

assertTrue(dst.hasObject(A_txt));
assertTrue(dst.getObjectDatabase().has(A_txt));
assertEquals(B, dst.exactRef(master).getObjectId());
fsck(dst, B);

@@ -216,13 +216,13 @@ public class DumbClientDumbServerTest extends HttpTestCase {
new TestRepository<>(remoteRepository).packAndPrune();

Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

try (Transport t = Transport.open(dst, remoteURI)) {
t.fetch(NullProgressMonitor.INSTANCE, mirror(master));
}

assertTrue(dst.hasObject(A_txt));
assertTrue(dst.getObjectDatabase().has(A_txt));
assertEquals(B, dst.exactRef(master).getObjectId());
fsck(dst, B);


+ 4
- 4
org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DumbClientSmartServerTest.java View File

@@ -193,14 +193,14 @@ public class DumbClientSmartServerTest extends HttpTestCase {
@Test
public void testInitialClone_Small() throws Exception {
Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

try (Transport t = Transport.open(dst, remoteURI)) {
((TransportHttp) t).setUseSmartHttp(false);
t.fetch(NullProgressMonitor.INSTANCE, mirror(master));
}

assertTrue(dst.hasObject(A_txt));
assertTrue(dst.getObjectDatabase().has(A_txt));
assertEquals(B, dst.exactRef(master).getObjectId());
fsck(dst, B);

@@ -218,14 +218,14 @@ public class DumbClientSmartServerTest extends HttpTestCase {
new TestRepository<>(remoteRepository).packAndPrune();

Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

try (Transport t = Transport.open(dst, remoteURI)) {
((TransportHttp) t).setUseSmartHttp(false);
t.fetch(NullProgressMonitor.INSTANCE, mirror(master));
}

assertTrue(dst.hasObject(A_txt));
assertTrue(dst.getObjectDatabase().has(A_txt));
assertEquals(B, dst.exactRef(master).getObjectId());
fsck(dst, B);


+ 1
- 1
org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HookMessageTest.java View File

@@ -163,7 +163,7 @@ public class HookMessageTest extends HttpTestCase {
.singleton(update));
}

assertTrue(remoteRepository.hasObject(Q_txt));
assertTrue(remoteRepository.getObjectDatabase().has(Q_txt));
assertNotNull("has " + dstName, remoteRepository.exactRef(dstName));
assertEquals(Q, remoteRepository.exactRef(dstName).getObjectId());
fsck(remoteRepository, Q);

+ 6
- 6
org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerSslTest.java View File

@@ -275,13 +275,13 @@ public class SmartClientSmartServerSslTest extends HttpTestCase {
@Test
public void testInitialClone_ViaHttps() throws Exception {
Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

try (Transport t = Transport.open(dst, secureURI)) {
t.setCredentialsProvider(testCredentials);
t.fetch(NullProgressMonitor.INSTANCE, mirror(master));
}
assertTrue(dst.hasObject(A_txt));
assertTrue(dst.getObjectDatabase().has(A_txt));
assertEquals(B, dst.exactRef(master).getObjectId());
fsck(dst, B);

@@ -292,14 +292,14 @@ public class SmartClientSmartServerSslTest extends HttpTestCase {
@Test
public void testInitialClone_RedirectToHttps() throws Exception {
Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

URIish cloneFrom = extendPath(remoteURI, "/https");
try (Transport t = Transport.open(dst, cloneFrom)) {
t.setCredentialsProvider(testCredentials);
t.fetch(NullProgressMonitor.INSTANCE, mirror(master));
}
assertTrue(dst.hasObject(A_txt));
assertTrue(dst.getObjectDatabase().has(A_txt));
assertEquals(B, dst.exactRef(master).getObjectId());
fsck(dst, B);

@@ -310,7 +310,7 @@ public class SmartClientSmartServerSslTest extends HttpTestCase {
@Test
public void testInitialClone_RedirectBackToHttp() throws Exception {
Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

URIish cloneFrom = extendPath(secureURI, "/back");
try (Transport t = Transport.open(dst, cloneFrom)) {
@@ -325,7 +325,7 @@ public class SmartClientSmartServerSslTest extends HttpTestCase {
@Test
public void testInitialClone_SslFailure() throws Exception {
Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

try (Transport t = Transport.open(dst, secureURI)) {
// Set a credentials provider that doesn't handle questions

+ 21
- 21
org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerTest.java View File

@@ -455,13 +455,13 @@ public class SmartClientSmartServerTest extends HttpTestCase {
@Test
public void testInitialClone_Small() throws Exception {
Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

try (Transport t = Transport.open(dst, remoteURI)) {
t.fetch(NullProgressMonitor.INSTANCE, mirror(master));
}

assertTrue(dst.hasObject(A_txt));
assertTrue(dst.getObjectDatabase().has(A_txt));
assertEquals(B, dst.exactRef(master).getObjectId());
fsck(dst, B);

@@ -495,7 +495,7 @@ public class SmartClientSmartServerTest extends HttpTestCase {
private void initialClone_Redirect(int nofRedirects, int code)
throws Exception {
Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

URIish cloneFrom = redirectURI;
if (code != 301 || nofRedirects > 1) {
@@ -506,7 +506,7 @@ public class SmartClientSmartServerTest extends HttpTestCase {
t.fetch(NullProgressMonitor.INSTANCE, mirror(master));
}

assertTrue(dst.hasObject(A_txt));
assertTrue(dst.getObjectDatabase().has(A_txt));
assertEquals(B, dst.exactRef(master).getObjectId());
fsck(dst, B);

@@ -584,7 +584,7 @@ public class SmartClientSmartServerTest extends HttpTestCase {
userConfig.setInt("http", null, "maxRedirects", 3);
userConfig.save();
Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

URIish cloneFrom = extendPath(redirectURI, "/response/4/302");
String remoteUri = cloneFrom.toString();
@@ -606,7 +606,7 @@ public class SmartClientSmartServerTest extends HttpTestCase {
@Test
public void testInitialClone_RedirectLoop() throws Exception {
Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

URIish cloneFrom = extendPath(redirectURI, "/loop");
try (Transport t = Transport.open(dst, cloneFrom)) {
@@ -624,14 +624,14 @@ public class SmartClientSmartServerTest extends HttpTestCase {
userConfig.setString("http", null, "followRedirects", "true");
userConfig.save();
Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

URIish cloneFrom = extendPath(remoteURI, "/post");
try (Transport t = Transport.open(dst, cloneFrom)) {
t.fetch(NullProgressMonitor.INSTANCE, mirror(master));
}

assertTrue(dst.hasObject(A_txt));
assertTrue(dst.getObjectDatabase().has(A_txt));
assertEquals(B, dst.exactRef(master).getObjectId());
fsck(dst, B);

@@ -669,7 +669,7 @@ public class SmartClientSmartServerTest extends HttpTestCase {
@Test
public void testInitialClone_RedirectOnPostForbidden() throws Exception {
Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

URIish cloneFrom = extendPath(remoteURI, "/post");
try (Transport t = Transport.open(dst, cloneFrom)) {
@@ -688,7 +688,7 @@ public class SmartClientSmartServerTest extends HttpTestCase {
userConfig.save();

Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

try (Transport t = Transport.open(dst, redirectURI)) {
t.fetch(NullProgressMonitor.INSTANCE, mirror(master));
@@ -702,14 +702,14 @@ public class SmartClientSmartServerTest extends HttpTestCase {
@Test
public void testInitialClone_WithAuthentication() throws Exception {
Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

try (Transport t = Transport.open(dst, authURI)) {
t.setCredentialsProvider(testCredentials);
t.fetch(NullProgressMonitor.INSTANCE, mirror(master));
}

assertTrue(dst.hasObject(A_txt));
assertTrue(dst.getObjectDatabase().has(A_txt));
assertEquals(B, dst.exactRef(master).getObjectId());
fsck(dst, B);

@@ -748,7 +748,7 @@ public class SmartClientSmartServerTest extends HttpTestCase {
public void testInitialClone_WithAuthenticationNoCredentials()
throws Exception {
Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

try (Transport t = Transport.open(dst, authURI)) {
t.fetch(NullProgressMonitor.INSTANCE, mirror(master));
@@ -770,7 +770,7 @@ public class SmartClientSmartServerTest extends HttpTestCase {
public void testInitialClone_WithAuthenticationWrongCredentials()
throws Exception {
Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

try (Transport t = Transport.open(dst, authURI)) {
t.setCredentialsProvider(new UsernamePasswordCredentialsProvider(
@@ -796,7 +796,7 @@ public class SmartClientSmartServerTest extends HttpTestCase {
public void testInitialClone_WithAuthenticationAfterRedirect()
throws Exception {
Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

URIish cloneFrom = extendPath(redirectURI, "/target/auth");
CredentialsProvider uriSpecificCredentialsProvider = new UsernamePasswordCredentialsProvider(
@@ -820,7 +820,7 @@ public class SmartClientSmartServerTest extends HttpTestCase {
t.fetch(NullProgressMonitor.INSTANCE, mirror(master));
}

assertTrue(dst.hasObject(A_txt));
assertTrue(dst.getObjectDatabase().has(A_txt));
assertEquals(B, dst.exactRef(master).getObjectId());
fsck(dst, B);

@@ -865,14 +865,14 @@ public class SmartClientSmartServerTest extends HttpTestCase {
public void testInitialClone_WithAuthenticationOnPostOnly()
throws Exception {
Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

try (Transport t = Transport.open(dst, authOnPostURI)) {
t.setCredentialsProvider(testCredentials);
t.fetch(NullProgressMonitor.INSTANCE, mirror(master));
}

assertTrue(dst.hasObject(A_txt));
assertTrue(dst.getObjectDatabase().has(A_txt));
assertEquals(B, dst.exactRef(master).getObjectId());
fsck(dst, B);

@@ -1042,7 +1042,7 @@ public class SmartClientSmartServerTest extends HttpTestCase {
@Test
public void testInitialClone_BrokenServer() throws Exception {
Repository dst = createBareRepository();
assertFalse(dst.hasObject(A_txt));
assertFalse(dst.getObjectDatabase().has(A_txt));

try (Transport t = Transport.open(dst, brokenURI)) {
try {
@@ -1201,7 +1201,7 @@ public class SmartClientSmartServerTest extends HttpTestCase {
t.push(NullProgressMonitor.INSTANCE, Collections.singleton(u));
}

assertTrue(remoteRepository.hasObject(Q_txt));
assertTrue(remoteRepository.getObjectDatabase().has(Q_txt));
assertNotNull("has " + dstName, remoteRepository.exactRef(dstName));
assertEquals(Q, remoteRepository.exactRef(dstName).getObjectId());
fsck(remoteRepository, Q);
@@ -1275,7 +1275,7 @@ public class SmartClientSmartServerTest extends HttpTestCase {
t.push(NullProgressMonitor.INSTANCE, Collections.singleton(u));
}

assertTrue(remoteRepository.hasObject(Q_bin));
assertTrue(remoteRepository.getObjectDatabase().has(Q_bin));
assertNotNull("has " + dstName, remoteRepository.exactRef(dstName));
assertEquals(Q, remoteRepository.exactRef(dstName).getObjectId());
fsck(remoteRepository, Q);

+ 4
- 4
org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcBranchPrunedTest.java View File

@@ -66,11 +66,11 @@ public class GcBranchPrunedTest extends GcTestCase {
fsTick();
gc.prune(Collections.<ObjectId> emptySet());
do {
assertTrue(repo.hasObject(tip));
assertTrue(repo.getObjectDatabase().has(tip));
tr.parseBody(tip);
RevTree t = tip.getTree();
assertTrue(repo.hasObject(t));
assertTrue(repo.hasObject(tr.get(t, "a")));
assertTrue(repo.getObjectDatabase().has(t));
assertTrue(repo.getObjectDatabase().has(tr.get(t, "a")));
tip = tip.getParentCount() > 0 ? tip.getParent(0) : null;
} while (tip != null);
}
@@ -114,6 +114,6 @@ public class GcBranchPrunedTest extends GcTestCase {
gc.setExpireAgeMillis(0);
fsTick();
gc.prune(Collections.<ObjectId> emptySet());
assertTrue(repo.hasObject(b2Tip));
assertTrue(repo.getObjectDatabase().has(b2Tip));
}
}

+ 6
- 6
org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcPruneNonReferencedTest.java View File

@@ -63,7 +63,7 @@ public class GcPruneNonReferencedTest extends GcTestCase {
RevBlob a = tr.blob("a");
gc.setExpire(new Date(lastModified(a)));
gc.prune(Collections.<ObjectId> emptySet());
assertTrue(repo.hasObject(a));
assertTrue(repo.getObjectDatabase().has(a));
}

@Test
@@ -72,7 +72,7 @@ public class GcPruneNonReferencedTest extends GcTestCase {
gc.setExpireAgeMillis(0);
fsTick();
gc.prune(Collections.<ObjectId> emptySet());
assertFalse(repo.hasObject(a));
assertFalse(repo.getObjectDatabase().has(a));
}

@Test
@@ -82,8 +82,8 @@ public class GcPruneNonReferencedTest extends GcTestCase {
gc.setExpireAgeMillis(0);
fsTick();
gc.prune(Collections.<ObjectId> emptySet());
assertFalse(repo.hasObject(t));
assertFalse(repo.hasObject(a));
assertFalse(repo.getObjectDatabase().has(t));
assertFalse(repo.getObjectDatabase().has(a));
}

@Test
@@ -95,8 +95,8 @@ public class GcPruneNonReferencedTest extends GcTestCase {
RevBlob b = tr.blob("b");

gc.prune(Collections.<ObjectId> emptySet());
assertFalse(repo.hasObject(a));
assertTrue(repo.hasObject(b));
assertFalse(repo.getObjectDatabase().has(a));
assertTrue(repo.getObjectDatabase().has(b));
}

@Test

+ 3
- 3
org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcTagTest.java View File

@@ -60,7 +60,7 @@ public class GcTagTest extends GcTestCase {
gc.setExpireAgeMillis(0);
fsTick();
gc.prune(Collections.<ObjectId> emptySet());
assertTrue(repo.hasObject(a));
assertTrue(repo.getObjectDatabase().has(a));
}

@Test
@@ -72,7 +72,7 @@ public class GcTagTest extends GcTestCase {
gc.setExpireAgeMillis(0);
fsTick();
gc.prune(Collections.<ObjectId> emptySet());
assertTrue(repo.hasObject(t));
assertTrue(repo.hasObject(a));
assertTrue(repo.getObjectDatabase().has(t));
assertTrue(repo.getObjectDatabase().has(a));
}
}

+ 4
- 4
org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/ObjectDirectoryTest.java View File

@@ -126,7 +126,7 @@ public class ObjectDirectoryTest extends RepositoryTestCase {
// scanning of the packs directory
ObjectId id = commitFile("file.txt", "test", "master").getId();
gc.gc();
assertFalse(receivingDB.hasObject(unknownID));
assertFalse(receivingDB.getObjectDatabase().has(unknownID));
assertTrue(receivingDB.getObjectDatabase().hasPackedObject(id));

// preparations
@@ -150,7 +150,7 @@ public class ObjectDirectoryTest extends RepositoryTestCase {
// JGit will not rescan the packs folder later on and fails to see
// the pack file created during gc.
assertTrue(tmpFile.createNewFile());
assertFalse(receivingDB.hasObject(unknownID));
assertFalse(receivingDB.getObjectDatabase().has(unknownID));

// trigger a gc. This will create packfiles which have likely the
// same mtime than the packfolder
@@ -177,8 +177,8 @@ public class ObjectDirectoryTest extends RepositoryTestCase {
Assume.assumeTrue(tmpFile.lastModified() == ret[0].lastModified());

// all objects are in a new packfile but we will not detect it
assertFalse(receivingDB.hasObject(unknownID));
assertTrue(receivingDB.hasObject(id2));
assertFalse(receivingDB.getObjectDatabase().has(unknownID));
assertTrue(receivingDB.getObjectDatabase().has(id2));
}
}


+ 1
- 1
org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/PackParserTest.java View File

@@ -163,7 +163,7 @@ public class PackParserTest extends RepositoryTestCase {
public void testPackWithDuplicateBlob() throws Exception {
final byte[] data = Constants.encode("0123456789abcdefg");
TestRepository<Repository> d = new TestRepository<>(db);
assertTrue(db.hasObject(d.blob(data)));
assertTrue(db.getObjectDatabase().has(d.blob(data)));

TemporaryBuffer.Heap pack = new TemporaryBuffer.Heap(1024);
packHeader(pack, 1);

+ 1
- 1
org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/ReceivePackAdvertiseRefsHookTest.java View File

@@ -236,7 +236,7 @@ public class ReceivePackAdvertiseRefsHookTest extends LocalDiskRepositoryTestCas
// Verify the only storage of b is our packed delta above.
//
ObjectDirectory od = (ObjectDirectory) src.getObjectDatabase();
assertTrue("has b", src.hasObject(b));
assertTrue("has b", od.has(b));
assertFalse("b not loose", od.fileFor(b).exists());

// Now use b but in a different commit than what is hidden.

+ 67
- 67
org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/UploadPackTest.java View File

@@ -128,13 +128,13 @@ public class UploadPackTest {
}, null);
uri = testProtocol.register(ctx, server);

assertFalse(client.hasObject(commit0.toObjectId()));
assertFalse(client.getObjectDatabase().has(commit0.toObjectId()));

// Fetch of the parent of the shallow commit
try (Transport tn = testProtocol.open(uri, client, "server")) {
tn.fetch(NullProgressMonitor.INSTANCE,
Collections.singletonList(new RefSpec(commit0.name())));
assertTrue(client.hasObject(commit0.toObjectId()));
assertTrue(client.getObjectDatabase().has(commit0.toObjectId()));
}
}

@@ -147,7 +147,7 @@ public class UploadPackTest {
testProtocol = generateReachableCommitUploadPackProtocol();
uri = testProtocol.register(ctx, server);

assertFalse(client.hasObject(blob.toObjectId()));
assertFalse(client.getObjectDatabase().has(blob.toObjectId()));

try (Transport tn = testProtocol.open(uri, client, "server")) {
thrown.expect(TransportException.class);
@@ -168,12 +168,12 @@ public class UploadPackTest {
testProtocol = generateReachableCommitUploadPackProtocol();
uri = testProtocol.register(ctx, server);

assertFalse(client.hasObject(blob.toObjectId()));
assertFalse(client.getObjectDatabase().has(blob.toObjectId()));

try (Transport tn = testProtocol.open(uri, client, "server")) {
tn.fetch(NullProgressMonitor.INSTANCE,
Collections.singletonList(new RefSpec(blob.name())));
assertTrue(client.hasObject(blob.toObjectId()));
assertTrue(client.getObjectDatabase().has(blob.toObjectId()));
}
}

@@ -186,7 +186,7 @@ public class UploadPackTest {
testProtocol = generateReachableCommitUploadPackProtocol();
uri = testProtocol.register(ctx, server);

assertFalse(client.hasObject(blob.toObjectId()));
assertFalse(client.getObjectDatabase().has(blob.toObjectId()));

try (Transport tn = testProtocol.open(uri, client, "server")) {
thrown.expect(TransportException.class);
@@ -227,9 +227,9 @@ public class UploadPackTest {
tn.setFilterBlobLimit(0);
tn.fetch(NullProgressMonitor.INSTANCE,
Collections.singletonList(new RefSpec(commit.name())));
assertTrue(client.hasObject(tree.toObjectId()));
assertFalse(client.hasObject(blob1.toObjectId()));
assertFalse(client.hasObject(blob2.toObjectId()));
assertTrue(client.getObjectDatabase().has(tree.toObjectId()));
assertFalse(client.getObjectDatabase().has(blob1.toObjectId()));
assertFalse(client.getObjectDatabase().has(blob2.toObjectId()));
}
}

@@ -265,9 +265,9 @@ public class UploadPackTest {
tn.fetch(NullProgressMonitor.INSTANCE, Arrays.asList(
new RefSpec(commit.name()),
new RefSpec(blob1.name())));
assertTrue(client.hasObject(tree.toObjectId()));
assertTrue(client.hasObject(blob1.toObjectId()));
assertFalse(client.hasObject(blob2.toObjectId()));
assertTrue(client.getObjectDatabase().has(tree.toObjectId()));
assertTrue(client.getObjectDatabase().has(blob1.toObjectId()));
assertFalse(client.getObjectDatabase().has(blob2.toObjectId()));
}
}

@@ -301,8 +301,8 @@ public class UploadPackTest {
tn.setFilterBlobLimit(5);
tn.fetch(NullProgressMonitor.INSTANCE,
Collections.singletonList(new RefSpec(commit.name())));
assertFalse(client.hasObject(longBlob.toObjectId()));
assertTrue(client.hasObject(shortBlob.toObjectId()));
assertFalse(client.getObjectDatabase().has(longBlob.toObjectId()));
assertTrue(client.getObjectDatabase().has(shortBlob.toObjectId()));
}
}

@@ -342,8 +342,8 @@ public class UploadPackTest {
tn.fetch(NullProgressMonitor.INSTANCE, Arrays.asList(
new RefSpec(commit.name()),
new RefSpec(blob1.name())));
assertTrue(client.hasObject(blob1.toObjectId()));
assertFalse(client.hasObject(blob2.toObjectId()));
assertTrue(client.getObjectDatabase().has(blob1.toObjectId()));
assertFalse(client.getObjectDatabase().has(blob2.toObjectId()));
}
}

@@ -381,8 +381,8 @@ public class UploadPackTest {
tn.setFilterBlobLimit(5);
tn.fetch(NullProgressMonitor.INSTANCE,
Collections.singletonList(new RefSpec(commit.name())));
assertFalse(client.hasObject(longBlob.toObjectId()));
assertTrue(client.hasObject(shortBlob.toObjectId()));
assertFalse(client.getObjectDatabase().has(longBlob.toObjectId()));
assertTrue(client.getObjectDatabase().has(shortBlob.toObjectId()));
}
}

@@ -965,10 +965,10 @@ public class UploadPackTest {
assertThat(pckIn.readString(), theInstance(PacketLineIn.DELIM));
assertThat(pckIn.readString(), is("packfile"));
parsePack(recvStream);
assertFalse(client.hasObject(fooParent.toObjectId()));
assertTrue(client.hasObject(fooChild.toObjectId()));
assertFalse(client.hasObject(barParent.toObjectId()));
assertTrue(client.hasObject(barChild.toObjectId()));
assertFalse(client.getObjectDatabase().has(fooParent.toObjectId()));
assertTrue(client.getObjectDatabase().has(fooChild.toObjectId()));
assertFalse(client.getObjectDatabase().has(barParent.toObjectId()));
assertTrue(client.getObjectDatabase().has(barChild.toObjectId()));
}

@Test
@@ -992,10 +992,10 @@ public class UploadPackTest {

assertThat(pckIn.readString(), is("packfile"));
parsePack(recvStream);
assertFalse(client.hasObject(fooParent.toObjectId()));
assertTrue(client.hasObject(fooChild.toObjectId()));
assertTrue(client.hasObject(barParent.toObjectId()));
assertTrue(client.hasObject(barChild.toObjectId()));
assertFalse(client.getObjectDatabase().has(fooParent.toObjectId()));
assertTrue(client.getObjectDatabase().has(fooChild.toObjectId()));
assertTrue(client.getObjectDatabase().has(barParent.toObjectId()));
assertTrue(client.getObjectDatabase().has(barChild.toObjectId()));
}

@Test
@@ -1078,7 +1078,7 @@ public class UploadPackTest {
PacketLineIn pckIn = new PacketLineIn(recvStream);
assertThat(pckIn.readString(), is("packfile"));
parsePack(recvStream);
assertFalse(client.hasObject(tag.toObjectId()));
assertFalse(client.getObjectDatabase().has(tag.toObjectId()));

// With tag.
recvStream = uploadPackV2(
@@ -1091,7 +1091,7 @@ public class UploadPackTest {
pckIn = new PacketLineIn(recvStream);
assertThat(pckIn.readString(), is("packfile"));
parsePack(recvStream);
assertTrue(client.hasObject(tag.toObjectId()));
assertTrue(client.getObjectDatabase().has(tag.toObjectId()));
}

@Test
@@ -1149,8 +1149,8 @@ public class UploadPackTest {
PacketLineIn pckIn = new PacketLineIn(recvStream);
assertThat(pckIn.readString(), is("packfile"));
parsePack(recvStream);
assertTrue(client.hasObject(barChild.toObjectId()));
assertFalse(client.hasObject(commonParent.toObjectId()));
assertTrue(client.getObjectDatabase().has(barChild.toObjectId()));
assertFalse(client.getObjectDatabase().has(commonParent.toObjectId()));

// With shallow, the server knows that we don't have
// commonParent, so it sends it.
@@ -1165,7 +1165,7 @@ public class UploadPackTest {
pckIn = new PacketLineIn(recvStream);
assertThat(pckIn.readString(), is("packfile"));
parsePack(recvStream);
assertTrue(client.hasObject(commonParent.toObjectId()));
assertTrue(client.getObjectDatabase().has(commonParent.toObjectId()));
}

@Test
@@ -1188,8 +1188,8 @@ public class UploadPackTest {
assertThat(pckIn.readString(), theInstance(PacketLineIn.DELIM));
assertThat(pckIn.readString(), is("packfile"));
parsePack(recvStream);
assertTrue(client.hasObject(child.toObjectId()));
assertFalse(client.hasObject(parent.toObjectId()));
assertTrue(client.getObjectDatabase().has(child.toObjectId()));
assertFalse(client.getObjectDatabase().has(parent.toObjectId()));

// Without that, the parent is sent too.
recvStream = uploadPackV2(
@@ -1201,7 +1201,7 @@ public class UploadPackTest {
pckIn = new PacketLineIn(recvStream);
assertThat(pckIn.readString(), is("packfile"));
parsePack(recvStream);
assertTrue(client.hasObject(parent.toObjectId()));
assertTrue(client.getObjectDatabase().has(parent.toObjectId()));
}

@Test
@@ -1268,15 +1268,15 @@ public class UploadPackTest {

// The server does not send this because it is committed
// earlier than the given deepen-since time.
assertFalse(client.hasObject(tooOld.toObjectId()));
assertFalse(client.getObjectDatabase().has(tooOld.toObjectId()));

// The server does not send this because the client claims to
// have it.
assertFalse(client.hasObject(boundary.toObjectId()));
assertFalse(client.getObjectDatabase().has(boundary.toObjectId()));

// The server sends both these commits.
assertTrue(client.hasObject(beyondBoundary.toObjectId()));
assertTrue(client.hasObject(merge.toObjectId()));
assertTrue(client.getObjectDatabase().has(beyondBoundary.toObjectId()));
assertTrue(client.getObjectDatabase().has(merge.toObjectId()));
}

@Test
@@ -1316,9 +1316,9 @@ public class UploadPackTest {
parsePack(recvStream);

// Only the children are sent.
assertFalse(client.hasObject(base.toObjectId()));
assertTrue(client.hasObject(child1.toObjectId()));
assertTrue(client.hasObject(child2.toObjectId()));
assertFalse(client.getObjectDatabase().has(base.toObjectId()));
assertTrue(client.getObjectDatabase().has(child1.toObjectId()));
assertTrue(client.getObjectDatabase().has(child2.toObjectId()));
}

@Test
@@ -1384,16 +1384,16 @@ public class UploadPackTest {

// The server does not send these because they are excluded by
// deepen-not.
assertFalse(client.hasObject(side.toObjectId()));
assertFalse(client.hasObject(one.toObjectId()));
assertFalse(client.getObjectDatabase().has(side.toObjectId()));
assertFalse(client.getObjectDatabase().has(one.toObjectId()));

// The server does not send this because the client claims to
// have it.
assertFalse(client.hasObject(three.toObjectId()));
assertFalse(client.getObjectDatabase().has(three.toObjectId()));

// The server sends both these commits.
assertTrue(client.hasObject(merge.toObjectId()));
assertTrue(client.hasObject(two.toObjectId()));
assertTrue(client.getObjectDatabase().has(merge.toObjectId()));
assertTrue(client.getObjectDatabase().has(two.toObjectId()));
}

@Test
@@ -1441,10 +1441,10 @@ public class UploadPackTest {
assertThat(pckIn.readString(), theInstance(PacketLineIn.DELIM));
assertThat(pckIn.readString(), is("packfile"));
parsePack(recvStream);
assertFalse(client.hasObject(one.toObjectId()));
assertFalse(client.hasObject(two.toObjectId()));
assertTrue(client.hasObject(three.toObjectId()));
assertTrue(client.hasObject(four.toObjectId()));
assertFalse(client.getObjectDatabase().has(one.toObjectId()));
assertFalse(client.getObjectDatabase().has(two.toObjectId()));
assertTrue(client.getObjectDatabase().has(three.toObjectId()));
assertTrue(client.getObjectDatabase().has(four.toObjectId()));
}

@Test
@@ -1485,9 +1485,9 @@ public class UploadPackTest {
parsePack(recvStream);

// Only the children are sent.
assertFalse(client.hasObject(base.toObjectId()));
assertTrue(client.hasObject(child1.toObjectId()));
assertTrue(client.hasObject(child2.toObjectId()));
assertFalse(client.getObjectDatabase().has(base.toObjectId()));
assertTrue(client.getObjectDatabase().has(child1.toObjectId()));
assertTrue(client.getObjectDatabase().has(child2.toObjectId()));
}

@Test
@@ -1538,8 +1538,8 @@ public class UploadPackTest {
assertThat(pckIn.readString(), is("packfile"));
parsePack(recvStream);

assertFalse(client.hasObject(big.toObjectId()));
assertTrue(client.hasObject(small.toObjectId()));
assertFalse(client.getObjectDatabase().has(big.toObjectId()));
assertTrue(client.getObjectDatabase().has(small.toObjectId()));
}

@Test
@@ -1610,9 +1610,9 @@ public class UploadPackTest {
assertThat(pckIn.readString(), is("packfile"));
parsePack(recvStream);

assertTrue(client.hasObject(one.toObjectId()));
assertTrue(client.hasObject(two.toObjectId()));
assertFalse(client.hasObject(three.toObjectId()));
assertTrue(client.getObjectDatabase().has(one.toObjectId()));
assertTrue(client.getObjectDatabase().has(two.toObjectId()));
assertFalse(client.getObjectDatabase().has(three.toObjectId()));
}

@Test
@@ -1666,9 +1666,9 @@ public class UploadPackTest {
assertThat(pckIn.readString(), is("packfile"));
parsePack(recvStream);

assertTrue(client.hasObject(one.toObjectId()));
assertTrue(client.hasObject(two.toObjectId()));
assertFalse(client.hasObject(three.toObjectId()));
assertTrue(client.getObjectDatabase().has(one.toObjectId()));
assertTrue(client.getObjectDatabase().has(two.toObjectId()));
assertFalse(client.getObjectDatabase().has(three.toObjectId()));
}

@Test
@@ -1699,7 +1699,7 @@ public class UploadPackTest {
// ... but the client does not need the object itself.
assertThat(pckIn.readString(), is("packfile"));
parsePack(recvStream);
assertFalse(client.hasObject(one.toObjectId()));
assertFalse(client.getObjectDatabase().has(one.toObjectId()));
}

@Test
@@ -1728,8 +1728,8 @@ public class UploadPackTest {
assertThat(pckIn.readString(), theInstance(PacketLineIn.DELIM));
assertThat(pckIn.readString(), is("packfile"));
parsePack(recvStream);
assertTrue(client.hasObject(child.toObjectId()));
assertFalse(client.hasObject(parent.toObjectId()));
assertTrue(client.getObjectDatabase().has(child.toObjectId()));
assertFalse(client.getObjectDatabase().has(parent.toObjectId()));
}

@Test
@@ -1765,9 +1765,9 @@ public class UploadPackTest {
assertThat(pckIn.readString(), is("packfile"));
parsePack(recvStream);

assertTrue(client.hasObject(one.toObjectId()));
assertTrue(client.hasObject(two.toObjectId()));
assertTrue(client.hasObject(three.toObjectId()));
assertTrue(client.getObjectDatabase().has(one.toObjectId()));
assertTrue(client.getObjectDatabase().has(two.toObjectId()));
assertTrue(client.getObjectDatabase().has(three.toObjectId()));
}

@Test

+ 2
- 1
org.eclipse.jgit/src/org/eclipse/jgit/api/FetchCommand.java View File

@@ -193,7 +193,8 @@ public class FetchCommand extends TransportCommand<FetchCommand, FetchResult> {
// updated to an object that is not currently present in the
// submodule.
if ((recurseMode == FetchRecurseSubmodulesMode.ON_DEMAND
&& !submoduleRepo.hasObject(walk.getObjectId()))
&& !submoduleRepo.getObjectDatabase()
.has(walk.getObjectId()))
|| recurseMode == FetchRecurseSubmodulesMode.YES) {
FetchCommand f = new FetchCommand(submoduleRepo)
.setProgressMonitor(monitor)

+ 2
- 0
org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java View File

@@ -319,7 +319,9 @@ public abstract class Repository implements AutoCloseable {
* a {@link org.eclipse.jgit.lib.AnyObjectId} object.
* @return true if the specified object is stored in this repo or any of the
* known shared repositories.
* @deprecated use {@code getObjectDatabase().has(objectId)}
*/
@Deprecated
public boolean hasObject(AnyObjectId objectId) {
try {
return getObjectDatabase().has(objectId);

+ 1
- 1
org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackPushConnection.java View File

@@ -338,7 +338,7 @@ public abstract class BasePackPushConnection extends BasePackConnection implemen
for (Ref r : getRefs()) {
// only add objects that we actually have
ObjectId oid = r.getObjectId();
if (local.hasObject(oid))
if (local.getObjectDatabase().has(oid))
remoteObjects.add(oid);
}
remoteObjects.addAll(additionalHaves);

+ 1
- 1
org.eclipse.jgit/src/org/eclipse/jgit/transport/BaseReceivePack.java View File

@@ -1588,7 +1588,7 @@ public abstract class BaseReceivePack {
throw new MissingObjectException(o, o.getType());
}

if (o instanceof RevBlob && !db.hasObject(o))
if (o instanceof RevBlob && !db.getObjectDatabase().has(o))
throw new MissingObjectException(o, Constants.TYPE_BLOB);
}
checking.endTask();

+ 14
- 2
org.eclipse.jgit/src/org/eclipse/jgit/transport/FetchProcess.java View File

@@ -181,7 +181,7 @@ class FetchProcess {
ObjectId id = r.getPeeledObjectId();
if (id == null)
id = r.getObjectId();
if (transport.local.hasObject(id))
if (localHasObject(id))
wantTag(r);
}

@@ -393,6 +393,18 @@ class FetchProcess {
}
}

private boolean localHasObject(ObjectId id) throws TransportException {
try {
return transport.local.getObjectDatabase().has(id);
} catch (IOException err) {
throw new TransportException(
MessageFormat.format(
JGitText.get().readingObjectsFromLocalRepositoryFailed,
err.getMessage()),
err);
}
}

private Collection<Ref> expandAutoFollowTags() throws TransportException {
final Collection<Ref> additionalTags = new ArrayList<>();
final Map<String, Ref> haveRefs = localRefs();
@@ -410,7 +422,7 @@ class FetchProcess {
if (obj == null)
obj = r.getObjectId();

if (askFor.containsKey(obj) || transport.local.hasObject(obj))
if (askFor.containsKey(obj) || localHasObject(obj))
wantTag(r);
else
additionalTags.add(r);

+ 4
- 4
org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkFetchConnection.java View File

@@ -555,10 +555,10 @@ class WalkFetchConnection extends BaseFetchConnection {
continue;
} finally {
// If the pack was good its in the local repository
// and Repository.hasObject(id) will succeed in the
// future, so we do not need this data anymore. If
// it failed the index and pack are unusable and we
// shouldn't consult them again.
// and Repository.getObjectDatabase().has(id) will
// succeed in the future, so we do not need this
// data any more. If it failed the index and pack
// are unusable and we shouldn't consult them again.
//
try {
if (pack.tmpIdx != null)

Loading…
Cancel
Save