Git - cannot pull, files are desynchonized somehow
Posted: Thu Jul 23, 2020 3:40 pm
One of my users is unable to do a Pull in the Git Staging window. The pull button reports her as 27 commits behind.
When she presses the Pull button, it shows "connecting" for the status, but then nothing happens - there's no warnings or errors, and the pull button remains at 27 commits behind.
When I invoke Oxygen from its Windows 10 .bat script via a command line window, I see the following messages during the pull:
We restarted her laptop and deleted the .lock file, and now we get a message that she cannot pull because she has local changes that would be overwritten. But here's the weird thing - somehow her locally modified files *are* the changes that are in those 27 missing commits!
Somehow she has the latest files (or almost all of them?) but her repo thinks she's behind and sees them as local modifications. Maybe Git crashed during a pull and left it in a locked and updated but not resolved state? How do I resolve this?
When she presses the Pull button, it shows "connecting" for the status, but then nothing happens - there's no warnings or errors, and the pull button remains at 27 commits behind.
When I invoke Oxygen from its Windows 10 .bat script via a command line window, I see the following messages during the pull:
Code: Select all
17:46:38.706 [pool-2-thread-1] ERROR com.oxygenxml.git.utils.GitOperationScheduler - java.util.concurrent.ExecutionException: org.eclipse.jgit.api.errors.JGitInternalException: Exception caught during execution of reset command. Cannot lock C:\Users\swatib\Documents\DITA\dita-digital\.git\index. Ensure that no other process has an open file handle on the lock file C:\Users\swatib\Documents\DITA\dita-digital\.git\index.lock, then you may delete the lock file and retry.
java.util.concurrent.ExecutionException: org.eclipse.jgit.api.errors.JGitInternalException: Exception caught during execution of reset command. Cannot lock C:\Users\swatib\Documents\DITA\dita-digital\.git\index. Ensure that no other process has an open file handle on the lock file C:\Users\swatib\Documents\DITA\dita-digital\.git\index.lock, then you may delete the lock file and retry.
at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:?]
at java.util.concurrent.FutureTask.get(FutureTask.java:191) ~[?:?]
at com.oxygenxml.git.utils.GitOperationScheduler$1.afterExecute(GitOperationScheduler.java:32) [git.support-2.2.0.jar:?]
...
Caused by: org.eclipse.jgit.api.errors.JGitInternalException: Exception caught during execution of reset command. Cannot lock C:\Users\swatib\Documents\DITA\dita-digital\.git\index. Ensure that no other process has an open file handle on the lock file C:\Users\swatib\Documents\DITA\dita-digital\.git\index.lock, then you may delete the lock file and retry.
at org.eclipse.jgit.api.ResetCommand.call(ResetCommand.java:209) ~[org.eclipse.jgit-5.7.0.202003110725-r.jar:5.7.0.202003110725-r]
at com.oxygenxml.git.service.GitAccess.pull(GitAccess.java:1095) ~[git.support-2.2.0.jar:?]
...
Caused by: org.eclipse.jgit.errors.LockFailedException: Cannot lock C:\Users\swatib\Documents\DITA\dita-digital\.git\index. Ensure that no other process has an open file handle on the lock file C:\Users\swatib\Documents\DITA\dita-digital\.git\index.lock, then you may delete the lock file and retry.
at org.eclipse.jgit.dircache.DirCache.lock(DirCache.java:218) ~[org.eclipse.jgit-5.7.0.202003110725-r.jar:5.7.0.202003110725-r]
at org.eclipse.jgit.dircache.DirCache.lock(DirCache.java:289) ~[org.eclipse.jgit-5.7.0.202003110725-r.jar:5.7.0.202003110725-r]
at org.eclipse.jgit.dircache.DirCache.lock(DirCache.java:255) ~[org.eclipse.jgit-5.7.0.202003110725-r.jar:5.7.0.202003110725-r]
at org.eclipse.jgit.lib.Repository.lockDirCache(Repository.java:1269) ~[org.eclipse.jgit-5.7.0.202003110725-r.jar:5.7.0.202003110725-r]
at org.eclipse.jgit.api.ResetCommand.resetIndex(ResetCommand.java:365) ~[org.eclipse.jgit-5.7.0.202003110725-r.jar:5.7.0.202003110725-r]
at org.eclipse.jgit.api.ResetCommand.call(ResetCommand.java:185) ~[org.eclipse.jgit-5.7.0.202003110725-r.jar:5.7.0.202003110725-r]
at com.oxygenxml.git.service.GitAccess.pull(GitAccess.java:1095) ~[git.support-2.2.0.jar:?]
...
Somehow she has the latest files (or almost all of them?) but her repo thinks she's behind and sees them as local modifications. Maybe Git crashed during a pull and left it in a locked and updated but not resolved state? How do I resolve this?