[英]Git checkout and reset on Windows occasionally shows random files have changed
通常當我檢查不同的分支或重置時,我會從一個到十幾個文件的窗口中獲得“權限被拒絕”錯誤 - 但是特定文件因運行而異。 這是我剛剛做過的測試的輸出,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來查看文件句柄打開的進程。 但是,它發生得很快,我不知道有一個工具可以告訴我這個沖突。 令人驚訝的是,我沒有發現任何描述類似行為的人。 如何使這些錯誤停止或進一步診斷問題?
我特別希望通過識別正在進行同步訪問的進程來結束文件訪問競爭。 因此,對於在拒絕編輯時顯示哪個進程具有文件鎖定的工具的建議將非常有用。 我知道'解鎖器'和類似的工具會告訴我哪個進程持有文件鎖定一段時間。 這不適用於此問題,因為該過程會在非常短的時間內鎖定文件。 所以該工具需要在沒有我干預的情況下收集適當的數據,因為我太慢了。
它可能是Windows搜索索引器,它會在創建索引文件時嘗試執行索引文件。 我使用svn checkout遇到了這個問題,並且在成功簽出完整項目之前必須從索引中排除該目錄。
不是git相關的!
Sysinternals的進程監視器顯示Windows資源管理器干擾了新創建的文件,可能是由於某些插件或什么,但它發生了。
禁用UAC虛擬化似乎解決了問題。
你可以嘗試sys內部的Filemon
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.