diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2013-10-02 00:18:39 +0300 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2013-10-11 12:43:25 +0200 |
commit | fdb6ef90fc7a695e2b8d37abdfcf48fe0d8afb03 (patch) | |
tree | dbf64e035c2a58235ad16b0e0d575f300e56db36 /src/plugins/mercurial | |
parent | 6f24665e7e133d9d64ea07ae37e35b9e1a1e83a7 (diff) | |
download | qt-creator-fdb6ef90fc7a695e2b8d37abdfcf48fe0d8afb03.tar.gz |
VCS: Do not try to add files that are already tracked
Task-number: QTCREATORBUG-2455
Change-Id: I4b1fa9676ad4a8d7293e035e4d6103251bef8aee
Reviewed-by: Nikita Baryshnikov <nib952051@gmail.com>
Reviewed-by: Cristian Tibirna <tibirna@kde.org>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Diffstat (limited to 'src/plugins/mercurial')
-rw-r--r-- | src/plugins/mercurial/mercurialclient.cpp | 9 | ||||
-rw-r--r-- | src/plugins/mercurial/mercurialclient.h | 1 | ||||
-rw-r--r-- | src/plugins/mercurial/mercurialcontrol.cpp | 5 | ||||
-rw-r--r-- | src/plugins/mercurial/mercurialcontrol.h | 1 |
4 files changed, 16 insertions, 0 deletions
diff --git a/src/plugins/mercurial/mercurialclient.cpp b/src/plugins/mercurial/mercurialclient.cpp index e4966d2627..f1969682f5 100644 --- a/src/plugins/mercurial/mercurialclient.cpp +++ b/src/plugins/mercurial/mercurialclient.cpp @@ -257,6 +257,15 @@ QString MercurialClient::vcsGetRepositoryURL(const QString &directory) return QString(); } +bool MercurialClient::managesFile(const QString &workingDirectory, const QString &fileName) const +{ + QStringList args; + args << QLatin1String("status") << QLatin1String("--unknown") << fileName; + QByteArray output; + vcsFullySynchronousExec(workingDirectory, args, &output); + return output.isEmpty(); +} + void MercurialClient::incoming(const QString &repositoryRoot, const QString &repository) { QStringList args; diff --git a/src/plugins/mercurial/mercurialclient.h b/src/plugins/mercurial/mercurialclient.h index 7f12b8470f..845d2db478 100644 --- a/src/plugins/mercurial/mercurialclient.h +++ b/src/plugins/mercurial/mercurialclient.h @@ -63,6 +63,7 @@ public: void incoming(const QString &repositoryRoot, const QString &repository = QString()); void outgoing(const QString &repositoryRoot); QString vcsGetRepositoryURL(const QString &directory); + bool managesFile(const QString &workingDirectory, const QString &fileName) const; void annotate(const QString &workingDir, const QString &file, const QString revision = QString(), int lineNumber = -1, diff --git a/src/plugins/mercurial/mercurialcontrol.cpp b/src/plugins/mercurial/mercurialcontrol.cpp index 8eaa73dce1..c8fa812e2d 100644 --- a/src/plugins/mercurial/mercurialcontrol.cpp +++ b/src/plugins/mercurial/mercurialcontrol.cpp @@ -64,6 +64,11 @@ bool MercurialControl::managesDirectory(const QString &directory, QString *topLe return !topLevelFound.isEmpty(); } +bool MercurialControl::managesFile(const QString &workingDirectory, const QString &fileName) const +{ + return mercurialClient->managesFile(workingDirectory, fileName); +} + bool MercurialControl::isConfigured() const { const QString binary = mercurialClient->settings()->binaryPath(); diff --git a/src/plugins/mercurial/mercurialcontrol.h b/src/plugins/mercurial/mercurialcontrol.h index 3fac104c04..4a5c2e872c 100644 --- a/src/plugins/mercurial/mercurialcontrol.h +++ b/src/plugins/mercurial/mercurialcontrol.h @@ -53,6 +53,7 @@ public: QString displayName() const; Core::Id id() const; bool managesDirectory(const QString &filename, QString *topLevel = 0) const; + bool managesFile(const QString &workingDirectory, const QString &fileName) const; bool isConfigured() const; bool supportsOperation(Operation operation) const; bool vcsOpen(const QString &fileName); |