diff --git a/plugins/git4idea/src/git4idea/commands/GitImpl.java b/plugins/git4idea/src/git4idea/commands/GitImpl.java index 1127ed4c6cb0..5ba8dc00da20 100644 --- a/plugins/git4idea/src/git4idea/commands/GitImpl.java +++ b/plugins/git4idea/src/git4idea/commands/GitImpl.java @@ -183,7 +183,8 @@ public class GitImpl extends GitImplBase { @NotNull final String clonedDirectoryName, final GitLineHandlerListener @NotNull ... listeners) { return runCommand(() -> { // do not use per-project executable for 'clone' command - GitLineHandler handler = new GitLineHandler(null, parentDirectory, GitCommand.CLONE); + GitExecutable executable = GitExecutableManager.getInstance().getExecutableFor(parentDirectory); + GitLineHandler handler = new GitLineHandler(null, parentDirectory, executable, GitCommand.CLONE, emptyList()); handler.setSilent(false); handler.setStderrSuppressed(false); handler.setUrl(url); diff --git a/plugins/git4idea/src/git4idea/config/GitExecutableManager.java b/plugins/git4idea/src/git4idea/config/GitExecutableManager.java index bd49049f4187..f6c745035397 100644 --- a/plugins/git4idea/src/git4idea/config/GitExecutableManager.java +++ b/plugins/git4idea/src/git4idea/config/GitExecutableManager.java @@ -107,6 +107,16 @@ public class GitExecutableManager { return path; } + @NotNull + public GitExecutable getExecutableFor(@NotNull File gitDirectory) { + String path = GitVcsApplicationSettings.getInstance().getSavedPathToGit(); + if (path == null) { + WSLDistribution wslDistribution = WslPath.getDistributionByWindowsUncPath(gitDirectory.getPath()); + path = myExecutableDetector.detect(wslDistribution); + } + return getExecutable(path); + } + @NotNull public GitExecutable getExecutable(@Nullable Project project) { String path = getPathToGit(project);