forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/2.7'
Conflicts: qtcreator.pri qtcreator.qbs Change-Id: I84145b02bf4f80848c0c1d762de34738f08bb78f
This commit is contained in:
@@ -103,7 +103,7 @@ void ChangeSelectionDialog::selectWorkingDirectory()
|
||||
m_ui.workingDirectoryEdit->setText(location);
|
||||
else // Did not find a repo
|
||||
QMessageBox::critical(this, tr("Error"),
|
||||
tr("Selected directory is not a Git repository"));
|
||||
tr("Selected directory is not a Git repository."));
|
||||
}
|
||||
|
||||
//! Set commit message in details
|
||||
@@ -112,7 +112,7 @@ void ChangeSelectionDialog::setDetails(int exitCode)
|
||||
if (exitCode == 0)
|
||||
m_ui.detailsText->setPlainText(QString::fromUtf8(m_process->readAllStandardOutput()));
|
||||
else
|
||||
m_ui.detailsText->setPlainText(tr("Error: unknown reference"));
|
||||
m_ui.detailsText->setPlainText(tr("Error: Unknown reference"));
|
||||
}
|
||||
|
||||
void ChangeSelectionDialog::recalculateDetails(const QString &ref)
|
||||
@@ -135,7 +135,7 @@ void ChangeSelectionDialog::recalculateDetails(const QString &ref)
|
||||
m_process->start(m_gitBinaryPath, args);
|
||||
m_process->closeWriteChannel();
|
||||
if (!m_process->waitForStarted())
|
||||
m_ui.detailsText->setPlainText(tr("Error: could not start git"));
|
||||
m_ui.detailsText->setPlainText(tr("Error: Could not start Git."));
|
||||
else
|
||||
m_ui.detailsText->setPlainText(tr("Fetching commit data..."));
|
||||
}
|
||||
|
||||
@@ -14,16 +14,6 @@
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetDefaultConstraint</enum>
|
||||
</property>
|
||||
<item row="3" column="0" colspan="3">
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="workingDirectoryLabel">
|
||||
<property name="text">
|
||||
@@ -64,6 +54,16 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="3">
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
||||
@@ -90,7 +90,7 @@ static FileStates stateFor(const QChar &c)
|
||||
{
|
||||
switch (c.unicode()) {
|
||||
case ' ':
|
||||
return UntrackedFile;
|
||||
return EmptyFileState;
|
||||
case 'M':
|
||||
return ModifiedFile;
|
||||
case 'A':
|
||||
@@ -103,6 +103,8 @@ static FileStates stateFor(const QChar &c)
|
||||
return CopiedFile;
|
||||
case 'U':
|
||||
return UnmergedFile;
|
||||
case '?':
|
||||
return UntrackedFile;
|
||||
default:
|
||||
return UnknownFileState;
|
||||
}
|
||||
@@ -144,11 +146,10 @@ bool CommitData::checkLine(const QString &stateInfo, const QString &file)
|
||||
files.append(qMakePair(xState | UnmergedFile | UnmergedUs, file));
|
||||
}
|
||||
} else {
|
||||
xState |= StagedFile;
|
||||
if (xState != StagedFile)
|
||||
files.append(qMakePair(xState, file));
|
||||
if (xState != EmptyFileState)
|
||||
files.append(qMakePair(xState | StagedFile, file));
|
||||
|
||||
if (yState != UntrackedFile) {
|
||||
if (yState != EmptyFileState) {
|
||||
QString newFile = file;
|
||||
if (xState & (RenamedFile | CopiedFile))
|
||||
newFile = file.mid(file.indexOf(QLatin1String(" -> ")) + 4);
|
||||
|
||||
@@ -64,7 +64,7 @@ struct GitSubmitEditorPanelData
|
||||
QDebug operator<<(QDebug d, const GitSubmitEditorPanelData &);
|
||||
|
||||
enum FileState {
|
||||
UntrackedFile = 0,
|
||||
EmptyFileState = 0x00,
|
||||
|
||||
StagedFile = 0x01,
|
||||
ModifiedFile = 0x02,
|
||||
@@ -77,6 +77,7 @@ enum FileState {
|
||||
UnmergedUs = 0x100,
|
||||
UnmergedThem = 0x200,
|
||||
|
||||
UntrackedFile = 0x400,
|
||||
UnknownFileState = 0x800
|
||||
};
|
||||
Q_DECLARE_FLAGS(FileStates, FileState)
|
||||
|
||||
@@ -403,11 +403,11 @@ void QueryContext::timeout()
|
||||
parent = QApplication::activeWindow();
|
||||
QMessageBox box(QMessageBox::Question, tr("Timeout"),
|
||||
tr("The gerrit process has not responded within %1s.\n"
|
||||
"Most likely this is caused by problems with SSH-authentication.\n"
|
||||
"Most likely this is caused by problems with SSH authentication.\n"
|
||||
"Would you like to terminate it?").
|
||||
arg(timeOutMS / 1000), QMessageBox::NoButton, parent);
|
||||
QPushButton *terminateButton = box.addButton(tr("Terminate"), QMessageBox::YesRole);
|
||||
box.addButton(tr("Keep running"), QMessageBox::NoRole);
|
||||
box.addButton(tr("Keep Running"), QMessageBox::NoRole);
|
||||
connect(&m_process, SIGNAL(finished(int)), &box, SLOT(reject()));
|
||||
box.exec();
|
||||
if (m_process.state() != QProcess::Running)
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
|
||||
#include <QComboBox>
|
||||
#include <QMessageBox>
|
||||
#include <QPushButton>
|
||||
#include <QToolButton>
|
||||
#include <QTextCodec>
|
||||
|
||||
@@ -659,7 +660,7 @@ void GitClient::log(const QString &workingDirectory, const QStringList &fileName
|
||||
arguments.append(userArgs);
|
||||
|
||||
if (!fileNames.isEmpty())
|
||||
arguments.append(fileNames);
|
||||
arguments << QLatin1String("--") << fileNames;
|
||||
|
||||
executeGit(workingDirectory, arguments, editor);
|
||||
}
|
||||
@@ -1622,7 +1623,8 @@ GitClient::StatusResult GitClient::gitStatus(const QString &workingDirectory, St
|
||||
statusArgs << QLatin1String("--ignore-submodules=all");
|
||||
statusArgs << QLatin1String("-s") << QLatin1String("-b");
|
||||
|
||||
const bool statusRc = fullySynchronousGit(workingDirectory, statusArgs, &outputText, &errorText);
|
||||
const bool statusRc = fullySynchronousGit(workingDirectory, statusArgs,
|
||||
&outputText, &errorText, false);
|
||||
if (output)
|
||||
*output = commandOutputFromLocal8Bit(outputText);
|
||||
|
||||
@@ -1672,10 +1674,12 @@ QStringList GitClient::synchronousRepositoryBranches(const QString &repositoryUR
|
||||
|
||||
const QString pattern = QLatin1String("\trefs/heads/");
|
||||
const int pos = line.lastIndexOf(pattern);
|
||||
bool headFound = false;
|
||||
if (pos != -1) {
|
||||
const QString branchName = line.mid(pos + pattern.count());
|
||||
if (line.startsWith(headSha)) {
|
||||
if (!headFound && line.startsWith(headSha)) {
|
||||
branches[0] = branchName;
|
||||
headFound = true;
|
||||
if (isDetached)
|
||||
*isDetached = false;
|
||||
} else {
|
||||
@@ -1804,7 +1808,8 @@ bool GitClient::getCommitData(const QString &workingDirectory,
|
||||
// MM filename
|
||||
// A new_unstaged_file
|
||||
// R old -> new
|
||||
// ?? missing_file
|
||||
// D deleted_file
|
||||
// ?? untracked_file
|
||||
if (status != StatusUnchanged) {
|
||||
if (!commitData->parseFilesFromStatus(output)) {
|
||||
*errorMessage = msgParseFilesFailed();
|
||||
@@ -2090,18 +2095,28 @@ bool GitClient::synchronousFetch(const QString &workingDirectory, const QString
|
||||
return resp.result == Utils::SynchronousProcessResponse::Finished;
|
||||
}
|
||||
|
||||
bool GitClient::executeAndHandleConflicts(const QString &workingDirectory, const QStringList &arguments, const QString &abortCommand)
|
||||
bool GitClient::executeAndHandleConflicts(const QString &workingDirectory,
|
||||
const QStringList &arguments,
|
||||
const QString &abortCommand)
|
||||
{
|
||||
// Disable UNIX terminals to suppress SSH prompting.
|
||||
const unsigned flags = VcsBase::VcsBasePlugin::SshPasswordPrompt|VcsBase::VcsBasePlugin::ShowStdOutInLogWindow;
|
||||
const Utils::SynchronousProcessResponse resp = synchronousGit(workingDirectory, arguments, flags);
|
||||
// Notify about changed files or abort the rebase.
|
||||
const bool ok = resp.result == Utils::SynchronousProcessResponse::Finished;
|
||||
if (ok)
|
||||
if (ok) {
|
||||
GitPlugin::instance()->gitVersionControl()->emitRepositoryChanged(workingDirectory);
|
||||
else if (resp.stdOut.contains(QLatin1String("CONFLICT"))
|
||||
|| resp.stdErr.contains(QLatin1String("conflict")))
|
||||
handleMergeConflicts(workingDirectory, abortCommand);
|
||||
} else if (resp.stdOut.contains(QLatin1String("CONFLICT"))) {
|
||||
// rebase conflict is output to stdOut
|
||||
QRegExp conflictedCommit(QLatin1String("Patch failed at ([^\\n]*)"));
|
||||
conflictedCommit.indexIn(resp.stdOut);
|
||||
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]*)$"));
|
||||
conflictedCommit.indexIn(resp.stdErr);
|
||||
handleMergeConflicts(workingDirectory, conflictedCommit.cap(1), abortCommand);
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
@@ -2119,10 +2134,10 @@ bool GitClient::synchronousPull(const QString &workingDirectory, bool rebase)
|
||||
return executeAndHandleConflicts(workingDirectory, arguments, abortCommand);
|
||||
}
|
||||
|
||||
bool GitClient::synchronousCommandContinue(const QString &workingDirectory, const QString &command)
|
||||
bool GitClient::synchronousCommandContinue(const QString &workingDirectory, const QString &command, bool hasChanges)
|
||||
{
|
||||
QStringList arguments;
|
||||
arguments << command << QLatin1String("--continue");
|
||||
arguments << command << QLatin1String(hasChanges ? "--continue" : "--skip");
|
||||
return executeAndHandleConflicts(workingDirectory, arguments, command);
|
||||
}
|
||||
|
||||
@@ -2145,20 +2160,29 @@ void GitClient::synchronousAbortCommand(const QString &workingDir, const QString
|
||||
outwin->appendError(commandOutputFromLocal8Bit(stdErr));
|
||||
}
|
||||
|
||||
void GitClient::handleMergeConflicts(const QString &workingDir, const QString &abortCommand)
|
||||
void GitClient::handleMergeConflicts(const QString &workingDir, const QString &commit, const QString &abortCommand)
|
||||
{
|
||||
QMessageBox mergeOrAbort(QMessageBox::Question, tr("Conflicts detected"),
|
||||
tr("Conflicts detected"), QMessageBox::Ignore | QMessageBox::Abort);
|
||||
mergeOrAbort.addButton(tr("Run Merge Tool"), QMessageBox::ActionRole);
|
||||
QString message = commit.isEmpty() ? tr("Conflicts detected")
|
||||
: tr("Conflicts detected with commit %1").arg(commit);
|
||||
QMessageBox mergeOrAbort(QMessageBox::Question, tr("Conflicts Detected"),
|
||||
message, QMessageBox::Ignore | QMessageBox::Abort);
|
||||
QPushButton *mergeToolButton = mergeOrAbort.addButton(tr("Run &Merge Tool"),
|
||||
QMessageBox::ActionRole);
|
||||
if (abortCommand == QLatin1String("rebase"))
|
||||
mergeOrAbort.addButton(tr("&Skip"), QMessageBox::ActionRole);
|
||||
switch (mergeOrAbort.exec()) {
|
||||
case QMessageBox::Abort: {
|
||||
case QMessageBox::Abort:
|
||||
synchronousAbortCommand(workingDir, abortCommand);
|
||||
break;
|
||||
}
|
||||
case QMessageBox::Ignore:
|
||||
break;
|
||||
default: // Merge
|
||||
merge(workingDir);
|
||||
default: // Merge or Skip
|
||||
if (mergeOrAbort.clickedButton() == mergeToolButton) {
|
||||
merge(workingDir);
|
||||
} else {
|
||||
QStringList arguments = QStringList() << abortCommand << QLatin1String("--skip");
|
||||
executeAndHandleConflicts(workingDir, arguments, abortCommand);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2528,8 +2552,11 @@ GitClient::StashGuard::StashGuard(const QString &workingDirectory, const QString
|
||||
|
||||
GitClient::StashGuard::~StashGuard()
|
||||
{
|
||||
if (pop && stashResult == GitClient::Stashed)
|
||||
client->stashPop(workingDir, message);
|
||||
if (pop && stashResult == GitClient::Stashed) {
|
||||
QString stashName;
|
||||
if (client->stashNameFromMessage(workingDir, message, &stashName))
|
||||
client->stashPop(workingDir, stashName);
|
||||
}
|
||||
}
|
||||
|
||||
void GitClient::StashGuard::preventPop()
|
||||
|
||||
@@ -198,7 +198,7 @@ public:
|
||||
QString vcsGetRepositoryURL(const QString &directory);
|
||||
bool synchronousFetch(const QString &workingDirectory, const QString &remote);
|
||||
bool synchronousPull(const QString &workingDirectory, bool rebase);
|
||||
bool synchronousCommandContinue(const QString &workingDirectory, const QString &command);
|
||||
bool synchronousCommandContinue(const QString &workingDirectory, const QString &command, bool hasChanges);
|
||||
bool synchronousPush(const QString &workingDirectory, const QString &remote = QString());
|
||||
bool synchronousMerge(const QString &workingDirectory, const QString &branch);
|
||||
bool synchronousRebase(const QString &workingDirectory,
|
||||
@@ -325,7 +325,7 @@ private:
|
||||
void connectRepositoryChanged(const QString & repository, VcsBase::Command *cmd);
|
||||
bool executeAndHandleConflicts(const QString &workingDirectory, const QStringList &arguments,
|
||||
const QString &abortCommand = QString());
|
||||
void handleMergeConflicts(const QString &workingDir, const QString &abortCommand);
|
||||
void handleMergeConflicts(const QString &workingDir, const QString &commit, const QString &abortCommand);
|
||||
bool tryLauchingGitK(const QProcessEnvironment &env,
|
||||
const QString &workingDirectory,
|
||||
const QString &fileName,
|
||||
|
||||
@@ -211,8 +211,9 @@ void GitEditor::setPlainTextDataFiltered(const QByteArray &a)
|
||||
setPlainTextData(array);
|
||||
}
|
||||
|
||||
void GitEditor::commandFinishedGotoLine(bool ok, int /* exitCode */, const QVariant &v)
|
||||
void GitEditor::commandFinishedGotoLine(bool ok, int exitCode, const QVariant &v)
|
||||
{
|
||||
reportCommandFinished(ok, exitCode, v);
|
||||
if (ok && v.type() == QVariant::Int) {
|
||||
const int line = v.toInt();
|
||||
if (line >= 0)
|
||||
@@ -267,7 +268,7 @@ bool GitEditor::isValidRevision(const QString &revision) const
|
||||
void GitEditor::addChangeActions(QMenu *menu, const QString &change)
|
||||
{
|
||||
m_currentChange = change;
|
||||
menu->addAction(tr("Cherry-pick Change %1").arg(change), this, SLOT(cherryPickChange()));
|
||||
menu->addAction(tr("Cherry-Pick Change %1").arg(change), this, SLOT(cherryPickChange()));
|
||||
menu->addAction(tr("Revert Change %1").arg(change), this, SLOT(revertChange()));
|
||||
}
|
||||
|
||||
|
||||
@@ -949,7 +949,7 @@ void GitPlugin::pull()
|
||||
GitClient::StashGuard stashGuard(state.topLevel(), QLatin1String("Pull"));
|
||||
if (stashGuard.stashingFailed(false) || (rebase && (stashGuard.result() == GitClient::NotStashed)))
|
||||
return;
|
||||
if (!m_gitClient->synchronousPull(state.topLevel(), false))
|
||||
if (!m_gitClient->synchronousPull(state.topLevel(), rebase))
|
||||
stashGuard.preventPop();
|
||||
}
|
||||
|
||||
@@ -1253,6 +1253,7 @@ void GitPlugin::testStatusParsing_data()
|
||||
QTest::newRow("C ") << (CopiedFile | StagedFile) << FileStates(UnknownFileState);
|
||||
QTest::newRow("CM") << (CopiedFile | StagedFile) << FileStates(ModifiedFile);
|
||||
QTest::newRow("CD") << (CopiedFile | StagedFile) << FileStates(DeletedFile);
|
||||
QTest::newRow("??") << FileStates(UntrackedFile) << FileStates(UnknownFileState);
|
||||
|
||||
// Merges
|
||||
QTest::newRow("DD") << (DeletedFile | UnmergedFile | UnmergedUs | UnmergedThem) << FileStates(UnknownFileState);
|
||||
|
||||
@@ -53,11 +53,13 @@ public:
|
||||
|
||||
void updateSelections(SubmitFileModel *source)
|
||||
{
|
||||
QTC_ASSERT(source, return);
|
||||
GitSubmitFileModel *gitSource = static_cast<GitSubmitFileModel *>(source);
|
||||
int j = 0;
|
||||
for (int i = 0; i < rowCount() && j < source->rowCount(); ++i) {
|
||||
CommitData::StateFilePair stateFile = stateFilePair(i);
|
||||
for (; j < source->rowCount(); ++j) {
|
||||
CommitData::StateFilePair sourceStateFile = stateFilePair(j);
|
||||
CommitData::StateFilePair sourceStateFile = gitSource->stateFilePair(j);
|
||||
if (stateFile == sourceStateFile) {
|
||||
setChecked(i, source->checked(j));
|
||||
break;
|
||||
@@ -69,7 +71,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
CommitData::StateFilePair stateFilePair(int row)
|
||||
CommitData::StateFilePair stateFilePair(int row) const
|
||||
{
|
||||
return CommitData::StateFilePair(static_cast<FileStates>(extraData(row).toInt()), file(row));
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@ bool MergeTool::start(const QString &workingDirectory, const QStringList &files)
|
||||
arguments << QLatin1String("mergetool") << QLatin1String("-y");
|
||||
if (!files.isEmpty()) {
|
||||
if (m_gitClient->gitVersion() < 0x010708) {
|
||||
QMessageBox::warning(0, tr("Error"), tr("Files input for mergetool requires git >= 1.7.8"));
|
||||
QMessageBox::warning(0, tr("Error"), tr("File input for the merge tool requires Git 1.7.8, or later."));
|
||||
return false;
|
||||
}
|
||||
arguments << files;
|
||||
@@ -255,26 +255,31 @@ void MergeTool::readData()
|
||||
}
|
||||
}
|
||||
|
||||
void MergeTool::continuePreviousGitCommand(const QString &msgBoxTitle, const QString &msgBoxText,
|
||||
void MergeTool::continuePreviousGitCommand(const QString &msgBoxTitle, QString msgBoxText,
|
||||
const QString &buttonName, const QString &gitCommand)
|
||||
{
|
||||
QString workingDirectory = m_process->workingDirectory();
|
||||
QMessageBox msgBox;
|
||||
QPushButton *commandButton = msgBox.addButton(buttonName, QMessageBox::AcceptRole);
|
||||
QPushButton *abortButton = msgBox.addButton(QMessageBox::Abort);
|
||||
bool isRebase = gitCommand == QLatin1String("rebase");
|
||||
bool hasChanges = m_gitClient->gitStatus(m_process->workingDirectory(),
|
||||
StatusMode(NoUntracked | NoSubmodules)) == GitClient::StatusChanged;
|
||||
if (!hasChanges)
|
||||
msgBoxText.prepend(tr("No changes found. "));
|
||||
QMessageBox msgBox(QMessageBox::Question, msgBoxTitle, msgBoxText);
|
||||
if (hasChanges || isRebase)
|
||||
msgBox.addButton(hasChanges ? buttonName : tr("Skip"), QMessageBox::AcceptRole);
|
||||
msgBox.addButton(QMessageBox::Abort);
|
||||
msgBox.addButton(QMessageBox::Ignore);
|
||||
msgBox.setIcon(QMessageBox::Question);
|
||||
msgBox.setWindowTitle(msgBoxTitle);
|
||||
msgBox.setText(msgBoxText);
|
||||
msgBox.exec();
|
||||
|
||||
if (msgBox.clickedButton() == commandButton) { // Continue
|
||||
if (gitCommand == QLatin1String("rebase"))
|
||||
m_gitClient->synchronousCommandContinue(workingDirectory, gitCommand);
|
||||
switch (msgBox.exec()) {
|
||||
case QMessageBox::Ignore:
|
||||
break;
|
||||
case QMessageBox::Abort:
|
||||
m_gitClient->synchronousAbortCommand(workingDirectory, gitCommand);
|
||||
break;
|
||||
default: // Continue/Skip
|
||||
if (isRebase)
|
||||
m_gitClient->synchronousCommandContinue(workingDirectory, gitCommand, hasChanges);
|
||||
else
|
||||
GitPlugin::instance()->startCommit();
|
||||
} else if (msgBox.clickedButton() == abortButton) { // Abort
|
||||
m_gitClient->synchronousAbortCommand(workingDirectory, gitCommand);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,7 +288,7 @@ void MergeTool::done()
|
||||
VcsBase::VcsBaseOutputWindow *outputWindow = VcsBase::VcsBaseOutputWindow::instance();
|
||||
int exitCode = m_process->exitCode();
|
||||
if (!exitCode) {
|
||||
outputWindow->append(tr("Merge tool process finished successully"));
|
||||
outputWindow->append(tr("Merge tool process finished successully."));
|
||||
QString gitDir = m_gitClient->findGitDirForRepository(m_process->workingDirectory());
|
||||
|
||||
if (QFile::exists(gitDir + QLatin1String("/rebase-apply/rebasing"))) {
|
||||
@@ -294,8 +299,8 @@ void MergeTool::done()
|
||||
tr("You need to commit changes to finish revert.\nCommit now?"),
|
||||
tr("Commit"), QLatin1String("revert"));
|
||||
} else if (QFile::exists(gitDir + QLatin1String("/CHERRY_PICK_HEAD"))) {
|
||||
continuePreviousGitCommand(tr("Continue Cherry-Pick"),
|
||||
tr("You need to commit changes to finish cherry-pick.\nCommit now?"),
|
||||
continuePreviousGitCommand(tr("Continue Cherry-Picking"),
|
||||
tr("You need to commit changes to finish cherry-picking.\nCommit now?"),
|
||||
tr("Commit"), QLatin1String("cherry-pick"));
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -78,7 +78,7 @@ private:
|
||||
QString stateName(FileState state, const QString &extraInfo);
|
||||
void chooseAction();
|
||||
void addButton(QMessageBox *msgBox, const QString &text, char key);
|
||||
void continuePreviousGitCommand(const QString &msgBoxTitle, const QString &msgBoxText,
|
||||
void continuePreviousGitCommand(const QString &msgBoxTitle, QString msgBoxText,
|
||||
const QString &buttonName, const QString &gitCommand);
|
||||
|
||||
MergeToolProcess *m_process;
|
||||
|
||||
Reference in New Issue
Block a user