On Mon, Jan 12, 2009 at 3:30 AM, Steve Borho <[email protected]> wrote: > On Sun, Jan 11, 2009 at 9:24 PM, Peter Ruibal <[email protected]> wrote: >> >> >> On Sun, Jan 11, 2009 at 3:39 PM, TK Soh <[email protected]> wrote: >>> >>> On Sun, Jan 11, 2009 at 7:39 PM, Peter Ruibal <[email protected]> wrote: >>> > >>> > >>> > On Sat, Jan 10, 2009 at 4:47 PM, TK Soh <[email protected]> wrote: >>> >> >>> >> You need to try it in a repo where a merge cset has a parent located >>> >> outside the displayed pages (the changelog viewer loads changesets by >>> >> pages of [default] 500). >>> > >>> > I tried making a sample repository at >>> > http://bitbucket.org/fmoo/_dummy-500-cset-parent/ , but I don't think >>> > my >>> > hgtk log is producing the same result as yours... check out cset 501 >>> > (tagged with 'parent500old') >>> >>> What did you see? I saw the same bug with your repo, where clicking on >>> the parent link of cset 501 didn't bring it to cset 0. >> >> I see it now... yeah, that's weird. I must have been out of it earlier >> today... >> >> So the following dangerous hack (!!) to hggtk.vis.treeview worked for me >> if it's worth anything:
First of all, a very interesting hack indeed ;-) >> def set_revision_id(self, revid): >> """Change the currently selected revision. >> >> :param revid: Revision id of revision to display. >> """ >> + if revid not in self.index: Why another 'if' and instead of 'else'? >> + gobject.idle_add(self.next_revision_batch) >> + gobject.idle_add(self.set_revision_id, revid, priority = >> gobject.PRIORITY_LOW) >> + return >> + The documentation on idle_add isn't very clear. Does it guarantee set_revision_id() will be called after next_revision_batch is done? Another thing it's not very clear is that whether gobject.PRIORITY_LOW is intended for idle_add, as I can see two constants carrying the string "IDLE": gobject.PRIORITY_HIGH_IDLE and gobject.PRIORITY_DEFAULT_IDLE. Also, what is the next_revision_batch call still doesn't load the revid needed? >> if revid in self.index: >> row = self.index[revid] >> self.treeview.set_cursor(row) >> self.treeview.grab_focus() > > This isn't too bad of a work-around if there were checks to make sure that: > > 1) Only one instance of 'next_revision_batch' were allowed to be running at > a time > 2) Stops when all history has been loaded Are we at risk of running into re-entrance issue? ------------------------------------------------------------------------------ Check out the new SourceForge.net Marketplace. It is the best place to buy or sell services for just about anything Open Source. http://p.sf.net/sfu/Xq1LFB _______________________________________________ Tortoisehg-develop mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop
