aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/clearcase
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2013-10-02 00:18:39 +0300
committerOrgad Shaneh <orgads@gmail.com>2013-10-11 12:43:25 +0200
commitfdb6ef90fc7a695e2b8d37abdfcf48fe0d8afb03 (patch)
treedbf64e035c2a58235ad16b0e0d575f300e56db36 /src/plugins/clearcase
parent6f24665e7e133d9d64ea07ae37e35b9e1a1e83a7 (diff)
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/clearcase')
-rw-r--r--src/plugins/clearcase/clearcasecontrol.cpp5
-rw-r--r--src/plugins/clearcase/clearcasecontrol.h1
-rw-r--r--src/plugins/clearcase/clearcaseplugin.cpp7
-rw-r--r--src/plugins/clearcase/clearcaseplugin.h1
4 files changed, 14 insertions, 0 deletions
diff --git a/src/plugins/clearcase/clearcasecontrol.cpp b/src/plugins/clearcase/clearcasecontrol.cpp
index 79f81242a17..c2f7dd44e02 100644
--- a/src/plugins/clearcase/clearcasecontrol.cpp
+++ b/src/plugins/clearcase/clearcasecontrol.cpp
@@ -134,6 +134,11 @@ bool ClearCaseControl::managesDirectory(const QString &directory, QString *topLe
return m_plugin->managesDirectory(directory, topLevel);
}
+bool ClearCaseControl::managesFile(const QString &workingDirectory, const QString &fileName) const
+{
+ return m_plugin->managesFile(workingDirectory, fileName);
+}
+
bool ClearCaseControl::vcsAnnotate(const QString &file, int line)
{
const QFileInfo fi(file);
diff --git a/src/plugins/clearcase/clearcasecontrol.h b/src/plugins/clearcase/clearcasecontrol.h
index f4a0fb5743c..fa980595e26 100644
--- a/src/plugins/clearcase/clearcasecontrol.h
+++ b/src/plugins/clearcase/clearcasecontrol.h
@@ -48,6 +48,7 @@ public:
Core::Id id() const;
bool managesDirectory(const QString &directory, QString *topLevel = 0) const;
+ bool managesFile(const QString &workingDirectory, const QString &fileName) const;
bool isConfigured() const;
diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp
index 3e2c34a505f..4775f2e8764 100644
--- a/src/plugins/clearcase/clearcaseplugin.cpp
+++ b/src/plugins/clearcase/clearcaseplugin.cpp
@@ -1850,6 +1850,13 @@ bool ClearCasePlugin::ccCheckUcm(const QString &viewname, const QString &working
return QRegExp(QLatin1String("(^|\\n)ucm\\n")).indexIn(catcsData) != -1;
}
+bool ClearCasePlugin::managesFile(const QString &workingDirectory, const QString &fileName) const
+{
+ QStringList args;
+ args << QLatin1String("ls") << fileName;
+ return runCleartoolSync(workingDirectory, args).contains(QLatin1String("@@"));
+}
+
ViewData ClearCasePlugin::ccGetView(const QString &workingDir) const
{
static QHash<QString, ViewData> viewCache;
diff --git a/src/plugins/clearcase/clearcaseplugin.h b/src/plugins/clearcase/clearcaseplugin.h
index 6d62e2e5e88..929844197af 100644
--- a/src/plugins/clearcase/clearcaseplugin.h
+++ b/src/plugins/clearcase/clearcaseplugin.h
@@ -166,6 +166,7 @@ public:
void setStatus(const QString &file, FileStatus::Status status, bool update = true);
bool ccCheckUcm(const QString &viewname, const QString &workingDir) const;
+ bool managesFile(const QString &workingDirectory, const QString &fileName) const;
public slots:
void vcsAnnotate(const QString &workingDir, const QString &file,