Windows上的Git结帐和重置偶尔会显示随机文件已更改

Mic*_*hue 8 windows git windows-vista

通常当我检查不同的分支或重置时,我会从一个到十几个文件的窗口中获得"权限被拒绝"错误 - 但是特定文件因运行而异.这是我刚刚做过的测试的输出,GIT_TRACE = 1.跟踪仅在错误消息之前添加了一行:

$ git checkout master
trace: built-in: git 'checkout' 'master'
error: git checkout-index: unable to create file dotnet/src/myfile.cs (Permission denied)
D       dotnet/src/myfile.cs
Switched to branch "master"

我很确定这是在我的机器上使用病毒扫描程序或其他索引服务的比赛.如果竞争持续存在,我可以使用sysinternals来查看文件句柄打开的进程.但是,它发生得很快,我不知道有一个工具可以告诉我这个冲突.令人惊讶的是,我没有发现任何描述类似行为的人.如何使这些错误停止或进一步诊断问题?

我特别希望通过识别正在进行同步访问的进程来结束文件访问竞争. 因此,对于在拒绝编辑时显示哪个进程具有文件锁定的工具的建议将非常有用.我知道'解锁器'和类似的工具会告诉我哪个进程持有文件锁定一段时间.这不适用于此问题,因为该过程会在非常短的时间内锁定文件.所以该工具需要在没有我干预的情况下收集适当的数据,因为我太慢了.

myn*_*hno 5

它可能是Windows搜索索引器,它会在创建索引文件时尝试执行索引文件.我使用svn checkout遇到了这个问题,并且在成功签出完整项目之前必须从索引中排除该目录.

  • 关闭我的repo文件夹的索引修复了这个问题.Windows搜索索引器配置为默认索引您的用户文件夹,因此如果您的存储库存储在"我的文档"或类似文件中,这可能是原因.排除目录的说明:http://www.windowsnetworking.com/articles-tutorials/windows-7/Exploring-Windows-7s-New-Search-Features-Part2.html (2认同)

And*_*son 5

请参阅我的帖子https://connect.microsoft.com/VisualStudio/feedback/details/676699/cannot-open-linker-output-for-writing-or-cannot-close-file

不是git相关的!

Sysinternals的进程监视器显示Windows资源管理器干扰了新创建的文件,可能是由于某些插件或什么,但它发生了.


Mic*_*hue 3

禁用UAC虚拟化似乎已经解决了这个问题。

请参阅http://code.google.com/p/msysgit/issues/detail?id=320