diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2012-10-21 15:12:21 +0200 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2012-10-22 12:38:43 +0200 |
commit | a1e3a5de9ee9b2d4b068ff3568aea8594d1aea65 (patch) | |
tree | 940f8179918338f836bb0b3a6019c4ae442fc83a /src/plugins/git/gitversioncontrol.cpp | |
parent | 4eedda04d3e893d9a1a7fe02673598254ad909a4 (diff) | |
download | qt-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.cpp | 16 |
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; |