summaryrefslogtreecommitdiff
path: root/src/plugins/git/gitversioncontrol.cpp
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@theqtcompany.com>2015-04-29 14:34:07 +0200
committerTobias Hunger <tobias.hunger@theqtcompany.com>2015-05-11 11:51:53 +0000
commit75f067550f15fe384f2b59989a90dcb7dd8d5e43 (patch)
treecd33c43e575a483a0d7a5516e71a9b29c16d33b7 /src/plugins/git/gitversioncontrol.cpp
parentf5dcc93b7e816a7d728082a9f8261595104abe89 (diff)
downloadqt-creator-75f067550f15fe384f2b59989a90dcb7dd8d5e43.tar.gz
IVersionControl: Add method to get a ShellCommand for initial checkouts
Change-Id: Iabc056dad186d788003b221afb34303c37fef728 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/git/gitversioncontrol.cpp')
-rw-r--r--src/plugins/git/gitversioncontrol.cpp22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/plugins/git/gitversioncontrol.cpp b/src/plugins/git/gitversioncontrol.cpp
index ba9ec5589e..bb5f7024e9 100644
--- a/src/plugins/git/gitversioncontrol.cpp
+++ b/src/plugins/git/gitversioncontrol.cpp
@@ -33,8 +33,10 @@
#include "gitutils.h"
#include <vcsbase/vcsbaseconstants.h>
+#include <vcsbase/vcscommand.h>
#include <QFileInfo>
+#include <QProcessEnvironment>
namespace Git {
namespace Internal {
@@ -44,8 +46,7 @@ class GitTopicCache : public Core::IVersionControl::TopicCache
public:
GitTopicCache(GitClient *client) :
m_client(client)
- {
- }
+ { }
protected:
QString trackFile(const QString &repository) override
@@ -66,8 +67,7 @@ private:
GitVersionControl::GitVersionControl(GitClient *client) :
Core::IVersionControl(new GitTopicCache(client)),
m_client(client)
-{
-}
+{ }
QString GitVersionControl::displayName() const
{
@@ -96,6 +96,7 @@ bool GitVersionControl::supportsOperation(Operation operation) const
case CreateRepositoryOperation:
case SnapshotOperations:
case AnnotateOperation:
+ case InitialCheckoutOperation:
return true;
}
return false;
@@ -139,6 +140,19 @@ QString GitVersionControl::vcsTopic(const QString &directory)
return topic;
}
+Core::ShellCommand *GitVersionControl::createInitialCheckoutCommand(const QString &url,
+ const Utils::FileName &baseDirectory,
+ const QString &localName,
+ const QStringList &extraArgs)
+{
+ QStringList args;
+ args << QLatin1String("clone") << extraArgs << url << localName;
+
+ auto command = new VcsBase::VcsCommand(baseDirectory.toString(), m_client->processEnvironment());
+ command->addJob(m_client->vcsBinary(), args, -1);
+ return command;
+}
+
QStringList GitVersionControl::additionalToolsPath() const
{
QStringList res = m_client->settings().searchPathList();