aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/git
diff options
context:
space:
mode:
authorcon <[email protected]>2009-02-13 15:56:18 +0100
committercon <[email protected]>2009-02-13 15:56:18 +0100
commitb8726d503f2b6f3475794032308d68386361e7f1 (patch)
treeee34a78cb3f77d19a7c1b50c483ade26a026dad6 /src/plugins/git
parent88bb93a66563621e63c0eb655c1c63683c4e527e (diff)
parentb6c15d1ba906f9e7ed124b91bd2d7adbd46953ea (diff)
Merge commit 'origin/1.0.0'
Diffstat (limited to 'src/plugins/git')
-rw-r--r--src/plugins/git/gitclient.cpp8
-rw-r--r--src/plugins/git/gitcommand.cpp11
-rw-r--r--src/plugins/git/gitcommand.h5
-rw-r--r--src/plugins/git/gitsettings.cpp10
-rw-r--r--src/plugins/git/gitsettings.h1
-rw-r--r--src/plugins/git/settingspage.cpp2
-rw-r--r--src/plugins/git/settingspage.ui33
7 files changed, 48 insertions, 22 deletions
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index 007aac874de..87f06931200 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -207,20 +207,20 @@ void GitClient::diff(const QString &workingDirectory,
QStringList arguments;
arguments << QLatin1String("diff") << diffArgs;
m_plugin->outputWindow()->append(formatCommand(binary, arguments));
- command->addJob(arguments);
+ command->addJob(arguments, m_settings.timeout);
} else {
// Files diff.
if (!unstagedFileNames.empty()) {
QStringList arguments;
arguments << QLatin1String("diff") << diffArgs << QLatin1String("--") << unstagedFileNames;
m_plugin->outputWindow()->append(formatCommand(binary, arguments));
- command->addJob(arguments);
+ command->addJob(arguments, m_settings.timeout);
}
if (!stagedFileNames.empty()) {
QStringList arguments;
arguments << QLatin1String("diff") << QLatin1String("--cached") << diffArgs << QLatin1String("--") << stagedFileNames;
m_plugin->outputWindow()->append(formatCommand(binary, arguments));
- command->addJob(arguments);
+ command->addJob(arguments, m_settings.timeout);
}
}
command->execute();
@@ -503,7 +503,7 @@ void GitClient::executeGit(const QString &workingDirectory,
{
m_plugin->outputWindow()->append(formatCommand(QLatin1String(Constants::GIT_BINARY), arguments));
GitCommand *command = createCommand(workingDirectory, editor, outputToWindow);
- command->addJob(arguments);
+ command->addJob(arguments, m_settings.timeout);
command->execute();
}
diff --git a/src/plugins/git/gitcommand.cpp b/src/plugins/git/gitcommand.cpp
index fa62401b011..8362926cecc 100644
--- a/src/plugins/git/gitcommand.cpp
+++ b/src/plugins/git/gitcommand.cpp
@@ -55,8 +55,9 @@ static inline QStringList environmentToList(const ProjectExplorer::Environment &
return ProjectExplorer::Environment::systemEnvironment().toStringList();
}
-GitCommand::Job::Job(const QStringList &a) :
- arguments(a)
+GitCommand::Job::Job(const QStringList &a, int t) :
+ arguments(a),
+ timeout(t)
{
}
@@ -67,9 +68,9 @@ GitCommand::GitCommand(const QString &workingDirectory,
{
}
-void GitCommand::addJob(const QStringList &arguments)
+void GitCommand::addJob(const QStringList &arguments, int timeout)
{
- m_jobs.push_back(Job(arguments));
+ m_jobs.push_back(Job(arguments, timeout));
}
void GitCommand::execute()
@@ -109,7 +110,7 @@ void GitCommand::run()
qDebug() << "GitCommand::run" << j << '/' << count << m_jobs.at(j).arguments;
process.start(QLatin1String(Constants::GIT_BINARY), m_jobs.at(j).arguments);
- if (!process.waitForFinished()) {
+ if (!process.waitForFinished(m_jobs.at(j).timeout * 1000)) {
ok = false;
error += QLatin1String("Error: Git timed out");
break;
diff --git a/src/plugins/git/gitcommand.h b/src/plugins/git/gitcommand.h
index a587b748761..32b76bf3485 100644
--- a/src/plugins/git/gitcommand.h
+++ b/src/plugins/git/gitcommand.h
@@ -49,7 +49,7 @@ public:
ProjectExplorer::Environment &environment);
- void addJob(const QStringList &arguments);
+ void addJob(const QStringList &arguments, int timeout);
void execute();
private:
@@ -61,9 +61,10 @@ Q_SIGNALS:
private:
struct Job {
- explicit Job(const QStringList &a);
+ explicit Job(const QStringList &a, int t);
QStringList arguments;
+ int timeout;
};
QStringList environment() const;
diff --git a/src/plugins/git/gitsettings.cpp b/src/plugins/git/gitsettings.cpp
index 2b528a72d2a..02a1acc1d9e 100644
--- a/src/plugins/git/gitsettings.cpp
+++ b/src/plugins/git/gitsettings.cpp
@@ -40,15 +40,17 @@ static const char *groupC = "Git";
static const char *sysEnvKeyC = "SysEnv";
static const char *pathKeyC = "Path";
static const char *logCountKeyC = "LogCount";
+static const char *timeoutKeyC = "TimeOut";
-enum { defaultLogCount = 10 };
+enum { defaultLogCount = 10 , defaultTimeOut = 30};
namespace Git {
namespace Internal {
GitSettings::GitSettings() :
adoptPath(false),
- logCount(defaultLogCount)
+ logCount(defaultLogCount),
+ timeout(defaultTimeOut)
{
}
@@ -58,6 +60,7 @@ void GitSettings::fromSettings(QSettings *settings)
adoptPath = settings->value(QLatin1String(sysEnvKeyC), false).toBool();
path = settings->value(QLatin1String(pathKeyC), QString()).toString();
logCount = settings->value(QLatin1String(logCountKeyC), defaultLogCount).toInt();
+ timeout = settings->value(QLatin1String(timeoutKeyC), defaultTimeOut).toInt();
settings->endGroup();
}
@@ -67,12 +70,13 @@ void GitSettings::toSettings(QSettings *settings) const
settings->setValue(QLatin1String(sysEnvKeyC), adoptPath);
settings->setValue(QLatin1String(pathKeyC), path);
settings->setValue(QLatin1String(logCountKeyC), logCount);
+ settings->setValue(QLatin1String(timeoutKeyC), timeout);
settings->endGroup();
}
bool GitSettings::equals(const GitSettings &s) const
{
- return adoptPath == s.adoptPath && path == s.path && logCount == s.logCount;
+ return adoptPath == s.adoptPath && path == s.path && logCount == s.logCount && timeout == s.timeout;
}
}
diff --git a/src/plugins/git/gitsettings.h b/src/plugins/git/gitsettings.h
index 59169922605..c2463eb326d 100644
--- a/src/plugins/git/gitsettings.h
+++ b/src/plugins/git/gitsettings.h
@@ -56,6 +56,7 @@ struct GitSettings
bool adoptPath;
QString path;
int logCount;
+ int timeout;
};
inline bool operator==(const GitSettings &p1, const GitSettings &p2)
diff --git a/src/plugins/git/settingspage.cpp b/src/plugins/git/settingspage.cpp
index a3b82194cec..121c7cd889b 100644
--- a/src/plugins/git/settingspage.cpp
+++ b/src/plugins/git/settingspage.cpp
@@ -52,6 +52,7 @@ GitSettings SettingsPageWidget::settings() const
rc.path = m_ui.pathLineEdit->text();
rc.adoptPath = m_ui.environmentGroupBox->isChecked() && !rc.path.isEmpty();
rc.logCount = m_ui.logCountSpinBox->value();
+ rc.timeout = m_ui.timeoutSpinBox->value();
return rc;
}
@@ -60,6 +61,7 @@ void SettingsPageWidget::setSettings(const GitSettings &s)
m_ui.environmentGroupBox->setChecked(s.adoptPath);
m_ui.pathLineEdit->setText(s.path);
m_ui.logCountSpinBox->setValue(s.logCount);
+ m_ui.timeoutSpinBox->setValue(s.timeout);
}
void SettingsPageWidget::setSystemPath()
diff --git a/src/plugins/git/settingspage.ui b/src/plugins/git/settingspage.ui
index 94c04493aab..1a594bf4313 100644
--- a/src/plugins/git/settingspage.ui
+++ b/src/plugins/git/settingspage.ui
@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>403</width>
- <height>183</height>
+ <height>251</height>
</rect>
</property>
<property name="windowTitle">
@@ -69,10 +69,14 @@
</widget>
</item>
<item>
- <layout class="QFormLayout" name="logFormLayout">
- <property name="fieldGrowthPolicy">
- <enum>QFormLayout::ExpandingFieldsGrow</enum>
- </property>
+ <layout class="QFormLayout" name="formLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="logCountLabel">
+ <property name="text">
+ <string>Log commit display count:</string>
+ </property>
+ </widget>
+ </item>
<item row="0" column="1">
<widget class="QSpinBox" name="logCountSpinBox">
<property name="toolTip">
@@ -83,10 +87,23 @@
</property>
</widget>
</item>
- <item row="0" column="0">
- <widget class="QLabel" name="logCountLabel">
+ <item row="1" column="0">
+ <widget class="QLabel" name="timeoutLabel">
<property name="text">
- <string>Log commit display count:</string>
+ <string>Timeout (seconds):</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QSpinBox" name="timeoutSpinBox">
+ <property name="minimum">
+ <number>10</number>
+ </property>
+ <property name="maximum">
+ <number>300</number>
+ </property>
+ <property name="value">
+ <number>30</number>
</property>
</widget>
</item>