Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Lay2012-02-23 17:32:02 +0000
committerKevin Sawicki2012-02-23 17:32:02 +0000
commit54f23873d60f3b7f70427f5db9ff2a93229a193e (patch)
tree5166714316c36471cb422ac576356b059acbf8cd
parent0211d910017d1ba083b8c102a7a902ed103fe4f5 (diff)
downloadjgit-54f23873d60f3b7f70427f5db9ff2a93229a193e.tar.gz
jgit-54f23873d60f3b7f70427f5db9ff2a93229a193e.tar.xz
jgit-54f23873d60f3b7f70427f5db9ff2a93229a193e.zip
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>
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CloneCommandTest.java53
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java8
2 files changed, 61 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CloneCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CloneCommandTest.java
index ea59b14479..b63a4158f9 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CloneCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CloneCommandTest.java
@@ -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.Repository;
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 class CloneCommandTest extends RepositoryTestCase {
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));
+
+ }
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java
index ae72b770fe..3a0d8f55ec 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java
@@ -270,6 +270,14 @@ public class CloneCommand extends TransportCommand<CloneCommand, Git> {
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();
}

Back to the top