aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Pursehouse <david.pursehouse@sonymobile.com>2016-02-12 13:55:40 +0900
committerDavid Pursehouse <david.pursehouse@sonymobile.com>2016-02-12 13:55:40 +0900
commitf3c250bd083871a11ea692ddd8a930a34e8db92c (patch)
treecece214559ff549b2523d1be337448215ed2414a
parent83f1f8fc7c46a34d60fe90b683a1fa3a06e27d2e (diff)
downloadjgit-f3c250bd083871a11ea692ddd8a930a34e8db92c.tar.gz
jgit-f3c250bd083871a11ea692ddd8a930a34e8db92c.zip
PushCommandTest: Open Git instances in try-with-resource
Change-Id: I3a8e28a4097e868a34ee1b23256c7f28d570cd75 Signed-off-by: David Pursehouse <david.pursehouse@sonymobile.com>
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PushCommandTest.java371
1 files changed, 184 insertions, 187 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PushCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PushCommandTest.java
index 1fcfef9c71..2a325405e8 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PushCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/PushCommandTest.java
@@ -90,26 +90,27 @@ public class PushCommandTest extends RepositoryTestCase {
remoteConfig.update(config);
config.save();
- Git git1 = new Git(db);
- // create some refs via commits and tag
- RevCommit commit = git1.commit().setMessage("initial commit").call();
- Ref tagRef = git1.tag().setName("tag").call();
-
- try {
- db2.resolve(commit.getId().getName() + "^{commit}");
- fail("id shouldn't exist yet");
- } catch (MissingObjectException e) {
- // we should get here
+ try (Git git1 = new Git(db)) {
+ // create some refs via commits and tag
+ RevCommit commit = git1.commit().setMessage("initial commit").call();
+ Ref tagRef = git1.tag().setName("tag").call();
+
+ try {
+ db2.resolve(commit.getId().getName() + "^{commit}");
+ fail("id shouldn't exist yet");
+ } catch (MissingObjectException e) {
+ // we should get here
+ }
+
+ RefSpec spec = new RefSpec("refs/heads/master:refs/heads/x");
+ git1.push().setRemote("test").setRefSpecs(spec)
+ .call();
+
+ assertEquals(commit.getId(),
+ db2.resolve(commit.getId().getName() + "^{commit}"));
+ assertEquals(tagRef.getObjectId(),
+ db2.resolve(tagRef.getObjectId().getName()));
}
-
- RefSpec spec = new RefSpec("refs/heads/master:refs/heads/x");
- git1.push().setRemote("test").setRefSpecs(spec)
- .call();
-
- assertEquals(commit.getId(),
- db2.resolve(commit.getId().getName() + "^{commit}"));
- assertEquals(tagRef.getObjectId(),
- db2.resolve(tagRef.getObjectId().getName()));
}
@Test
@@ -132,15 +133,16 @@ public class PushCommandTest extends RepositoryTestCase {
+ hookOutput.toPath() + "\"\ncat - >>\"" + hookOutput.toPath()
+ "\"\nexit 0");
- Git git1 = new Git(db);
- // create some refs via commits and tag
- RevCommit commit = git1.commit().setMessage("initial commit").call();
+ try (Git git1 = new Git(db)) {
+ // create some refs via commits and tag
+ RevCommit commit = git1.commit().setMessage("initial commit").call();
- RefSpec spec = new RefSpec("refs/heads/master:refs/heads/x");
- git1.push().setRemote("test").setRefSpecs(spec).call();
- assertEquals("1:test, 2:" + uri + ", 3:\n" + "refs/heads/master "
- + commit.getName() + " refs/heads/x "
- + ObjectId.zeroId().name(), read(hookOutput));
+ RefSpec spec = new RefSpec("refs/heads/master:refs/heads/x");
+ git1.push().setRemote("test").setRefSpecs(spec).call();
+ assertEquals("1:test, 2:" + uri + ", 3:\n" + "refs/heads/master "
+ + commit.getName() + " refs/heads/x "
+ + ObjectId.zeroId().name(), read(hookOutput));
+ }
}
private File writeHookFile(final String name, final String data)
@@ -160,45 +162,45 @@ public class PushCommandTest extends RepositoryTestCase {
String branch = "refs/heads/master";
String trackingBranch = "refs/remotes/" + remote + "/master";
- Git git = new Git(db);
+ try (Git git = new Git(db)) {
+ RevCommit commit1 = git.commit().setMessage("Initial commit")
+ .call();
- RevCommit commit1 = git.commit().setMessage("Initial commit")
- .call();
+ RefUpdate branchRefUpdate = db.updateRef(branch);
+ branchRefUpdate.setNewObjectId(commit1.getId());
+ branchRefUpdate.update();
- RefUpdate branchRefUpdate = db.updateRef(branch);
- branchRefUpdate.setNewObjectId(commit1.getId());
- branchRefUpdate.update();
+ RefUpdate trackingBranchRefUpdate = db.updateRef(trackingBranch);
+ trackingBranchRefUpdate.setNewObjectId(commit1.getId());
+ trackingBranchRefUpdate.update();
- RefUpdate trackingBranchRefUpdate = db.updateRef(trackingBranch);
- trackingBranchRefUpdate.setNewObjectId(commit1.getId());
- trackingBranchRefUpdate.update();
-
- final StoredConfig config = db.getConfig();
- RemoteConfig remoteConfig = new RemoteConfig(config, remote);
- URIish uri = new URIish(db2.getDirectory().toURI().toURL());
- remoteConfig.addURI(uri);
- remoteConfig.addFetchRefSpec(new RefSpec("+refs/heads/*:refs/remotes/"
- + remote + "/*"));
- remoteConfig.update(config);
- config.save();
+ final StoredConfig config = db.getConfig();
+ RemoteConfig remoteConfig = new RemoteConfig(config, remote);
+ URIish uri = new URIish(db2.getDirectory().toURI().toURL());
+ remoteConfig.addURI(uri);
+ remoteConfig.addFetchRefSpec(new RefSpec("+refs/heads/*:refs/remotes/"
+ + remote + "/*"));
+ remoteConfig.update(config);
+ config.save();
- RevCommit commit2 = git.commit().setMessage("Commit to push").call();
+ RevCommit commit2 = git.commit().setMessage("Commit to push").call();
- RefSpec spec = new RefSpec(branch + ":" + branch);
- Iterable<PushResult> resultIterable = git.push().setRemote(remote)
- .setRefSpecs(spec).call();
+ RefSpec spec = new RefSpec(branch + ":" + branch);
+ Iterable<PushResult> resultIterable = git.push().setRemote(remote)
+ .setRefSpecs(spec).call();
- PushResult result = resultIterable.iterator().next();
- TrackingRefUpdate trackingRefUpdate = result
- .getTrackingRefUpdate(trackingBranch);
+ PushResult result = resultIterable.iterator().next();
+ TrackingRefUpdate trackingRefUpdate = result
+ .getTrackingRefUpdate(trackingBranch);
- assertNotNull(trackingRefUpdate);
- assertEquals(trackingBranch, trackingRefUpdate.getLocalName());
- assertEquals(branch, trackingRefUpdate.getRemoteName());
- assertEquals(commit2.getId(), trackingRefUpdate.getNewObjectId());
- assertEquals(commit2.getId(), db.resolve(trackingBranch));
- assertEquals(commit2.getId(), db2.resolve(branch));
+ assertNotNull(trackingRefUpdate);
+ assertEquals(trackingBranch, trackingRefUpdate.getLocalName());
+ assertEquals(branch, trackingRefUpdate.getRemoteName());
+ assertEquals(commit2.getId(), trackingRefUpdate.getNewObjectId());
+ assertEquals(commit2.getId(), db.resolve(trackingBranch));
+ assertEquals(commit2.getId(), db2.resolve(branch));
+ }
}
/**
@@ -208,40 +210,38 @@ public class PushCommandTest extends RepositoryTestCase {
*/
@Test
public void testPushRefUpdate() throws Exception {
- Git git = new Git(db);
- Git git2 = new Git(createBareRepository());
-
- final StoredConfig config = git.getRepository().getConfig();
- RemoteConfig remoteConfig = new RemoteConfig(config, "test");
- URIish uri = new URIish(git2.getRepository().getDirectory().toURI()
- .toURL());
- remoteConfig.addURI(uri);
- remoteConfig.addPushRefSpec(new RefSpec("+refs/heads/*:refs/heads/*"));
- remoteConfig.update(config);
- config.save();
-
- writeTrashFile("f", "content of f");
- git.add().addFilepattern("f").call();
- RevCommit commit = git.commit().setMessage("adding f").call();
-
- assertEquals(null, git2.getRepository().resolve("refs/heads/master"));
- git.push().setRemote("test").call();
- assertEquals(commit.getId(),
- git2.getRepository().resolve("refs/heads/master"));
-
- git.branchCreate().setName("refs/heads/test").call();
- git.checkout().setName("refs/heads/test").call();
-
-
- for (int i = 0; i < 6; i++) {
- writeTrashFile("f" + i, "content of f" + i);
- git.add().addFilepattern("f" + i).call();
- commit = git.commit().setMessage("adding f" + i).call();
+ try (Git git = new Git(db);
+ Git git2 = new Git(createBareRepository())) {
+ final StoredConfig config = git.getRepository().getConfig();
+ RemoteConfig remoteConfig = new RemoteConfig(config, "test");
+ URIish uri = new URIish(git2.getRepository().getDirectory().toURI()
+ .toURL());
+ remoteConfig.addURI(uri);
+ remoteConfig.addPushRefSpec(new RefSpec("+refs/heads/*:refs/heads/*"));
+ remoteConfig.update(config);
+ config.save();
+
+ writeTrashFile("f", "content of f");
+ git.add().addFilepattern("f").call();
+ RevCommit commit = git.commit().setMessage("adding f").call();
+
+ assertEquals(null, git2.getRepository().resolve("refs/heads/master"));
git.push().setRemote("test").call();
- git2.getRepository().getAllRefs();
- assertEquals("failed to update on attempt " + i, commit.getId(),
- git2.getRepository().resolve("refs/heads/test"));
-
+ assertEquals(commit.getId(),
+ git2.getRepository().resolve("refs/heads/master"));
+
+ git.branchCreate().setName("refs/heads/test").call();
+ git.checkout().setName("refs/heads/test").call();
+
+ for (int i = 0; i < 6; i++) {
+ writeTrashFile("f" + i, "content of f" + i);
+ git.add().addFilepattern("f" + i).call();
+ commit = git.commit().setMessage("adding f" + i).call();
+ git.push().setRemote("test").call();
+ git2.getRepository().getAllRefs();
+ assertEquals("failed to update on attempt " + i, commit.getId(),
+ git2.getRepository().resolve("refs/heads/test"));
+ }
}
}
@@ -252,28 +252,26 @@ public class PushCommandTest extends RepositoryTestCase {
*/
@Test
public void testPushWithRefSpecFromConfig() throws Exception {
- Git git = new Git(db);
- Git git2 = new Git(createBareRepository());
-
- final StoredConfig config = git.getRepository().getConfig();
- RemoteConfig remoteConfig = new RemoteConfig(config, "test");
- URIish uri = new URIish(git2.getRepository().getDirectory().toURI()
- .toURL());
- remoteConfig.addURI(uri);
- remoteConfig.addPushRefSpec(new RefSpec("HEAD:refs/heads/newbranch"));
- remoteConfig.update(config);
- config.save();
-
- writeTrashFile("f", "content of f");
- git.add().addFilepattern("f").call();
- RevCommit commit = git.commit().setMessage("adding f").call();
-
- assertEquals(null, git2.getRepository().resolve("refs/heads/master"));
- git.push().setRemote("test").call();
- assertEquals(commit.getId(),
- git2.getRepository().resolve("refs/heads/newbranch"));
-
-
+ try (Git git = new Git(db);
+ Git git2 = new Git(createBareRepository())) {
+ final StoredConfig config = git.getRepository().getConfig();
+ RemoteConfig remoteConfig = new RemoteConfig(config, "test");
+ URIish uri = new URIish(git2.getRepository().getDirectory().toURI()
+ .toURL());
+ remoteConfig.addURI(uri);
+ remoteConfig.addPushRefSpec(new RefSpec("HEAD:refs/heads/newbranch"));
+ remoteConfig.update(config);
+ config.save();
+
+ writeTrashFile("f", "content of f");
+ git.add().addFilepattern("f").call();
+ RevCommit commit = git.commit().setMessage("adding f").call();
+
+ assertEquals(null, git2.getRepository().resolve("refs/heads/master"));
+ git.push().setRemote("test").call();
+ assertEquals(commit.getId(),
+ git2.getRepository().resolve("refs/heads/newbranch"));
+ }
}
/**
@@ -283,38 +281,37 @@ public class PushCommandTest extends RepositoryTestCase {
*/
@Test
public void testPushWithoutPushRefSpec() throws Exception {
- Git git = new Git(db);
- Git git2 = new Git(createBareRepository());
-
- final StoredConfig config = git.getRepository().getConfig();
- RemoteConfig remoteConfig = new RemoteConfig(config, "test");
- URIish uri = new URIish(git2.getRepository().getDirectory().toURI()
- .toURL());
- remoteConfig.addURI(uri);
- remoteConfig.addFetchRefSpec(new RefSpec(
- "+refs/heads/*:refs/remotes/origin/*"));
- remoteConfig.update(config);
- config.save();
-
- writeTrashFile("f", "content of f");
- git.add().addFilepattern("f").call();
- RevCommit commit = git.commit().setMessage("adding f").call();
-
- git.checkout().setName("not-pushed").setCreateBranch(true).call();
- git.checkout().setName("branchtopush").setCreateBranch(true).call();
-
- assertEquals(null,
- git2.getRepository().resolve("refs/heads/branchtopush"));
- assertEquals(null, git2.getRepository()
- .resolve("refs/heads/not-pushed"));
- assertEquals(null, git2.getRepository().resolve("refs/heads/master"));
- git.push().setRemote("test").call();
- assertEquals(commit.getId(),
- git2.getRepository().resolve("refs/heads/branchtopush"));
- assertEquals(null, git2.getRepository()
- .resolve("refs/heads/not-pushed"));
- assertEquals(null, git2.getRepository().resolve("refs/heads/master"));
-
+ try (Git git = new Git(db);
+ Git git2 = new Git(createBareRepository())) {
+ final StoredConfig config = git.getRepository().getConfig();
+ RemoteConfig remoteConfig = new RemoteConfig(config, "test");
+ URIish uri = new URIish(git2.getRepository().getDirectory().toURI()
+ .toURL());
+ remoteConfig.addURI(uri);
+ remoteConfig.addFetchRefSpec(new RefSpec(
+ "+refs/heads/*:refs/remotes/origin/*"));
+ remoteConfig.update(config);
+ config.save();
+
+ writeTrashFile("f", "content of f");
+ git.add().addFilepattern("f").call();
+ RevCommit commit = git.commit().setMessage("adding f").call();
+
+ git.checkout().setName("not-pushed").setCreateBranch(true).call();
+ git.checkout().setName("branchtopush").setCreateBranch(true).call();
+
+ assertEquals(null,
+ git2.getRepository().resolve("refs/heads/branchtopush"));
+ assertEquals(null, git2.getRepository()
+ .resolve("refs/heads/not-pushed"));
+ assertEquals(null, git2.getRepository().resolve("refs/heads/master"));
+ git.push().setRemote("test").call();
+ assertEquals(commit.getId(),
+ git2.getRepository().resolve("refs/heads/branchtopush"));
+ assertEquals(null, git2.getRepository()
+ .resolve("refs/heads/not-pushed"));
+ assertEquals(null, git2.getRepository().resolve("refs/heads/master"));
+ }
}
/**
@@ -335,51 +332,51 @@ public class PushCommandTest extends RepositoryTestCase {
remoteConfig.update(config);
config.save();
- Git git1 = new Git(db);
- Git git2 = new Git(db2);
-
- // push master (with a new commit) to the remote
- git1.commit().setMessage("initial commit").call();
+ try (Git git1 = new Git(db);
+ Git git2 = new Git(db2)) {
+ // push master (with a new commit) to the remote
+ git1.commit().setMessage("initial commit").call();
- RefSpec spec = new RefSpec("refs/heads/*:refs/heads/*");
- git1.push().setRemote("test").setRefSpecs(spec).call();
-
- // create an unrelated ref and a commit on our remote
- git2.branchCreate().setName("refs/heads/other").call();
- git2.checkout().setName("refs/heads/other").call();
-
- writeTrashFile("a", "content of a");
- git2.add().addFilepattern("a").call();
- RevCommit commit2 = git2.commit().setMessage("adding a").call();
-
- // run a gc to ensure we have a bitmap index
- Properties res = git1.gc().setExpire(null).call();
- assertEquals(7, res.size());
-
- // create another commit so we have something else to push
- writeTrashFile("b", "content of b");
- git1.add().addFilepattern("b").call();
- RevCommit commit3 = git1.commit().setMessage("adding b").call();
-
- try {
- // Re-run the push. Failure may happen here.
+ RefSpec spec = new RefSpec("refs/heads/*:refs/heads/*");
git1.push().setRemote("test").setRefSpecs(spec).call();
- } catch (TransportException e) {
- assertTrue("should be caused by a MissingObjectException", e
- .getCause().getCause() instanceof MissingObjectException);
- fail("caught MissingObjectException for a change we don't have");
- }
- // Remote will have both a and b. Master will have only b
- try {
- db.resolve(commit2.getId().getName() + "^{commit}");
- fail("id shouldn't exist locally");
- } catch (MissingObjectException e) {
- // we should get here
+ // create an unrelated ref and a commit on our remote
+ git2.branchCreate().setName("refs/heads/other").call();
+ git2.checkout().setName("refs/heads/other").call();
+
+ writeTrashFile("a", "content of a");
+ git2.add().addFilepattern("a").call();
+ RevCommit commit2 = git2.commit().setMessage("adding a").call();
+
+ // run a gc to ensure we have a bitmap index
+ Properties res = git1.gc().setExpire(null).call();
+ assertEquals(7, res.size());
+
+ // create another commit so we have something else to push
+ writeTrashFile("b", "content of b");
+ git1.add().addFilepattern("b").call();
+ RevCommit commit3 = git1.commit().setMessage("adding b").call();
+
+ try {
+ // Re-run the push. Failure may happen here.
+ git1.push().setRemote("test").setRefSpecs(spec).call();
+ } catch (TransportException e) {
+ assertTrue("should be caused by a MissingObjectException", e
+ .getCause().getCause() instanceof MissingObjectException);
+ fail("caught MissingObjectException for a change we don't have");
+ }
+
+ // Remote will have both a and b. Master will have only b
+ try {
+ db.resolve(commit2.getId().getName() + "^{commit}");
+ fail("id shouldn't exist locally");
+ } catch (MissingObjectException e) {
+ // we should get here
+ }
+ assertEquals(commit2.getId(),
+ db2.resolve(commit2.getId().getName() + "^{commit}"));
+ assertEquals(commit3.getId(),
+ db2.resolve(commit3.getId().getName() + "^{commit}"));
}
- assertEquals(commit2.getId(),
- db2.resolve(commit2.getId().getName() + "^{commit}"));
- assertEquals(commit3.getId(),
- db2.resolve(commit3.getId().getName() + "^{commit}"));
}
}