2012-02-24 107 views
2

我創建了測試Android應用程序。在應用程序中,我調用克隆操作使用jgit和我得到錯誤:Jgit克隆在Android上

Caused by: org.eclipse.jgit.errors.MissingObjectException: Missing unknown e69de29 
org.eclipse.jgit.storage.file.WindowCursor.open(WindowCursor.java:125) 
org.eclipse.jgit.lib.ObjectReader.open(ObjectReader.java:228) 
org.eclipse.jgit.dircache.DirCacheCheckout.checkoutEntry(DirCacheCheckout.java:926) 
org.eclipse.jgit.dircache.DirCacheCheckout.doCheckout(DirCacheCheckout.java:444) 
org.eclipse.jgit.dircache.DirCacheCheckout.checkout(DirCacheCheckout.java:378) 
org.eclipse.jgit.api.CloneCommand.checkout(CloneCommand.java:224) 
org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:121) 

但在agit中,此操作執行沒有錯誤。我研究了agit的代碼,但不明白爲什麼會發生這種情況。

告訴我,我做錯了什麼?

我的代碼:

Git.cloneRepository() 
    .setBare(false) 
    .setDirectory(dir) 
    .setCloneAllBranches(false) 
    .setRemote("origin") 
    .setURI(uri) 
.call(); 

回答

0

你可能想嘗試呼叫前添加setNoCheckout(真)()。退房時出現錯誤。然後您可以使用單獨的命令查看。

對於你的問題,也許沒有設置分支。看看yourdir/.git /.../ branches /例如,或克隆後,嘗試找到當前分支。也許它沒有定義。 yourdir/.git/HEAD文件也很有趣。