On Wed, May 9, 2018 at 4:15 PM, Derrick Stolee <dstolee@xxxxxxxxxxxxx> wrote: > We use the lockfile API to avoid multiple Git processes from writing to > the commit-graph file in the .git/objects/info directory. In some cases, > this directory may not exist, so we check for its existence. > > The existing code does the following when acquiring the lock: > > 1. Try to acquire the lock. > 2. If it fails, try to create the .git/object/info directory. > 3. Try to acquire the lock, failing if necessary. > > The problem is that if the lockfile exists, then the mkdir fails, giving > an error that doesn't help the user: > > "fatal: cannot mkdir .git/objects/info: File exists" > > While technically this honors the lockfile, it does not help the user. > > Instead, do the following: > > 1. Check for existence of .git/objects/info; create if necessary. > 2. Try to acquire the lock, failing if necessary. > > The new output looks like: > > fatal: Unable to create '/home/stolee/git/.git/objects/info/commit-graph.lock': File exists. > > Another git process seems to be running in this repository, e.g. > an editor opened by 'git commit'. Please make sure all processes > are terminated then try again. If it still fails, a git process > may have crashed in this repository earlier: > remove the file manually to continue. This to me is a much better description than the current commit message in 1/1 and probably should be the commit message of 1/1. -- Duy