forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/2.7'
Conflicts: src/plugins/projectexplorer/devicesupport/devicemanager.cpp Change-Id: I1d46128f530428315e7ab5d52c8115036371487f
This commit is contained in:
@@ -365,6 +365,8 @@ const char *GitClient::decorateOption = "--decorate";
|
||||
|
||||
QString GitClient::findRepositoryForDirectory(const QString &dir)
|
||||
{
|
||||
if (dir.endsWith(QLatin1String("/.git")) || dir.contains(QLatin1String("/.git/")))
|
||||
return QString();
|
||||
// Find a directory to run git in:
|
||||
const QString root = QDir::rootPath();
|
||||
const QString home = QDir::homePath();
|
||||
@@ -1459,8 +1461,7 @@ VcsBase::Command *GitClient::createCommand(const QString &workingDirectory,
|
||||
connect(command, SIGNAL(outputData(QByteArray)), editor, SLOT(setPlainTextDataFiltered(QByteArray)));
|
||||
}
|
||||
|
||||
if (outputWindow())
|
||||
connect(command, SIGNAL(errorText(QString)), outputWindow(), SLOT(appendError(QString)));
|
||||
connect(command, SIGNAL(errorText(QString)), outputWindow(), SLOT(appendError(QString)));
|
||||
return command;
|
||||
}
|
||||
|
||||
@@ -1822,7 +1823,7 @@ bool GitClient::getCommitData(const QString &workingDirectory,
|
||||
|
||||
commitData->panelInfo.repository = repoDirectory;
|
||||
|
||||
QString gitDir = GitClient::findGitDirForRepository(repoDirectory);
|
||||
QString gitDir = findGitDirForRepository(repoDirectory);
|
||||
if (gitDir.isEmpty()) {
|
||||
*errorMessage = tr("The repository \"%1\" is not initialized.").arg(repoDirectory);
|
||||
return false;
|
||||
@@ -2151,7 +2152,7 @@ bool GitClient::executeAndHandleConflicts(const QString &workingDirectory,
|
||||
handleMergeConflicts(workingDirectory, conflictedCommit.cap(1), abortCommand);
|
||||
} else if (resp.stdErr.contains(QLatin1String("conflict"))) {
|
||||
// cherry-pick/revert conflict is output to stdErr
|
||||
QRegExp conflictedCommit(QLatin1String("could not (?:apply|revert) ([^\\n]*)$"));
|
||||
QRegExp conflictedCommit(QLatin1String("could not (?:apply|revert) ([^\\n]*)"));
|
||||
conflictedCommit.indexIn(resp.stdErr);
|
||||
handleMergeConflicts(workingDirectory, conflictedCommit.cap(1), abortCommand);
|
||||
}
|
||||
@@ -2444,9 +2445,11 @@ QString GitClient::readConfig(const QString &workingDirectory, const QStringList
|
||||
|
||||
QByteArray outputText;
|
||||
QByteArray errorText;
|
||||
if (fullySynchronousGit(workingDirectory, arguments, &outputText, &errorText, false))
|
||||
return commandOutputFromLocal8Bit(outputText);
|
||||
return QString();
|
||||
if (!fullySynchronousGit(workingDirectory, arguments, &outputText, &errorText, false))
|
||||
return QString();
|
||||
if (Utils::HostOsInfo::isWindowsHost())
|
||||
return QString::fromUtf8(outputText).remove(QLatin1Char('\r'));
|
||||
return commandOutputFromLocal8Bit(outputText);
|
||||
}
|
||||
|
||||
// Read a single-line config value, return trimmed
|
||||
|
||||
@@ -918,11 +918,15 @@ bool GitPlugin::submitEditorAboutToClose(VcsBase::VcsBaseSubmitEditor *submitEdi
|
||||
// Prompt user. Force a prompt unless submit was actually invoked (that
|
||||
// is, the editor was closed or shutdown).
|
||||
bool *promptData = m_settings.boolPointer(GitSettings::promptOnSubmitKey);
|
||||
const VcsBase::VcsBaseSubmitEditor::PromptSubmitResult answer =
|
||||
editor->promptSubmit(tr("Closing Git Editor"),
|
||||
tr("Do you want to commit the change?"),
|
||||
tr("Git will not accept this commit. Do you want to continue to edit it?"),
|
||||
promptData, !m_submitActionTriggered, false);
|
||||
VcsBase::VcsBaseSubmitEditor::PromptSubmitResult answer;
|
||||
if (editor->forceClose()) {
|
||||
answer = VcsBase::VcsBaseSubmitEditor::SubmitDiscarded;
|
||||
} else {
|
||||
answer = editor->promptSubmit(tr("Closing Git Editor"),
|
||||
tr("Do you want to commit the change?"),
|
||||
tr("Git will not accept this commit. Do you want to continue to edit it?"),
|
||||
promptData, !m_submitActionTriggered, false);
|
||||
}
|
||||
m_submitActionTriggered = false;
|
||||
switch (answer) {
|
||||
case VcsBase::VcsBaseSubmitEditor::SubmitCanceled:
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
#include "gitsubmiteditor.h"
|
||||
#include "gitsubmiteditorwidget.h"
|
||||
|
||||
#include <coreplugin/editormanager/editormanager.h>
|
||||
#include <utils/qtcassert.h>
|
||||
#include <vcsbase/submitfilemodel.h>
|
||||
#include <vcsbase/vcsbaseoutputwindow.h>
|
||||
@@ -85,7 +86,8 @@ private:
|
||||
GitSubmitEditor::GitSubmitEditor(const VcsBase::VcsBaseSubmitEditorParameters *parameters, QWidget *parent) :
|
||||
VcsBaseSubmitEditor(parameters, new GitSubmitEditorWidget(parent)),
|
||||
m_model(0),
|
||||
m_amend(false)
|
||||
m_amend(false),
|
||||
m_forceClose(false)
|
||||
{
|
||||
connect(this, SIGNAL(diffSelectedFiles(QList<int>)), this, SLOT(slotDiffSelected(QList<int>)));
|
||||
}
|
||||
@@ -162,10 +164,13 @@ void GitSubmitEditor::updateFileModel()
|
||||
GitClient *client = GitPlugin::instance()->gitClient();
|
||||
QString errorMessage, commitTemplate;
|
||||
CommitData data;
|
||||
if (client->getCommitData(m_workingDirectory, m_amend, &commitTemplate, &data, &errorMessage))
|
||||
if (client->getCommitData(m_workingDirectory, m_amend, &commitTemplate, &data, &errorMessage)) {
|
||||
setCommitData(data);
|
||||
else
|
||||
} else {
|
||||
VcsBase::VcsBaseOutputWindow::instance()->append(errorMessage);
|
||||
m_forceClose = true;
|
||||
Core::EditorManager::instance()->closeEditors(QList<IEditor*>() << this);
|
||||
}
|
||||
}
|
||||
|
||||
GitSubmitEditorPanelData GitSubmitEditor::panelData() const
|
||||
|
||||
@@ -54,6 +54,7 @@ public:
|
||||
void setCommitData(const CommitData &);
|
||||
void setAmend(bool amend);
|
||||
GitSubmitEditorPanelData panelData() const;
|
||||
bool forceClose() const { return m_forceClose; }
|
||||
|
||||
signals:
|
||||
void diff(const QStringList &unstagedFiles, const QStringList &stagedFiles);
|
||||
@@ -72,6 +73,7 @@ private:
|
||||
VcsBase::SubmitFileModel *m_model;
|
||||
QString m_commitEncoding;
|
||||
bool m_amend;
|
||||
bool m_forceClose;
|
||||
QString m_workingDirectory;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user