aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/git/gitplugin.cpp
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2025-07-02 13:05:03 +0200
committerJarek Kobus <jaroslaw.kobus@qt.io>2025-07-07 08:43:54 +0000
commit8aa356ef062ac57efbcbc2a70f5fbb67f3658719 (patch)
tree4d6dfd54a82e1537598b9a1d107d7a816148385a /src/plugins/git/gitplugin.cpp
parent1df7f121f5800e7c2b7c8df6f054b0b301f84f5c (diff)
Vcs: Introduce cloneTask()
Change-Id: I06eb974e4ac510a059fbc2a653698deea22f99e2 Reviewed-by: André Hartmann <aha_1980@gmx.de>
Diffstat (limited to 'src/plugins/git/gitplugin.cpp')
-rw-r--r--src/plugins/git/gitplugin.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index 03010023d6f..a073aa3f26b 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -83,6 +83,7 @@
Q_DECLARE_METATYPE(Git::Internal::FileStates)
using namespace Core;
+using namespace Tasking;
using namespace TextEditor;
using namespace Utils;
using namespace VcsBase;
@@ -175,6 +176,7 @@ public:
QString vcsTopic(const FilePath &directory) final;
VcsCommand *createInitialCheckoutCommand(const InitialCheckoutData &data) final;
+ Tasking::ExecutableItem cloneTask(const InitialCheckoutData &data) const final;
void fillLinkContextMenu(QMenu *menu,
const FilePath &workingDirectory,
@@ -1956,6 +1958,17 @@ VcsCommand *GitPluginPrivate::createInitialCheckoutCommand(const InitialCheckout
return command;
}
+ExecutableItem GitPluginPrivate::cloneTask(const InitialCheckoutData &data) const
+{
+ const CommandLine command{gitClient().vcsBinary(data.baseDirectory),
+ {"clone", "--progress", data.extraArgs, data.url, data.localName}};
+ return vcsProcessTask({.runData = {command, data.baseDirectory,
+ gitClient().processEnvironment(data.baseDirectory)},
+ .flags = RunFlags::SuppressStdErr,
+ .stdOutHandler = data.stdOutHandler,
+ .stdErrHandler = data.stdErrHandler});
+}
+
GitPluginPrivate::RepoUrl GitPluginPrivate::getRepoUrl(const QString &location) const
{
return GitRemote(location);