meld awfully slow opening Bazaar (bzr) repository
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
meld (Ubuntu) |
Fix Released
|
Low
|
Unassigned | ||
Natty |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
After upgrading from Ubuntu 10.10 to 11.04 I'm having trouble running meld on some Bazaar (bzr) repositories: meld seems to freeze up while bzr runs at 100 % CPU until I kill it. After some digging I have found that it's the invocation of "brz check" that seemingly runs into an endless loop:
/home/project/
Checking working tree at '/home/
Checking branch at 'file:/
Checking branch at 'file:/
Checking branch at 'file:/
Checking branch at 'file:/
Checking branch at 'file:/
Checking branch at 'file:/
Checking repository at 'file:/
\ checking commit contents:
bzr: interrupted
However, if I am really patient, bzr will run to an end, and I can start working, but on this particular repository it takes some 3 to 4 minutes with the CPU running hot, and that's every time I open meld on this repository!
Apparently, the invocation of "bzr check" was added in revision 24:
$ bzr diff -r23..24 meld/vc/bzr.py
=== modified file 'meld/vc/bzr.py'
--- meld/vc/bzr.py 2010-06-24 23:54:27 +0000
+++ meld/vc/bzr.py 2010-09-28 14:29:19 +0000
@@ -57,6 +57,11 @@
return [self.CMD] + self.CMDARGS + ["revert"]
def resolved_
return [self.CMD] + self.CMDARGS + ["resolve"]
+ def valid_repo(self):
+ if _vc.call([self.CMD, "check"]):
+ return False
+ else:
+ return True
def get_working_
return self.root
ProblemType: Bug
DistroRelease: Ubuntu 11.04
Package: meld 1.5.0-0ubuntu1.1
ProcVersionSign
Uname: Linux 2.6.38-14-generic x86_64
Architecture: amd64
Date: Wed Apr 25 14:31:29 2012
InstallationMedia: Ubuntu 10.04 LTS "Lucid Lynx" - Release amd64 (20100429)
PackageArchitec
SourcePackage: meld
UpgradeStatus: Upgraded to natty on 2012-04-23 (2 days ago)
[Impact]
First of all, the bug is limited to Bazaar repositories. Secondly, the degree of impact depends on repository size and complexity: On a large and complex repository the bug can add minutes to meld startup time, during which time meld is completely unresponsive, while even on a small repository, "bzr check" is a lot slower than "bzr status", which impacts unfavorably on meld startup time.
[/Impact]
[Development Fix]
In the development branch, the bug has been implicitly fixed by fetching a later release from upstream, where the invocation of "bzr check" has been changed to "bzr status".
[/Development Fix]
[Stable Fix]
A minimal stable fix is to back-port the development fix in isolation.
[/Stable Fix]
[Test Case]
1) Navigate to a Bazaar repository, where the invocation of "bzr check" takes more than a few seconds' time.
2) Open meld on this repository.
Expected behavior: Meld opens quickly with the repository loaded.
Actual behavior: Meld opens with the UI frozen until the "bzr check" command has run to finish.
[/Test Case]
[Regression Potential]
The regression potential is deemed to be minimal. In essence, the fix means that "bzr status" will be used instead of "bzr check" to implement the method valid_repo. As long as the return value of "bzr status" reflects the basic validity of a Bazaar repository, there should be no regression potential
[/Regression Potential]
description: | updated |
description: | updated |
summary: |
- bzr check awfully slow checking repository in valid_repo + meld awfully slow opening Bazaar (bzr) repository in valid_repo |
summary: |
- meld awfully slow opening Bazaar (bzr) repository in valid_repo + meld awfully slow opening Bazaar (bzr) repository |
no longer affects: | meld (Ubuntu Oneiric) |
tags: |
added: verification-done removed: verification-needed |
I find that this is fixed in revision 29 (current trunk); it uses "bzr
status" instead of "bzr check" to check for a valid repo.