2014-04-22 25 views
7

Bazen okumak ve aynı zamanda bir Git depo yazmaya çalışıyorum. Ama sonra dosya işlemeye çalıştığımda aşağıdaki hata iletisini alıyorum:LibGit2Sharp Endeksi kilitlendi - Hata

Libgit2 tarafından bir hata oluştu. Kategori = Dizin (LockedFile). dizini kilitlendi. Bunun nedeni, bir çakışma veya işleminden kaynaklanabilir.

İşlem beklendiği gibi yapılmış, neden bu hata iletisini alıyorum? Ondan nasıl kurtulurum?

(a LibGit2Sharp geliştirici görürse bu: Hata iletisinde bir yazım misstake vardır. ConcuRRRent): endeksi git nesne veritabanı ve çalışma dizininin arasında bir geçit kanalı

cevap

5

D. Bir iş parçacığı işlenirken (örneğin, evreleme, kayıtsızlık, ..) veya dosyaları teslim ederken kullanılır. Bu işlemlerin eşzamanlı olarak gerçekleştirilmesi, her iki işlemin de endekse erişmek için yarışacağından bu tür hatalar ortaya çıkarabilir.

vida dişleri için daha iyi bir deneyim okuma işlemlerini endeksinin kullanımını yapmak için libgit2 düzeyinde yapılan bazı çalışmalar (örneğin libgit2/libgit2#2108 bakınız).

Örneğin
  • , yönlendirecek ezberleyin bir ağaç ya da bir içeriğini almamız:

    Ancak, gerçekleştirmek okuma/yazma işlemlerinin türüne bağlı olarak, dizine geçmesi gerek olmayabilir Blob indeksi kullanmaz.

  • Ayrıca, nesne veritabanlarına doğrudan nesne ekleyerek, dizinden geçmeden Blobs, Trees ve Commits oluşturabilirsiniz (Hızlı başlangıç ​​için bkz. Bu StackOverflow answer).

bir LibGit2Sharp geliştirici bu görürse: Hata iletisinde bir yazım hata vardır: concuRRRent.

İyi tutuş! Bunu düzeltmemize yardımcı olması için bir Pull isteği açmak ister misiniz? ;-)

+1

Bir dosyayı 1000 kez geçiren ve işleyen bir döngüye sahibim. Her içerikten sonra dosya içeriği değiştirildi. Aynı zamanda bir dosyanın geçmişini almak için depodaki tüm taahhütleri yineliyorum. Bir noktada ben mesajı alıyorum ". Bir hata libgit2 Kategori tarafından büyütüldü = Os (Hata)/index .git için kilit dosyası yeniden adlandırılamadı: erişim engellendi." Daha sonra, her işlemden sonra başlangıç ​​defterimdeki hata iletisini alıyorum. Depoyu bir şekilde onarabilir miyim? – JoeLiBuDa

+10

'index.lock' dosyası kilitli bir işlemden geliyorsa, kaldırabilirsiniz. Bu, otomatik olarak gerçekleşmez çünkü eşzamanlı bir canlı işlemden olabilir. –

+0

@ CarlosMartínNieto Sorunumu çözer! Harika! – JoeLiBuDa

8

Dropbox çok git operasyonları engelleyebilir. Herhangi bir git senkronizasyonundan önce dropbox senkronizasyonunu duraklatırım.

+0

Dropbox yüklü değil ... – JoeLiBuDa