CloneCommand: option to set FS to be used

Change-Id: If8342974d07b7d89a6c5721a6dd03826886aa89e
Signed-off-by: Marc Strapetz <marc.strapetz@syntevo.com>
This commit is contained in:
Marc Strapetz 2017-12-13 23:01:37 +01:00 committed by Matthias Sohn
parent 0213a71a82
commit de49edbffb
1 changed files with 20 additions and 0 deletions

View File

@ -78,6 +78,7 @@
import org.eclipse.jgit.transport.TagOpt;
import org.eclipse.jgit.transport.URIish;
import org.eclipse.jgit.util.FileUtils;
import org.eclipse.jgit.util.FS;
/**
* Clone a repository into a new working directory
@ -95,6 +96,8 @@ public class CloneCommand extends TransportCommand<CloneCommand, Git> {
private boolean bare;
private FS fs;
private String remote = Constants.DEFAULT_REMOTE_NAME;
private String branch = Constants.HEAD;
@ -259,6 +262,9 @@ void verifyDirectories(URIish u) {
private Repository init() throws GitAPIException {
InitCommand command = Git.init();
command.setBare(bare);
if (fs != null) {
command.setFs(fs);
}
if (directory != null) {
command.setDirectory(directory);
}
@ -518,6 +524,20 @@ public CloneCommand setBare(boolean bare) throws IllegalStateException {
return this;
}
/**
* Set the file system abstraction to be used for repositories created by
* this command.
*
* @param fs
* the abstraction.
* @return {@code this} (for chaining calls).
* @since 4.10
*/
public CloneCommand setFs(FS fs) {
this.fs = fs;
return this;
}
/**
* The remote name used to keep track of the upstream repository for the
* clone operation. If no remote name is set, the default value of