aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/mercurial
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/mercurial
parentf5dcc93b7e816a7d728082a9f8261595104abe89 (diff)
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/mercurial')
-rw-r--r--src/plugins/mercurial/mercurialcontrol.cpp16
-rw-r--r--src/plugins/mercurial/mercurialcontrol.h5
2 files changed, 21 insertions, 0 deletions
diff --git a/src/plugins/mercurial/mercurialcontrol.cpp b/src/plugins/mercurial/mercurialcontrol.cpp
index 6f5ad95fb1..827355601f 100644
--- a/src/plugins/mercurial/mercurialcontrol.cpp
+++ b/src/plugins/mercurial/mercurialcontrol.cpp
@@ -33,12 +33,14 @@
#include <vcsbase/vcsbaseclientsettings.h>
#include <vcsbase/vcsbaseconstants.h>
+#include <vcsbase/vcscommand.h>
#include <coreplugin/vcsmanager.h>
#include <utils/fileutils.h>
#include <QFileInfo>
+#include <QProcessEnvironment>
#include <QVariant>
#include <QStringList>
#include <QDir>
@@ -114,6 +116,7 @@ bool MercurialControl::supportsOperation(Operation operation) const
case Core::IVersionControl::MoveOperation:
case Core::IVersionControl::CreateRepositoryOperation:
case Core::IVersionControl::AnnotateOperation:
+ case Core::IVersionControl::InitialCheckoutOperation:
break;
case Core::IVersionControl::SnapshotOperations:
supported = false;
@@ -161,6 +164,19 @@ bool MercurialControl::vcsAnnotate(const QString &file, int line)
return true;
}
+Core::ShellCommand *MercurialControl::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(),
+ mercurialClient->processEnvironment());
+ command->addJob(mercurialClient->vcsBinary(), args, -1);
+ return command;
+}
+
bool MercurialControl::sccManaged(const QString &filename)
{
const QFileInfo fi(filename);
diff --git a/src/plugins/mercurial/mercurialcontrol.h b/src/plugins/mercurial/mercurialcontrol.h
index 6807e57aba..30b33c8de3 100644
--- a/src/plugins/mercurial/mercurialcontrol.h
+++ b/src/plugins/mercurial/mercurialcontrol.h
@@ -64,6 +64,11 @@ public:
bool vcsCreateRepository(const QString &directory) override;
bool vcsAnnotate(const QString &file, int line) override;
+ Core::ShellCommand *createInitialCheckoutCommand(const QString &url,
+ const Utils::FileName &baseDirectory,
+ const QString &localName,
+ const QStringList &extraArgs) override;
+
bool sccManaged(const QString &filename);
public slots: