forked from qt-creator/qt-creator
Git: Improve the Checkout > Create Branch > Add dialog
Suggest a local branch name here also. Fixes: QTCREATORBUG-23797 Change-Id: I16228507858380bc2ff6dc8590279155624d3d28 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
committed by
André Hartmann
parent
7b73d286fc
commit
a59420a9c3
@@ -319,19 +319,11 @@ bool BranchView::add()
|
||||
|
||||
const QStringList localNames = m_model->localBranchNames();
|
||||
|
||||
QString suggestedName;
|
||||
if (isTracked) {
|
||||
const QString suggestedNameBase = trackedBranch.mid(trackedBranch.lastIndexOf('/') + 1);
|
||||
suggestedName = suggestedNameBase;
|
||||
int i = 2;
|
||||
while (localNames.contains(suggestedName)) {
|
||||
suggestedName = suggestedNameBase + QString::number(i);
|
||||
++i;
|
||||
}
|
||||
}
|
||||
|
||||
BranchAddDialog branchAddDialog(localNames, BranchAddDialog::Type::AddBranch, this);
|
||||
if (isTracked) {
|
||||
const QString suggestedName = GitClient::suggestedLocalBranchName(localNames, trackedBranch);
|
||||
branchAddDialog.setBranchName(suggestedName);
|
||||
}
|
||||
branchAddDialog.setTrackedBranchName(isTracked ? trackedBranch : QString(), !isLocal);
|
||||
branchAddDialog.setCheckoutVisible(true);
|
||||
|
||||
|
@@ -1285,7 +1285,9 @@ QStringList GitClient::setupCheckoutArguments(const QString &workingDirectory,
|
||||
}
|
||||
}
|
||||
|
||||
const QString suggestedName = suggestedLocalBranchName(localBranches, remoteBranch);
|
||||
BranchAddDialog branchAddDialog(localBranches, BranchAddDialog::Type::AddBranch, ICore::dialogParent());
|
||||
branchAddDialog.setBranchName(suggestedName);
|
||||
branchAddDialog.setTrackedBranchName(remoteBranch, true);
|
||||
|
||||
if (branchAddDialog.exec() != QDialog::Accepted)
|
||||
@@ -3596,6 +3598,20 @@ GitRemote::GitRemote(const QString &location) : Core::IVersionControl::RepoUrl(l
|
||||
isValid = QDir(path).exists() || QDir(path + ".git").exists();
|
||||
}
|
||||
|
||||
QString GitClient::suggestedLocalBranchName(const QStringList localNames,
|
||||
const QString trackedBranch)
|
||||
{
|
||||
const QString suggestedNameBase = trackedBranch.mid(trackedBranch.lastIndexOf('/') + 1);
|
||||
QString suggestedName = suggestedNameBase;
|
||||
int i = 2;
|
||||
while (localNames.contains(suggestedName)) {
|
||||
suggestedName = suggestedNameBase + QString::number(i);
|
||||
++i;
|
||||
}
|
||||
|
||||
return suggestedName;
|
||||
}
|
||||
|
||||
void GitClient::addChangeActions(QMenu *menu, const QString &workingDir, const QString &change)
|
||||
{
|
||||
QTC_ASSERT(!change.isEmpty(), return);
|
||||
|
@@ -354,6 +354,8 @@ public:
|
||||
VcsBase::VcsCommand *asyncUpstreamStatus(const QString &workingDirectory,
|
||||
const QString &branch, const QString &upstream);
|
||||
|
||||
static QString suggestedLocalBranchName(const QStringList existingLocalNames,
|
||||
const QString trackedBranch);
|
||||
static void addChangeActions(QMenu *menu, const QString &workingDir, const QString &change);
|
||||
|
||||
private:
|
||||
|
Reference in New Issue
Block a user