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 1601a5dfc..6d3afc619 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/CloneCommand.java @@ -78,6 +78,7 @@ import org.eclipse.jgit.transport.RemoteConfig; 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 { private boolean bare; + private FS fs; + private String remote = Constants.DEFAULT_REMOTE_NAME; private String branch = Constants.HEAD; @@ -259,6 +262,9 @@ public class CloneCommand extends TransportCommand { 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 class CloneCommand extends TransportCommand { 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