aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/mercurial/mercurialclient.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/mercurial/mercurialclient.cpp')
-rw-r--r--src/plugins/mercurial/mercurialclient.cpp96
1 files changed, 46 insertions, 50 deletions
diff --git a/src/plugins/mercurial/mercurialclient.cpp b/src/plugins/mercurial/mercurialclient.cpp
index cefe23292c3..8fa54da42f6 100644
--- a/src/plugins/mercurial/mercurialclient.cpp
+++ b/src/plugins/mercurial/mercurialclient.cpp
@@ -91,7 +91,7 @@ MercurialClient::MercurialClient(MercurialSettings *settings) : VcsBaseClient(se
{
}
-bool MercurialClient::manifestSync(const QString &repository, const QString &relativeFilename)
+bool MercurialClient::manifestSync(const FilePath &repository, const QString &relativeFilename)
{
// This only works when called from the repo and outputs paths relative to it.
const QStringList args(QLatin1String("manifest"));
@@ -99,7 +99,7 @@ bool MercurialClient::manifestSync(const QString &repository, const QString &rel
QtcProcess proc;
vcsFullySynchronousExec(proc, repository, args);
- const QDir repositoryDir(repository);
+ const QDir repositoryDir(repository.toString());
const QFileInfo needle = QFileInfo(repositoryDir, relativeFilename);
const QStringList files = proc.stdOut().split(QLatin1Char('\n'));
@@ -112,14 +112,12 @@ bool MercurialClient::manifestSync(const QString &repository, const QString &rel
}
//bool MercurialClient::clone(const QString &directory, const QString &url)
-bool MercurialClient::synchronousClone(const FilePath &workingDir,
+bool MercurialClient::synchronousClone(const FilePath &workingDirectory,
const QString &srcLocation,
const QString &dstLocation,
const QStringList &extraOptions)
{
- Q_UNUSED(workingDir)
Q_UNUSED(extraOptions)
- QDir workingDirectory(srcLocation);
const unsigned flags = VcsCommand::SshPasswordPrompt |
VcsCommand::ShowStdOut |
VcsCommand::ShowSuccessMessage;
@@ -128,7 +126,7 @@ bool MercurialClient::synchronousClone(const FilePath &workingDir,
// Let's make first init
QStringList arguments(QLatin1String("init"));
QtcProcess proc;
- vcsFullySynchronousExec(proc, workingDirectory.path(), arguments);
+ vcsFullySynchronousExec(proc, workingDirectory, arguments);
if (proc.result() != QtcProcess::FinishedWithSuccess)
return false;
@@ -136,12 +134,12 @@ bool MercurialClient::synchronousClone(const FilePath &workingDir,
arguments.clear();
arguments << QLatin1String("pull") << dstLocation;
QtcProcess proc1;
- vcsSynchronousExec(proc1, workingDirectory.path(), arguments, flags);
+ vcsSynchronousExec(proc1, workingDirectory, arguments, flags);
if (proc1.result() != QtcProcess::FinishedWithSuccess)
return false;
// By now, there is no hgrc file -> create it
- FileSaver saver(Utils::FilePath::fromString(workingDirectory.path() + "/.hg/hgrc"));
+ FileSaver saver(workingDirectory.pathAppended(".hg/hgrc"));
const QString hgrc = QLatin1String("[paths]\ndefault = ") + dstLocation + QLatin1Char('\n');
saver.write(hgrc.toUtf8());
if (!saver.finalize()) {
@@ -153,19 +151,18 @@ bool MercurialClient::synchronousClone(const FilePath &workingDir,
arguments.clear();
arguments << QLatin1String("update");
QtcProcess proc2;
- vcsSynchronousExec(proc2, workingDirectory.path(), arguments, flags);
+ vcsSynchronousExec(proc2, workingDirectory, arguments, flags);
return proc2.result() == QtcProcess::FinishedWithSuccess;
} else {
QStringList arguments(QLatin1String("clone"));
- arguments << dstLocation << workingDirectory.dirName();
- workingDirectory.cdUp();
+ arguments << dstLocation << workingDirectory.parentDir().toString();
QtcProcess proc;
- vcsSynchronousExec(proc, workingDirectory.path(), arguments, flags);
+ vcsSynchronousExec(proc, workingDirectory.parentDir(), arguments, flags);
return proc.result() == QtcProcess::FinishedWithSuccess;
}
}
-bool MercurialClient::synchronousPull(const QString &workingDir, const QString &srcLocation, const QStringList &extraOptions)
+bool MercurialClient::synchronousPull(const FilePath &workingDir, const QString &srcLocation, const QStringList &extraOptions)
{
QStringList args;
args << vcsCommandString(PullCommand) << extraOptions << srcLocation;
@@ -202,12 +199,12 @@ QString MercurialClient::branchQuerySync(const QString &repositoryRoot)
return QLatin1String("Unknown Branch");
}
-static inline QString msgParentRevisionFailed(const QString &workingDirectory,
- const QString &revision,
- const QString &why)
+static QString msgParentRevisionFailed(const FilePath &workingDirectory,
+ const QString &revision,
+ const QString &why)
{
return MercurialClient::tr("Unable to find parent revisions of %1 in %2: %3").
- arg(revision, QDir::toNativeSeparators(workingDirectory), why);
+ arg(revision, workingDirectory.toUserOutput(), why);
}
static inline QString msgParseParentsOutputFailed(const QString &output)
@@ -215,9 +212,9 @@ static inline QString msgParseParentsOutputFailed(const QString &output)
return MercurialClient::tr("Cannot parse output: %1").arg(output);
}
-QStringList MercurialClient::parentRevisionsSync(const QString &workingDirectory,
- const QString &file /* = QString() */,
- const QString &revision)
+QStringList MercurialClient::parentRevisionsSync(const FilePath &workingDirectory,
+ const QString &file /* = QString() */,
+ const QString &revision)
{
QStringList parents;
QStringList args;
@@ -258,9 +255,9 @@ user: ...
}
// Describe a change using an optional format
-QString MercurialClient::shortDescriptionSync(const QString &workingDirectory,
- const QString &revision,
- const QString &format)
+QString MercurialClient::shortDescriptionSync(const FilePath &workingDirectory,
+ const QString &revision,
+ const QString &format)
{
QStringList args;
args << QLatin1String("log") << QLatin1String("-r") <<revision;
@@ -277,13 +274,13 @@ QString MercurialClient::shortDescriptionSync(const QString &workingDirectory,
// Default format: "SHA1 (author summmary)"
static const char defaultFormatC[] = "{node} ({author|person} {desc|firstline})";
-QString MercurialClient::shortDescriptionSync(const QString &workingDirectory,
- const QString &revision)
+QString MercurialClient::shortDescriptionSync(const FilePath &workingDirectory,
+ const QString &revision)
{
return shortDescriptionSync(workingDirectory, revision, QLatin1String(defaultFormatC));
}
-bool MercurialClient::managesFile(const QString &workingDirectory, const QString &fileName) const
+bool MercurialClient::managesFile(const FilePath &workingDirectory, const QString &fileName) const
{
QStringList args;
args << QLatin1String("status") << QLatin1String("--unknown") << fileName;
@@ -292,44 +289,43 @@ bool MercurialClient::managesFile(const QString &workingDirectory, const QString
return proc.stdOut().isEmpty();
}
-void MercurialClient::incoming(const QString &repositoryRoot, const QString &repository)
+void MercurialClient::incoming(const FilePath &repositoryRoot, const QString &repository)
{
QStringList args;
args << QLatin1String("incoming") << QLatin1String("-g") << QLatin1String("-p");
if (!repository.isEmpty())
args.append(repository);
- QString id = repositoryRoot;
+ QString id = repositoryRoot.toString();
if (!repository.isEmpty())
id += QLatin1Char('/') + repository;
const QString title = tr("Hg incoming %1").arg(id);
- VcsBaseEditorWidget *editor = createVcsEditor(Constants::DIFFLOG_ID, title, repositoryRoot,
- VcsBaseEditor::getCodec(repositoryRoot),
+ VcsBaseEditorWidget *editor = createVcsEditor(Constants::DIFFLOG_ID, title, repositoryRoot.toString(),
+ VcsBaseEditor::getCodec(repositoryRoot.toString()),
"incoming", id);
- VcsCommand *cmd = createCommand(repository, editor);
+ VcsCommand *cmd = createCommand(FilePath::fromString(repository), editor);
enqueueJob(cmd, args);
}
-void MercurialClient::outgoing(const QString &repositoryRoot)
+void MercurialClient::outgoing(const FilePath &repositoryRoot)
{
QStringList args;
args << QLatin1String("outgoing") << QLatin1String("-g") << QLatin1String("-p");
- const QString title = tr("Hg outgoing %1").
- arg(QDir::toNativeSeparators(repositoryRoot));
+ const QString title = tr("Hg outgoing %1").arg(repositoryRoot.toUserOutput());
- VcsBaseEditorWidget *editor = createVcsEditor(Constants::DIFFLOG_ID, title, repositoryRoot,
- VcsBaseEditor::getCodec(repositoryRoot),
- "outgoing", repositoryRoot);
+ VcsBaseEditorWidget *editor = createVcsEditor(Constants::DIFFLOG_ID, title, repositoryRoot.toString(),
+ VcsBaseEditor::getCodec(repositoryRoot.toString()),
+ "outgoing", repositoryRoot.toString());
VcsCommand *cmd = createCommand(repositoryRoot, editor);
enqueueJob(cmd, args);
}
VcsBaseEditorWidget *MercurialClient::annotate(
- const QString &workingDir, const QString &file, const QString &revision,
+ const FilePath &workingDir, const QString &file, const QString &revision,
int lineNumber, const QStringList &extraOptions)
{
QStringList args(extraOptions);
@@ -337,7 +333,7 @@ VcsBaseEditorWidget *MercurialClient::annotate(
return VcsBaseClient::annotate(workingDir, file, revision, lineNumber, args);
}
-void MercurialClient::commit(const QString &repositoryRoot, const QStringList &files,
+void MercurialClient::commit(const FilePath &repositoryRoot, const QStringList &files,
const QString &commitMessageFile,
const QStringList &extraOptions)
{
@@ -346,7 +342,7 @@ void MercurialClient::commit(const QString &repositoryRoot, const QStringList &f
VcsBaseClient::commit(repositoryRoot, files, commitMessageFile, args);
}
-void MercurialClient::diff(const QString &workingDir, const QStringList &files,
+void MercurialClient::diff(const FilePath &workingDir, const QStringList &files,
const QStringList &extraOptions)
{
Q_UNUSED(extraOptions)
@@ -358,41 +354,41 @@ void MercurialClient::diff(const QString &workingDir, const QStringList &files,
const QString sourceFile = VcsBaseEditor::getSource(workingDir, fileName);
const QString documentId = QString(Constants::MERCURIAL_PLUGIN)
+ ".DiffRepo." + sourceFile;
- requestReload(documentId, sourceFile, title, workingDir, {"diff"});
+ requestReload(documentId, sourceFile, title, workingDir.toString(), {"diff"});
} else if (files.size() == 1) {
fileName = files.at(0);
const QString title = tr("Mercurial Diff \"%1\"").arg(fileName);
const QString sourceFile = VcsBaseEditor::getSource(workingDir, fileName);
const QString documentId = QString(Constants::MERCURIAL_PLUGIN)
+ ".DiffFile." + sourceFile;
- requestReload(documentId, sourceFile, title, workingDir, {"diff", fileName});
+ requestReload(documentId, sourceFile, title, workingDir.toString(), {"diff", fileName});
} else {
- const QString title = tr("Mercurial Diff \"%1\"").arg(workingDir);
+ const QString title = tr("Mercurial Diff \"%1\"").arg(workingDir.toString());
const QString sourceFile = VcsBaseEditor::getSource(workingDir, fileName);
const QString documentId = QString(Constants::MERCURIAL_PLUGIN)
- + ".DiffFile." + workingDir;
- requestReload(documentId, sourceFile, title, workingDir, QStringList{"diff"} + files);
+ + ".DiffFile." + workingDir.toString();
+ requestReload(documentId, sourceFile, title, workingDir.toString(), QStringList{"diff"} + files);
}
}
-void MercurialClient::import(const QString &repositoryRoot, const QStringList &files,
+void MercurialClient::import(const FilePath &repositoryRoot, const QStringList &files,
const QStringList &extraOptions)
{
VcsBaseClient::import(repositoryRoot, files,
QStringList(extraOptions) << QLatin1String("--no-commit"));
}
-void MercurialClient::revertAll(const QString &workingDir, const QString &revision,
+void MercurialClient::revertAll(const FilePath &workingDir, const QString &revision,
const QStringList &extraOptions)
{
VcsBaseClient::revertAll(workingDir, revision,
QStringList(extraOptions) << QLatin1String("--all"));
}
-bool MercurialClient::isVcsDirectory(const FilePath &fileName) const
+bool MercurialClient::isVcsDirectory(const FilePath &filePath) const
{
- return fileName.isDir()
- && !fileName.fileName().compare(Constants::MERCURIALREPO, HostOsInfo::fileNameCaseSensitivity());
+ return filePath.isDir()
+ && !filePath.fileName().compare(Constants::MERCURIALREPO, HostOsInfo::fileNameCaseSensitivity());
}
void MercurialClient::view(const QString &source, const QString &id,