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) {
|
if (localName == null) {
|
||||||
try {
|
try {
|
||||||
localName = uri.getHumanishName();
|
localName = uri.getHumanishName();
|
||||||
|
if (isBare) {
|
||||||
|
localName = localName + Constants.DOT_GIT_EXT;
|
||||||
|
}
|
||||||
localNameF = new File(SystemReader.getInstance().getProperty(
|
localNameF = new File(SystemReader.getInstance().getProperty(
|
||||||
Constants.OS_USER_DIR), localName);
|
Constants.OS_USER_DIR), localName);
|
||||||
} catch (IllegalArgumentException e) {
|
} catch (IllegalArgumentException e) {
|
||||||
|
|
|
@ -76,6 +76,7 @@
|
||||||
import org.eclipse.jgit.submodule.SubmoduleWalk;
|
import org.eclipse.jgit.submodule.SubmoduleWalk;
|
||||||
import org.eclipse.jgit.transport.RefSpec;
|
import org.eclipse.jgit.transport.RefSpec;
|
||||||
import org.eclipse.jgit.transport.RemoteConfig;
|
import org.eclipse.jgit.transport.RemoteConfig;
|
||||||
|
import org.eclipse.jgit.transport.URIish;
|
||||||
import org.eclipse.jgit.util.SystemReader;
|
import org.eclipse.jgit.util.SystemReader;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
@ -145,15 +146,35 @@ public void testCloneRepositoryExplicitGitDir() throws IOException,
|
||||||
File directory = createTempDirectory("testCloneRepository");
|
File directory = createTempDirectory("testCloneRepository");
|
||||||
CloneCommand command = Git.cloneRepository();
|
CloneCommand command = Git.cloneRepository();
|
||||||
command.setDirectory(directory);
|
command.setDirectory(directory);
|
||||||
command.setGitDir(new File(directory, ".git"));
|
command.setGitDir(new File(directory, Constants.DOT_GIT));
|
||||||
command.setURI(fileUri());
|
command.setURI(fileUri());
|
||||||
Git git2 = command.call();
|
Git git2 = command.call();
|
||||||
addRepoToClose(git2.getRepository());
|
addRepoToClose(git2.getRepository());
|
||||||
assertEquals(directory, git2.getRepository().getWorkTree());
|
assertEquals(directory, git2.getRepository().getWorkTree());
|
||||||
assertEquals(new File(directory, ".git"), git2.getRepository()
|
assertEquals(new File(directory, Constants.DOT_GIT), git2.getRepository()
|
||||||
.getDirectory());
|
.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
|
@Test
|
||||||
public void testCloneRepositoryExplicitGitDirNonStd() throws IOException,
|
public void testCloneRepositoryExplicitGitDirNonStd() throws IOException,
|
||||||
JGitInternalException, GitAPIException {
|
JGitInternalException, GitAPIException {
|
||||||
|
@ -168,8 +189,8 @@ public void testCloneRepositoryExplicitGitDirNonStd() throws IOException,
|
||||||
assertEquals(directory, git2.getRepository().getWorkTree());
|
assertEquals(directory, git2.getRepository().getWorkTree());
|
||||||
assertEquals(gDir, git2.getRepository()
|
assertEquals(gDir, git2.getRepository()
|
||||||
.getDirectory());
|
.getDirectory());
|
||||||
assertTrue(new File(directory, ".git").isFile());
|
assertTrue(new File(directory, Constants.DOT_GIT).isFile());
|
||||||
assertFalse(new File(gDir, ".git").exists());
|
assertFalse(new File(gDir, Constants.DOT_GIT).exists());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -50,6 +50,7 @@
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.eclipse.jgit.annotations.Nullable;
|
||||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||||
import org.eclipse.jgit.api.errors.InvalidRemoteException;
|
import org.eclipse.jgit.api.errors.InvalidRemoteException;
|
||||||
import org.eclipse.jgit.api.errors.JGitInternalException;
|
import org.eclipse.jgit.api.errors.JGitInternalException;
|
||||||
|
@ -156,6 +157,16 @@ public CloneCommand() {
|
||||||
super(null);
|
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.
|
* Executes the {@code Clone} command.
|
||||||
*
|
*
|
||||||
|
@ -232,9 +243,9 @@ private static boolean isNonEmptyDirectory(File dir) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void verifyDirectories(URIish u) {
|
void verifyDirectories(URIish u) {
|
||||||
if (directory == null && gitDir == null) {
|
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();
|
directoryExistsInitially = directory != null && directory.exists();
|
||||||
gitDirExistsInitially = gitDir != null && gitDir.exists();
|
gitDirExistsInitially = gitDir != null && gitDir.exists();
|
||||||
|
|
Loading…
Reference in New Issue