qlog: Expand to found revisions when searching

Bug #444862 reported by GuilhemBichot
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QBzr
Confirmed
Medium
Unassigned

Bug Description

Hello, I'm using the latest qbzr pulled today, and a recent bzr.dev.
I have this branch: https://code.launchpad.net/~mysql/mysql-server/mysql-6.0
with <email address hidden> as latest revision.
I do "bzr qlog", and in the search field I enter "1110" (seaching in Messages).
It displays a list of revisions: 2755 2730 2720 2716 2710 2498 1873.
None of those contains "1110" in its message. Actually they are all merge revisions, and they merged a revision containing "1110" in its message. Seeing only the merge revisions displayed is a problem, because the only solution (to find the revisions actually having "1110" in their message) is to expand each merge revision (clicking on the "+"), for example expanding 2498: this expands to 6 other merge revisions, which I also have to expand, etc. After expanding everything (which requires 52 clicks on "+" signs), I finally see the list of all (non-merge) revisions containing "1110" in their message, which is what I was after.
Contrast this with when searching for revids, for example for
<email address hidden>
which automatically expands merge revisions as needed and highlights the found revision (no expanding needed).
I understand one reason for the search-by-message behaviour: whereas searching by revid is selective, searching by message may not be very selective, and thus auto-expanding could produce a huge graph stalling qlog.
Are there solutions to this? Keep things unexpanded but offer an "expand all" button?
Same effect is observed when searching by author.

Tags: qlog mysql
tags: added: mysql
Revision history for this message
Craig Hewetson (craighewetson-deactivatedaccount) wrote :

Workaround for now:
Try running "bzr qlog --no-graph" this will show all revisions in expanded state and stacked one on top of the other.

Not sure if this workaround is good enough?

Revision history for this message
GuilhemBichot (guilhem-bichot) wrote :

Hello. At first, with the latest qbzr pulled today I get, doing "bzr qlog --no-graph":

Traceback:
 Traceback (most recent call last):
   File "/home/guilhem/.bazaar/plugins/qbzr/lib/trace.py", line 286, in reports_exception_decorate
     return f(*args, **kargs)
   File "/home/guilhem/.bazaar/plugins/qbzr/lib/log.py", line 269, in load
     self.log_list.load_locations(self.locations)
   File "/home/guilhem/.bazaar/plugins/qbzr/lib/logwidget.py", line 161, in load_locations
     self.load()
   File "/home/guilhem/.bazaar/plugins/qbzr/lib/logwidget.py", line 199, in load
     main_line_tip = self.graph_provider.branch_lines[()].revs[0]
 AttributeError: 'QLogGraphProvider' object has no attribute 'branch_lines'

I worked around this error temporarily like this:
=== modified file 'lib/logwidget.py'
--- lib/logwidget.py 2009-10-14 05:31:13 +0000
+++ lib/logwidget.py 2009-10-19 08:48:20 +0000
@@ -205,6 +205,8 @@
                                                    None, self) + 1) *2
             header.resizeSection(logmodel.COL_REV,
                                  fm.width(("8"*main_line_digets)+".8.888") + col_margin)
+ except:
+ pass
         finally:
             self.graph_provider.unlock_branches()

So that the exception is swallowed. Then --no-graph seems to work, this is a good enough workaround for searching by messages. Thank you.

Revision history for this message
Gary van der Merwe (garyvdm) wrote :

The above bug is now fixed.

Revision history for this message
Gary van der Merwe (garyvdm) wrote :

GuilhemBichot: You description is very verbose. I'm not sure exactly you want changed.

Your bug subject talks about the difference between searching for messages and locating revid/revno. But you description talks about expanding to found revisions in the search.

Please can you explain things to me a bit clearer.

Gary

Changed in qbzr:
status: New → Incomplete
Revision history for this message
GuilhemBichot (guilhem-bichot) wrote :

Hello.
When you search for a revision by revid (in the "bzr qlog" window, choose "Revision IDs" in the menu of the top right and enter a revision ID in the text field of the top left), this revision is automatically shown in the tree and the cursor is put on it.
Whereas when you search for a revision by message (choose "Messages"), this revision is invisible on the tree because it is a merge revision. I'm attaching a screenshot: I run "bzr qlog" in ~/.bazaar/plugins/qbzr, I search for "modelindex" in Messages, you can see the two displayed revisions (which are merges) do not contain such message; to find the revisions which actually contain this message, I have to click on the circled "+" to expand the two merge revisions. In the case of qbzr, it's not a big deal. But in the case of MySQL, where they are many trees and many merges, it took me literally 52 clicks to finally see the searched revision.
The MySQL use case is that I want to find revisions which implemented feature named "WL#1110", so I search for all revisions having "WL#1110" in their commit message.

Revision history for this message
GuilhemBichot (guilhem-bichot) wrote :
summary: - "bzr qlog" displays revision when searching in revids, but not when
- searching in messages
+ qlog: Expand to found revisions when searching
Changed in qbzr:
status: Incomplete → Confirmed
importance: Undecided → Medium
tags: added: qlog
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.