Add support for autosetuprebase to the CloneCommand
Bug: 345536 Change-Id: I93c609235dec4e5e3a2ddc275c28b202bf868d40 Signed-off-by: Stefan Lay <stefan.lay@sap.com> Signed-off-by: Kevin Sawicki <kevin@github.com>
This commit is contained in:
parent
0211d91001
commit
54f23873d6
|
@ -43,6 +43,7 @@
|
|||
package org.eclipse.jgit.api;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.fail;
|
||||
|
@ -65,8 +66,10 @@
|
|||
import org.eclipse.jgit.lib.RepositoryTestCase;
|
||||
import org.eclipse.jgit.revwalk.RevBlob;
|
||||
import org.eclipse.jgit.revwalk.RevCommit;
|
||||
import org.eclipse.jgit.storage.file.FileBasedConfig;
|
||||
import org.eclipse.jgit.submodule.SubmoduleStatus;
|
||||
import org.eclipse.jgit.submodule.SubmoduleStatusType;
|
||||
import org.eclipse.jgit.util.SystemReader;
|
||||
import org.junit.Test;
|
||||
|
||||
public class CloneCommandTest extends RepositoryTestCase {
|
||||
|
@ -299,4 +302,54 @@ public void testCloneRepositoryWithSubmodules() throws Exception {
|
|||
assertEquals(commit, pathStatus.getHeadId());
|
||||
assertEquals(commit, pathStatus.getIndexId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCloneWithAutoSetupRebase() throws Exception {
|
||||
File directory = createTempDirectory("testCloneRepository1");
|
||||
CloneCommand command = Git.cloneRepository();
|
||||
command.setDirectory(directory);
|
||||
command.setURI("file://" + git.getRepository().getWorkTree().getPath());
|
||||
Git git2 = command.call();
|
||||
addRepoToClose(git2.getRepository());
|
||||
assertFalse(git2
|
||||
.getRepository()
|
||||
.getConfig()
|
||||
.getBoolean(ConfigConstants.CONFIG_BRANCH_SECTION, "test",
|
||||
ConfigConstants.CONFIG_KEY_REBASE, false));
|
||||
|
||||
FileBasedConfig userConfig = SystemReader.getInstance().openUserConfig(
|
||||
null, git.getRepository().getFS());
|
||||
userConfig.setString(ConfigConstants.CONFIG_BRANCH_SECTION, null,
|
||||
ConfigConstants.CONFIG_KEY_AUTOSETUPREBASE,
|
||||
ConfigConstants.CONFIG_KEY_ALWAYS);
|
||||
userConfig.save();
|
||||
directory = createTempDirectory("testCloneRepository2");
|
||||
command = Git.cloneRepository();
|
||||
command.setDirectory(directory);
|
||||
command.setURI("file://" + git.getRepository().getWorkTree().getPath());
|
||||
git2 = command.call();
|
||||
addRepoToClose(git2.getRepository());
|
||||
assertTrue(git2
|
||||
.getRepository()
|
||||
.getConfig()
|
||||
.getBoolean(ConfigConstants.CONFIG_BRANCH_SECTION, "test",
|
||||
ConfigConstants.CONFIG_KEY_REBASE, false));
|
||||
|
||||
userConfig.setString(ConfigConstants.CONFIG_BRANCH_SECTION, null,
|
||||
ConfigConstants.CONFIG_KEY_AUTOSETUPREBASE,
|
||||
ConfigConstants.CONFIG_KEY_REMOTE);
|
||||
userConfig.save();
|
||||
directory = createTempDirectory("testCloneRepository2");
|
||||
command = Git.cloneRepository();
|
||||
command.setDirectory(directory);
|
||||
command.setURI("file://" + git.getRepository().getWorkTree().getPath());
|
||||
git2 = command.call();
|
||||
addRepoToClose(git2.getRepository());
|
||||
assertTrue(git2
|
||||
.getRepository()
|
||||
.getConfig()
|
||||
.getBoolean(ConfigConstants.CONFIG_BRANCH_SECTION, "test",
|
||||
ConfigConstants.CONFIG_KEY_REBASE, false));
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -270,6 +270,14 @@ private void addMergeConfig(Repository clonedRepo, Ref head)
|
|||
branchName, ConfigConstants.CONFIG_KEY_REMOTE, remote);
|
||||
clonedRepo.getConfig().setString(ConfigConstants.CONFIG_BRANCH_SECTION,
|
||||
branchName, ConfigConstants.CONFIG_KEY_MERGE, head.getName());
|
||||
String autosetupRebase = clonedRepo.getConfig().getString(
|
||||
ConfigConstants.CONFIG_BRANCH_SECTION, null,
|
||||
ConfigConstants.CONFIG_KEY_AUTOSETUPREBASE);
|
||||
if (ConfigConstants.CONFIG_KEY_ALWAYS.equals(autosetupRebase)
|
||||
|| ConfigConstants.CONFIG_KEY_REMOTE.equals(autosetupRebase))
|
||||
clonedRepo.getConfig().setBoolean(
|
||||
ConfigConstants.CONFIG_BRANCH_SECTION, branchName,
|
||||
ConfigConstants.CONFIG_KEY_REBASE, true);
|
||||
clonedRepo.getConfig().save();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue