Make detection of empty repo also work after a git gcmaster
authorThomas Zander <zander@kde.org>
Tue, 1 Sep 2009 19:33:51 +0000 (1 21:33 +0200)
committerThomas Zander <zander@kde.org>
Tue, 1 Sep 2009 19:33:51 +0000 (1 21:33 +0200)
src/Configuration.cpp
src/hunks/ChangeSet.cpp

index 036d225..8b62ecf 100644 (file)
@@ -71,6 +71,10 @@ void Configuration::readVngConfig()
             m_repoMetaDataDir = git;
             QDir refs(git.absoluteFilePath(QLatin1String("refs/heads")));
             m_emptyRepo = refs.count() == 2; // only '.' and '..'
+            if (m_emptyRepo) {
+                QFile refs(git.absolutePath() + QLatin1String("/packed-refs"));
+                m_emptyRepo = !refs.exists();
+            }
             break;
         }
         if (!dir.cdUp())
index 7f7b9ce..8378f3c 100644 (file)
@@ -180,7 +180,11 @@ AbstractCommand::ReturnCodes ChangeSet::fillFromCurrentChanges(const QStringList
 {
     d->changeSetOnIndex = true;
     QDir refs(".git/refs/heads");
-    const bool emptyRepo = refs.count() == 2; // only '.' and '..'
+    bool emptyRepo = refs.count() == 2; // only '.' and '..'
+    if (emptyRepo) {
+        QFile refs(QLatin1String(".git/packed-refs"));
+        emptyRepo = !refs.exists();
+    }
     if (emptyRepo) { // all files added are new, just add all.
         QProcess git;
         QStringList arguments;