Egit in Eclipse fehlender Baum

Lesezeit: 5 Minuten

Sieht so aus, als hätte ich einen fehlenden Baumfehler. Nur um fair zu sein, ich habe meine lokalen Dateien auf Git total durcheinander gebracht und hatte die Nase voll und habe eine vollständige Festplattenlöschung auf meinem Repo durchgeführt und vom Remote-Master neu geklont. Jetzt bekomme ich folgenden Fehler. Eines der ersten Dinge, die ich tat, war, eine lokale Niederlassung für meine Arbeit zu gründen.

Wahrscheinlich hätte ich einen Großteil meiner Arbeit wiederherstellen können, wenn ich nicht alles gelöscht hätte, aber hey, pass angespannt – richtig? (Dies zeigt vielleicht auch meinen momentanen Geisteszustand mit Git und meinem Projekt …)

Wenn es einen Unterschied macht, mache ich ein Android-Projekt.

Ich lese diesen Beitrag und er scheint hilfreich zu sein, aber ich habe keine Ahnung, wie ich meinen “a30df1173f14dea24df661f1eef749fed2f4e1ed” sha1-Hash finden soll.

Tun

git ls-tree a30df1173f14dea24df661f1eef749fed2f4e1ed

Gibt mir folgendes

100755 blob 2851ba4fdf2a134f8fc97fd60b3045b73cd6039b    .DS_Store
100755 blob 3f9691c5dda29b09cb96060fd6ec7017f6c671d2    .classpath
100755 blob c50d3b4fe2f6221db617840561dc94d7690bb883    .gitignore
100755 blob 6b58f1723a252cfd314d108fadac4b71a4209c1c    .project
100755 blob 39f00018845d776de324707090d26c5153720e22    AndroidManifest.xml
100755 blob 94a9ed024d3859793618152ea559a168bbcbb5e2    COPYING
100755 blob c1853e4c312a938d5890f5f4e0844782429ba11e    default.properties
040000 tree 423accda532f8788f916b26b863ddf32e2896aa6    docs
160000 commit 0000000000000000000000000000000000000000  eagle vision
100755 blob 424f2604203eabd2310165b143b430326aa87ee7    ic_launcher-web.png
040000 tree 2b83cd828cd11a11e84a2d8f646dfa40de109827    libs
100644 blob 8a7b1fac8f8c12e925e56776f225730c4712f92a    lint.xml
040000 tree c0182f719fccf5fc8b0d7658c3d15fe4deac0d9e    plugins
100755 blob f2fe1559a217865a5454add526dcc446f892385b    proguard-project.txt
100755 blob 9ae01de96458dbded45d2a442c09c0f4d33e473a    project.properties
040000 tree 3c9446b3bb23eebe80942992ee03e01a7390ba80    res
040000 tree 895e957ccc4ee642127c25a3481d784302e44a70    src

Von allen scheint die Adlervision mit all diesen Nullen seltsam zu sein:

160000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Nicht wirklich sicher, wohin ich damit gehe. Der Versuch, die Git-FAQ durchzugehen, führt nicht sehr weit.

Hier ist der ganze Fehler:

eclipse.buildId=v22.0.0-675183
java.version=1.7.0_21
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Framework arguments:  -product com.android.ide.eclipse.adt.package.product
Command-line arguments:  -os linux -ws gtk -arch x86_64 -product com.android.ide.eclipse.adt.package.product

Error
Sun Oct 13 21:11:59 CDT 2013
Missing tree 2ec4e5b3e0e3d9ccc766fd1ed0dccaedcef3e53a

org.eclipse.jgit.errors.MissingObjectException: Missing tree 2ec4e5b3e0e3d9ccc766fd1ed0dccaedcef3e53a
    at org.eclipse.jgit.storage.file.WindowCursor.open(WindowCursor.java:127)
    at org.eclipse.jgit.treewalk.CanonicalTreeParser.reset(CanonicalTreeParser.java:201)
    at org.eclipse.jgit.treewalk.TreeWalk.parserFor(TreeWalk.java:984)
    at org.eclipse.jgit.treewalk.TreeWalk.addTree(TreeWalk.java:468)
    at org.eclipse.egit.core.synchronize.GitSyncCache.loadDataFromGit(GitSyncCache.java:130)
    at org.eclipse.egit.core.synchronize.GitSyncCache.getAllData(GitSyncCache.java:85)
    at org.eclipse.egit.core.synchronize.GitSyncCache.getAllData(GitSyncCache.java:63)
    at org.eclipse.egit.core.synchronize.GitResourceVariantTreeSubscriber.refresh(GitResourceVariantTreeSubscriber.java:180)
    at org.eclipse.team.core.subscribers.Subscriber.refresh(Subscriber.java:466)
    at org.eclipse.egit.core.synchronize.GitSubscriberMergeContext.handleRepositoryChange(GitSubscriberMergeContext.java:142)
    at org.eclipse.egit.core.synchronize.GitSubscriberMergeContext.access$0(GitSubscriberMergeContext.java:133)
    at org.eclipse.egit.core.synchronize.GitSubscriberMergeContext$1.indexDiffChanged(GitSubscriberMergeContext.java:68)
    at org.eclipse.egit.core.internal.indexdiff.IndexDiffCache.notifyListeners(IndexDiffCache.java:98)
    at org.eclipse.egit.core.internal.indexdiff.IndexDiffCache.access$0(IndexDiffCache.java:89)
    at org.eclipse.egit.core.internal.indexdiff.IndexDiffCache$1.indexDiffChanged(IndexDiffCache.java:84)
    at org.eclipse.egit.core.internal.indexdiff.IndexDiffCacheEntry.notifyListeners(IndexDiffCacheEntry.java:425)
    at org.eclipse.egit.core.internal.indexdiff.IndexDiffCacheEntry.access$8(IndexDiffCacheEntry.java:417)
    at org.eclipse.egit.core.internal.indexdiff.IndexDiffCacheEntry$5.run(IndexDiffCacheEntry.java:358)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

Egit in Eclipse fehlender Baum
VonC

160000 ist ein spezieller Eintrag zum Aufzeichnen eines Submoduls.
Ein SHA1 gleich 40 Nullen bedeutet, dass das Submodul gelöscht wurde (siehe git-submodule.sh) oder in einem unbekannter Zustand:

Wenn Sie etwas mit einem Arbeitsbaumstatus vergleichen und wenn der Arbeitsbaumstatus schmutzig ist, zeigen wir immer 0{40} bedeutet “es ist schmutzig und wir wissen nicht, wie der Objektname dieses Dings lautet, bis Sie es tatsächlich mit git-update-index (oder git-add) ausführen” (und an diesem Punkt würde es aufhören, schmutzig zu sein).
Für Blobs (sei es eine normale Datei oder ein symbolischer Link) hat dies den Vorteil, dass hash-object nicht ausgeführt werden muss, um den Objektnamen eines Objekts zu erhalten, das erstellt würde, wenn Sie es tatsächlich mit git hinzufügen würden.

Wenn wir prüfen, ob es schmutzig ist, führen wir bereits ein lstat(2) aus und kennen den Typ davon, sodass wir die Modusbits anzeigen können. Sie sehen also 100644, 100755 oder 120000 für Blobs. Analog für ein Submodul.

Für ein Untermodul könnten wir den Wert aus $sub/.git/HEAD lesen, aber es ist konsistenter, 0{40} auf der Seite des Arbeitsbaums anzuzeigen (normalerweise auf der rechten Seite, es sei denn, Sie verwenden -R).

Überprüfen Sie also, ob Sie eine haben .git/modules/asubmodule/HEAD.
Oder versuchen Sie, Ihren Submoduleintrag zu bereinigen, und deklarieren Sie dieses Submodul dann erneut als Eagle-Vision-URL.

Aber Ihr fehlender Baum hängt möglicherweise nicht mit diesem Eintrag zusammen.

  • Ich bin dem Link gefolgt, um einen Submoduleintrag zu bereinigen – aber ich bekomme nicht einmal

    Benutzer1741874

    15. Oktober 2013 um 1:45 Uhr

  • @xphill64x kannst du es mal versuchen git rm eagle vision?

    – VonC

    15. Oktober 2013 um 5:08 Uhr

  • git rm ‘eagle vision’ stimmte mit keinen Dateien überein.

    Benutzer1741874

    15. Oktober 2013 um 13:54 Uhr


  • @ xphil64x git rm --cached 'eagle vision' dann?

    – VonC

    15. Oktober 2013 um 13:55 Uhr

  • Immer noch nicht gefunden. Ich erhalte einen zusätzlichen Fehler in git fsck über eine fehlerhafte E-Mail in einem anderen Commit. Ich habe das anstößige Tag gefunden [extra <] aber ich habe keine Ahnung, wie ich den Commit bearbeiten soll; Vorschläge?

    Benutzer1741874

    15. Oktober 2013 um 14:01 Uhr

987220cookie-checkEgit in Eclipse fehlender Baum

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy