LibGit2Sharp索引被锁定 - 错误

Joe*_*uDa 7 versioning git github libgit2 libgit2sharp

有时我会尝试同时读取和写入Git存储库.但后来当我尝试提交文件时,我收到以下错误消息:

libgit2引发了一个错误.Category = Index(LockedFile).索引已锁定.这可能是由于同意或崩溃的过程.

提交按预期完成,为什么我收到此错误消息?我怎么摆脱它?

(如果LibGit2Sharp开发人员看到这一点:错误消息中存在拼写错误:concuRRRent.):D

Smy*_*ian 8

Dropbox也会干扰git操作.我在任何git sync之前暂停dropbox同步.


nul*_*ken 5

索引是git对象数据库和工作目录之间的网关通道.它在制作提交(即分段,取消暂存,...)或签出文件时使用.因此,同时执行这些操作可能引发这种类型的错误,因为两个操作都将竞争以获得对索引的访问.

有些人在libgit2级别上完成工作,以便为索引的使用提供更好的线程读取操作体验(例如参见libgit2/libgit2#2108).

但是,根据您执行的读/写操作的类型,您可能不需要浏览索引:

  • 例如,导航提交,树或检索Blob的内容不会利用索引.
  • 您也可以通过直接在对象数据库中插入对象来创建Blob,Trees和Commits,而无需通过索引(请参阅此StackOverflow应答以便快速入门).

如果LibGit2Sharp开发人员看到:错误消息中存在拼写错误:concuRRRent.

接得好!您是否想要打开Pull请求以帮助我们解决此问题?;-)

  • 如果`index.lock`文件来自崩溃的进程,则可以将其删除.这不会自动发生,因为它可能来自并发的实时进程. (10认同)