IVersionControl: Add method to get a ShellCommand for initial checkouts

Change-Id: Iabc056dad186d788003b221afb34303c37fef728
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Tobias Hunger
2015-04-29 14:34:07 +02:00
parent f5dcc93b7e
commit 75f067550f
15 changed files with 153 additions and 5 deletions

View File

@@ -35,8 +35,10 @@
#include "cvssettings.h"
#include <vcsbase/vcsbaseconstants.h>
#include <vcsbase/vcscommand.h>
#include <utils/fileutils.h>
#include <utils/qtcassert.h>
#include <QFileInfo>
@@ -74,6 +76,7 @@ bool CvsControl::supportsOperation(Operation operation) const
case AddOperation:
case DeleteOperation:
case AnnotateOperation:
case InitialCheckoutOperation:
break;
case MoveOperation:
case CreateRepositoryOperation:
@@ -132,6 +135,24 @@ QString CvsControl::vcsOpenText() const
return tr("&Edit");
}
Core::ShellCommand *CvsControl::createInitialCheckoutCommand(const QString &url,
const Utils::FileName &baseDirectory,
const QString &localName,
const QStringList &extraArgs)
{
QTC_ASSERT(localName == url, return 0);
const CvsSettings settings = CvsPlugin::instance()->client()->settings();
QStringList args;
args << QLatin1String("checkout") << url << extraArgs;
auto command = new VcsBase::VcsCommand(baseDirectory.toString(),
QProcessEnvironment::systemEnvironment());
command->addJob(m_plugin->client()->vcsBinary(), settings.addOptions(args), -1);
return command;
}
bool CvsControl::managesDirectory(const QString &directory, QString *topLevel) const
{
return m_plugin->managesDirectory(directory, topLevel);

View File

@@ -63,6 +63,11 @@ public:
QString vcsOpenText() const override;
Core::ShellCommand *createInitialCheckoutCommand(const QString &url,
const Utils::FileName &baseDirectory,
const QString &localName,
const QStringList &extraArgs) override;
void emitRepositoryChanged(const QString &s);
void emitFilesChanged(const QStringList &l);