From aaa7cd58514557dbba3294f071168a8d0d8ede3f Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Mon, 23 Jun 2014 16:55:18 +0300 Subject: [PATCH] Git: Fix sha1 resolving when a branch is added from detached HEAD Change-Id: I0d8ad988411256fc284b84f78be6f54362ab19ea Reviewed-by: Tobias Hunger --- src/plugins/git/branchmodel.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/plugins/git/branchmodel.cpp b/src/plugins/git/branchmodel.cpp index e69af06ae24..f499165872f 100644 --- a/src/plugins/git/branchmodel.cpp +++ b/src/plugins/git/branchmodel.cpp @@ -574,14 +574,19 @@ QModelIndex BranchModel::addBranch(const QString &name, bool track, const QModel const QString trackedBranch = fullName(startPoint); const QString fullTrackedBranch = fullName(startPoint, true); + QString startSha; QString output; QString errorMessage; QStringList args; args << (track ? QLatin1String("--track") : QLatin1String("--no-track")); args << name; - if (!fullTrackedBranch.isEmpty()) + if (!fullTrackedBranch.isEmpty()) { args << fullTrackedBranch; + startSha = sha(startPoint); + } else { + startSha = m_client->synchronousTopRevision(m_workingDirectory); + } if (!m_client->synchronousBranchCmd(m_workingDirectory, args, &output, &errorMessage)) { VcsBase::VcsBaseOutputWindow::instance()->appendError(errorMessage); @@ -606,7 +611,7 @@ QModelIndex BranchModel::addBranch(const QString &name, bool track, const QModel local = child; } int pos = positionForName(local, leafName); - BranchNode *newNode = new BranchNode(leafName, sha(startPoint), track ? trackedBranch : QString()); + BranchNode *newNode = new BranchNode(leafName, startSha, track ? trackedBranch : QString()); if (!added) beginInsertRows(nodeToIndex(local), pos, pos); newNode->parent = local;