|
|
|
@ -195,4 +195,76 @@ public class PushCommandTest extends RepositoryTestCase {
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Check that the push refspec is read from config. |
|
|
|
|
* |
|
|
|
|
* @throws Exception |
|
|
|
|
*/ |
|
|
|
|
@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")); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Check that only HEAD is pushed if no refspec is given. |
|
|
|
|
* |
|
|
|
|
* @throws Exception |
|
|
|
|
*/ |
|
|
|
|
@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")); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|