Bazaar dirstate locking

Stefan Monnier monnier at iro.umontreal.ca
Mon May 17 14:16:37 BST 2010


> Commits can change the working tree - both contents and metadata [in
> particular 'missing' files are garbage collected during a commit and
> the parent commit list is updated]. So, the lock is held because we
> can't update the parent commit list until the commit finishes, we
> don't want to have to rescan if someone else did a mutating operation
> while the commit was in progress, and we're waiting on the commit
> message.

IIUC what should ideally happen when you do a commit is:
- take a read-lock on the checkout (tho it can really only do
  that on the checkout metadata, in reality).
- collect the info it needs, read the commit message, make up
  a patch/bundle, send it to the repository.
- once it's all done, upgrade the lock to a write-lock and update the
  checkout metadata.


        Stefan



More information about the bazaar mailing list