Git: Persist topic per branch on Push to Gerrit

Change-Id: I5a4056f562bb3264a8bd35d73fb16860eb0984e7
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Orgad Shaneh
2017-01-22 23:13:37 +02:00
committed by Orgad Shaneh
parent a905948852
commit 7cfbcb41b9
5 changed files with 21 additions and 0 deletions

View File

@@ -322,6 +322,7 @@ void GerritPlugin::push(const QString &topLevel)
if (dialog.exec() == QDialog::Rejected)
return;
dialog.storeTopic();
m_reviewers = dialog.reviewers();
QString target = dialog.selectedCommit();

View File

@@ -221,6 +221,13 @@ bool GerritPushDialog::isValid() const
return m_isValid;
}
void GerritPushDialog::storeTopic()
{
const QString branch = m_ui->localBranchComboBox->currentText();
GitPlugin::client()->setConfigValue(m_workingDir, QString("branch.%1.topic").arg(branch),
selectedTopic());
}
void GerritPushDialog::setRemoteBranches(bool includeOld)
{
bool blocked = m_ui->targetBranchComboBox->blockSignals(true);
@@ -266,6 +273,10 @@ void GerritPushDialog::updateCommits(int index)
{
const QString branch = m_ui->localBranchComboBox->itemText(index);
m_hasLocalCommits = m_ui->commitView->init(m_workingDir, branch, LogChangeWidget::Silent);
QString topic = GitPlugin::client()->readConfigValue(
m_workingDir, QString("branch.%1.topic").arg(branch));
if (!topic.isEmpty())
m_ui->topicLineEdit->setText(topic);
const QString remoteBranch = determineRemoteBranch(branch);
if (!remoteBranch.isEmpty()) {

View File

@@ -53,6 +53,7 @@ public:
QString selectedTopic() const;
QString reviewers() const;
bool isValid() const;
void storeTopic();
private:
void setChangeRange();

View File

@@ -3001,6 +3001,12 @@ QString GitClient::readConfigValue(const QString &workingDirectory, const QStrin
return readOneLine(workingDirectory, { "config", configVar });
}
void GitClient::setConfigValue(const QString &workingDirectory, const QString &configVar,
const QString &value) const
{
readOneLine(workingDirectory, { "config", configVar, value });
}
QString GitClient::readGitVar(const QString &workingDirectory, const QString &configVar) const
{
return readOneLine(workingDirectory, { "var", configVar });

View File

@@ -273,6 +273,8 @@ public:
QString readGitVar(const QString &workingDirectory, const QString &configVar) const;
QString readConfigValue(const QString &workingDirectory, const QString &configVar) const;
void setConfigValue(const QString &workingDirectory, const QString &configVar,
const QString &value) const;
QTextCodec *encoding(const QString &workingDirectory, const QString &configVar) const;
bool readDataFromCommit(const QString &repoDirectory, const QString &commit,