Fix default directory set when setDirectory wasn't called.
Bug: 519883 Change-Id: I46716e9626b4c4adc0806a7c8df6914309040b94 Signed-off-by: Joan Goyeau <joan@goyeau.com>
This commit is contained in:
parent
65b2d0b2d9
commit
88e453995d
|
@ -101,6 +101,9 @@ protected void run() throws Exception {
|
|||
if (localName == null) {
|
||||
try {
|
||||
localName = uri.getHumanishName();
|
||||
if (isBare) {
|
||||
localName = localName + Constants.DOT_GIT_EXT;
|
||||
}
|
||||
localNameF = new File(SystemReader.getInstance().getProperty(
|
||||
Constants.OS_USER_DIR), localName);
|
||||
} catch (IllegalArgumentException e) {
|
||||
|
|
|
@ -76,6 +76,7 @@
|
|||
import org.eclipse.jgit.submodule.SubmoduleWalk;
|
||||
import org.eclipse.jgit.transport.RefSpec;
|
||||
import org.eclipse.jgit.transport.RemoteConfig;
|
||||
import org.eclipse.jgit.transport.URIish;
|
||||
import org.eclipse.jgit.util.SystemReader;
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -145,15 +146,35 @@ public void testCloneRepositoryExplicitGitDir() throws IOException,
|
|||
File directory = createTempDirectory("testCloneRepository");
|
||||
CloneCommand command = Git.cloneRepository();
|
||||
command.setDirectory(directory);
|
||||
command.setGitDir(new File(directory, ".git"));
|
||||
command.setGitDir(new File(directory, Constants.DOT_GIT));
|
||||
command.setURI(fileUri());
|
||||
Git git2 = command.call();
|
||||
addRepoToClose(git2.getRepository());
|
||||
assertEquals(directory, git2.getRepository().getWorkTree());
|
||||
assertEquals(new File(directory, ".git"), git2.getRepository()
|
||||
assertEquals(new File(directory, Constants.DOT_GIT), git2.getRepository()
|
||||
.getDirectory());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCloneRepositoryDefaultDirectory() throws IOException, URISyntaxException,
|
||||
JGitInternalException, GitAPIException {
|
||||
CloneCommand command = Git.cloneRepository().setURI(fileUri());
|
||||
|
||||
command.verifyDirectories(new URIish(fileUri()));
|
||||
File directory = command.getDirectory();
|
||||
assertEquals(git.getRepository().getWorkTree().getName(), directory.getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCloneBareRepositoryDefaultDirectory() throws IOException, URISyntaxException,
|
||||
JGitInternalException, GitAPIException {
|
||||
CloneCommand command = Git.cloneRepository().setURI(fileUri()).setBare(true);
|
||||
|
||||
command.verifyDirectories(new URIish(fileUri()));
|
||||
File directory = command.getDirectory();
|
||||
assertEquals(git.getRepository().getWorkTree().getName() + Constants.DOT_GIT_EXT, directory.getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCloneRepositoryExplicitGitDirNonStd() throws IOException,
|
||||
JGitInternalException, GitAPIException {
|
||||
|
@ -168,8 +189,8 @@ public void testCloneRepositoryExplicitGitDirNonStd() throws IOException,
|
|||
assertEquals(directory, git2.getRepository().getWorkTree());
|
||||
assertEquals(gDir, git2.getRepository()
|
||||
.getDirectory());
|
||||
assertTrue(new File(directory, ".git").isFile());
|
||||
assertFalse(new File(gDir, ".git").exists());
|
||||
assertTrue(new File(directory, Constants.DOT_GIT).isFile());
|
||||
assertFalse(new File(gDir, Constants.DOT_GIT).exists());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -50,6 +50,7 @@
|
|||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.jgit.annotations.Nullable;
|
||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||
import org.eclipse.jgit.api.errors.InvalidRemoteException;
|
||||
import org.eclipse.jgit.api.errors.JGitInternalException;
|
||||
|
@ -156,6 +157,16 @@ public CloneCommand() {
|
|||
super(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the git directory. This is primarily used for tests.
|
||||
*
|
||||
* @return the git directory
|
||||
*/
|
||||
@Nullable
|
||||
File getDirectory() {
|
||||
return directory;
|
||||
}
|
||||
|
||||
/**
|
||||
* Executes the {@code Clone} command.
|
||||
*
|
||||
|
@ -232,9 +243,9 @@ private static boolean isNonEmptyDirectory(File dir) {
|
|||
return false;
|
||||
}
|
||||
|
||||
private void verifyDirectories(URIish u) {
|
||||
void verifyDirectories(URIish u) {
|
||||
if (directory == null && gitDir == null) {
|
||||
directory = new File(u.getHumanishName(), Constants.DOT_GIT);
|
||||
directory = new File(u.getHumanishName() + (bare ? Constants.DOT_GIT_EXT : "")); //$NON-NLS-1$
|
||||
}
|
||||
directoryExistsInitially = directory != null && directory.exists();
|
||||
gitDirExistsInitially = gitDir != null && gitDir.exists();
|
||||
|
|
Loading…
Reference in New Issue