LibGit2Sharp索引已锁定-错误

LibGit2Sharp索引已锁定-错误,git,github,versioning,libgit2,libgit2sharp,Git,Github,Versioning,Libgit2,Libgit2sharp,有时,我尝试同时读取和写入Git存储库。 但之后,我在尝试提交文件时收到以下错误消息: libgit2引发了一个错误。类别=索引(锁定文件)。这个 索引已锁定。这可能是由于并发或崩溃 过程 提交按预期完成,为什么会收到此错误消息?我怎样才能摆脱它 (如果LibGit2Sharp开发人员发现:错误消息Concurrent中存在拼写错误。):D索引是git对象数据库和工作目录之间的网关通道。它用于制作提交(即暂存、取消暂存等)或签出文件。因此,同时执行这些操作可能会引发此类错误,因为两个操作都将竞相

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

libgit2引发了一个错误。类别=索引(锁定文件)。这个 索引已锁定。这可能是由于并发或崩溃 过程

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


(如果LibGit2Sharp开发人员发现:错误消息Concurrent中存在拼写错误。):D

索引是git对象数据库和工作目录之间的网关通道。它用于制作提交(即暂存、取消暂存等)或签出文件。因此,同时执行这些操作可能会引发此类错误,因为两个操作都将竞相访问索引

在libgit2级别上做了一些工作,使索引的使用成为线程读取操作的更好体验(例如,请参见

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

  • 例如,导航提交、树或检索Blob的内容不会利用索引
  • 您还可以通过直接在对象数据库中插入对象来创建blob、tree和commit,而无需通过索引(请参见此了解快速入门)
如果LibGit2Sharp开发人员看到以下情况:错误消息Concurrent中存在拼写错误


接得好!您是否愿意打开一个拉动请求来帮助我们解决此问题?;-)

Dropbox也会干扰git操作。在进行任何git同步之前,我会暂停dropbox同步。

有一次我遇到了相同的错误,我删除了创建我的存储库的.git文件夹中的index.lock文件,然后问题得到了解决。

我得到了一个循环,该循环会对文件进行1000次分级和提交。每次提交后都会更改文件内容。同时,我迭代存储库中的所有提交,以获取文件的历史记录。在某个时候,我收到消息“libgit2.Category=Os引发了一个错误(错误)。无法将锁文件重命名为.git/index:Access is denied。”之后,每次提交后,我都会从我的开始帖子中收到错误消息。我可以修复存储库吗?如果
index.lock
文件来自崩溃的进程,您可以将其删除。这不是自动发生的,因为它可能来自一个并发的实时进程。重新启动、终止进程等对我不起作用。但是手动删除index.lock(位于隐藏文件夹“.git”中)做到了这一点。