summaryrefslogtreecommitdiff
path: root/src/plugins/git/gitversioncontrol.cpp
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2012-10-21 15:12:21 +0200
committerOrgad Shaneh <orgads@gmail.com>2012-10-22 12:38:43 +0200
commita1e3a5de9ee9b2d4b068ff3568aea8594d1aea65 (patch)
tree940f8179918338f836bb0b3a6019c4ae442fc83a /src/plugins/git/gitversioncontrol.cpp
parent4eedda04d3e893d9a1a7fe02673598254ad909a4 (diff)
downloadqt-creator-a1e3a5de9ee9b2d4b068ff3568aea8594d1aea65.tar.gz
Git: Refactor branch/HEAD access
Change-Id: I0c9955737033c0f839ac1f6ea053fecc20c24d48 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Diffstat (limited to 'src/plugins/git/gitversioncontrol.cpp')
-rw-r--r--src/plugins/git/gitversioncontrol.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/plugins/git/gitversioncontrol.cpp b/src/plugins/git/gitversioncontrol.cpp
index 363df7c945..eaa8c77370 100644
--- a/src/plugins/git/gitversioncontrol.cpp
+++ b/src/plugins/git/gitversioncontrol.cpp
@@ -161,10 +161,10 @@ QString GitVersionControl::vcsCreateSnapshot(const QString &topLevel)
return stashMessage;
if (repositoryUnchanged) {
// For unchanged repository state: return identifier + top revision
- QString topRevision;
- QString branch;
- if (!m_client->synchronousTopRevision(topLevel, &topRevision, &branch))
+ QString topRevision = m_client->synchronousTopRevision(topLevel);
+ if (topRevision.isEmpty())
return QString();
+ QString branch = m_client->synchronousBranch(topLevel);
const QChar colon = QLatin1Char(':');
QString id = QLatin1String(stashRevisionIdC);
id += colon;
@@ -201,9 +201,13 @@ bool GitVersionControl::vcsRestoreSnapshot(const QString &topLevel, const QStrin
break;
const QString branch = tokens.at(1);
const QString revision = tokens.at(2);
- success = m_client->synchronousReset(topLevel)
- && m_client->synchronousCheckoutBranch(topLevel, branch)
- && m_client->synchronousCheckoutFiles(topLevel, QStringList(), revision);
+ success = m_client->synchronousReset(topLevel);
+ if (success && !branch.isEmpty()) {
+ success = m_client->synchronousCheckoutBranch(topLevel, branch) &&
+ m_client->synchronousCheckoutFiles(topLevel, QStringList(), revision);
+ } else {
+ success = m_client->synchronousCheckoutBranch(topLevel, revision);
+ }
} else {
// Restore stash if it can be resolved.
QString stashName;