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;
|
package org.eclipse.jgit.api;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.junit.Assert.fail;
|
import static org.junit.Assert.fail;
|
||||||
|
@ -65,8 +66,10 @@
|
||||||
import org.eclipse.jgit.lib.RepositoryTestCase;
|
import org.eclipse.jgit.lib.RepositoryTestCase;
|
||||||
import org.eclipse.jgit.revwalk.RevBlob;
|
import org.eclipse.jgit.revwalk.RevBlob;
|
||||||
import org.eclipse.jgit.revwalk.RevCommit;
|
import org.eclipse.jgit.revwalk.RevCommit;
|
||||||
|
import org.eclipse.jgit.storage.file.FileBasedConfig;
|
||||||
import org.eclipse.jgit.submodule.SubmoduleStatus;
|
import org.eclipse.jgit.submodule.SubmoduleStatus;
|
||||||
import org.eclipse.jgit.submodule.SubmoduleStatusType;
|
import org.eclipse.jgit.submodule.SubmoduleStatusType;
|
||||||
|
import org.eclipse.jgit.util.SystemReader;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
public class CloneCommandTest extends RepositoryTestCase {
|
public class CloneCommandTest extends RepositoryTestCase {
|
||||||
|
@ -299,4 +302,54 @@ public void testCloneRepositoryWithSubmodules() throws Exception {
|
||||||
assertEquals(commit, pathStatus.getHeadId());
|
assertEquals(commit, pathStatus.getHeadId());
|
||||||
assertEquals(commit, pathStatus.getIndexId());
|
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);
|
branchName, ConfigConstants.CONFIG_KEY_REMOTE, remote);
|
||||||
clonedRepo.getConfig().setString(ConfigConstants.CONFIG_BRANCH_SECTION,
|
clonedRepo.getConfig().setString(ConfigConstants.CONFIG_BRANCH_SECTION,
|
||||||
branchName, ConfigConstants.CONFIG_KEY_MERGE, head.getName());
|
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();
|
clonedRepo.getConfig().save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue