Coincidentally, a colleague and I sat down and had a bit of a look at this yesterday. We narrowed the problem down to the commit part of qbzr too.
It appears to be related to some functionality around qbzr trying to populate the commit message text box: if you attempted a commit previously but failed, that commit message gets written to a variable called 'message' in branch.conf. The lock issue seems to be around updating that file (either to remove the message on successful commit or to add the message on commit failure).
Commenting out line 724 (self._save_or_wipe_commit_data()) and line 720 (self._save_or_wipe_commit_data()) of plugins\qbzr\lib\commit.py appears to eliminate the problem for me. Of course, I lose the functionality that stores my commit message between failed commits but this is something I can live with easier than the locking issue.
Please note that I'm not especially proficient with Python nor am I familiar with the bazaar or qbzr source. The change I made may well have an undesirable impact elsewhere!
Fingers crossed that's useful and if there's anything else I can do to help please let me know.
Coincidentally, a colleague and I sat down and had a bit of a look at this yesterday. We narrowed the problem down to the commit part of qbzr too.
It appears to be related to some functionality around qbzr trying to populate the commit message text box: if you attempted a commit previously but failed, that commit message gets written to a variable called 'message' in branch.conf. The lock issue seems to be around updating that file (either to remove the message on successful commit or to add the message on commit failure).
Commenting out line 724 (self._ save_or_ wipe_commit_ data()) and line 720 (self._ save_or_ wipe_commit_ data()) of plugins\ qbzr\lib\ commit. py appears to eliminate the problem for me. Of course, I lose the functionality that stores my commit message between failed commits but this is something I can live with easier than the locking issue.
Please note that I'm not especially proficient with Python nor am I familiar with the bazaar or qbzr source. The change I made may well have an undesirable impact elsewhere!
Fingers crossed that's useful and if there's anything else I can do to help please let me know.