From c07e1f7fc16a5b8532c6975257edc499baaffedc Mon Sep 17 00:00:00 2001 From: Friedemann Kleint <Friedemann.Kleint@nokia.com> Date: Mon, 11 Jan 2010 15:43:08 +0100 Subject: [PATCH] Mercurial: Fixed committing untracked files. by passing -A (plus security check). --- src/plugins/mercurial/mercurialclient.cpp | 11 +++++++++-- src/plugins/mercurial/mercurialclient.h | 7 +++++-- src/plugins/mercurial/mercurialplugin.cpp | 2 +- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/plugins/mercurial/mercurialclient.cpp b/src/plugins/mercurial/mercurialclient.cpp index 2e15c6a8cd5..205cf76021d 100644 --- a/src/plugins/mercurial/mercurialclient.cpp +++ b/src/plugins/mercurial/mercurialclient.cpp @@ -515,12 +515,19 @@ void MercurialClient::update(const QString &repositoryRoot, const QString &revis } void MercurialClient::commit(const QString &repositoryRoot, const QStringList &files, - const QString &committerInfo, const QString &commitMessageFile) + const QString &committerInfo, const QString &commitMessageFile, + bool autoAddRemove) { + // refuse to do "autoadd" on a commit with working directory only, as this will + // add all the untracked stuff. + QTC_ASSERT(!(autoAddRemove && files.isEmpty()), return) QStringList args(QLatin1String("commit")); if (!committerInfo.isEmpty()) args << QLatin1String("-u") << committerInfo; - args << QLatin1String("-l") << commitMessageFile << files; + args << QLatin1String("-l") << commitMessageFile; + if (autoAddRemove) + args << QLatin1String("-A"); + args << files; QSharedPointer<HgTask> job(new HgTask(repositoryRoot, args, false)); enqueueJob(job); } diff --git a/src/plugins/mercurial/mercurialclient.h b/src/plugins/mercurial/mercurialclient.h index 53fc0e58d0c..8dbfb073c9c 100644 --- a/src/plugins/mercurial/mercurialclient.h +++ b/src/plugins/mercurial/mercurialclient.h @@ -89,8 +89,11 @@ public: void revertFile(const QString &workingDir, const QString &file, const QString &revision = QString()); void revertRepository(const QString &workingDir, const QString &revision = QString()); void update(const QString &repositoryRoot, const QString &revision = QString()); - void commit(const QString &repositoryRoot, const QStringList &files, - const QString &commiterInfo, const QString &commitMessageFile); + void commit(const QString &repositoryRoot, + const QStringList &files, + const QString &commiterInfo, + const QString &commitMessageFile, + bool autoAddRemove = false); static QString findTopLevelForFile(const QFileInfo &file); diff --git a/src/plugins/mercurial/mercurialplugin.cpp b/src/plugins/mercurial/mercurialplugin.cpp index 009d44375c6..6da681bc283 100644 --- a/src/plugins/mercurial/mercurialplugin.cpp +++ b/src/plugins/mercurial/mercurialplugin.cpp @@ -634,7 +634,7 @@ bool MercurialPlugin::submitEditorAboutToClose(VCSBase::VCSBaseSubmitEditor *sub core->fileManager()->unblockFileChange(editorFile); m_client->commit(commitEditor->repoRoot(), files, commitEditor->committerInfo(), - editorFile->fileName()); + editorFile->fileName(), true); } return true; } -- GitLab