[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [Subclipse-dev] Revision Graph

From: Steve Elsemore <selsemore_at_collab.net>
Date: Mon, 06 Oct 2008 10:34:27 -0700

Alberto,

We're not currently seeing the loop problem. If it comes up again, I'll try
to debug it, in which case your comments will be helpful. Thanks.

Steve

On 10/6/08 9:52 AM, "Alberto Gimeno" <gimenete_at_gmail.com> wrote:

> Steve, your changes are awesome!
>
> I have added several comments to the findRootNode() method. Tell me if
> they are understable :)
>
> You could tell me if there is a public repository that has the problem
> of infinite loop in wich I can make some tests.
>
>
> On Mon, Oct 6, 2008 at 6:09 PM, Steve Elsemore <selsemore_at_collab.net> wrote:
>> Thanks Alberto.
>>
>> Don't worry about the outline view. I got that working.
>>
>> But if you could look at the findRootNode() method, that would be great.
>>
>> Thanks,
>> Steve
>>
>>
>> On 10/6/08 9:04 AM, "Alberto Gimeno" <gimenete_at_gmail.com> wrote:
>>
>>> Hi Steve.
>>>
>>> Sorry for the late response, but I'm on holidays until nex week :)
>>> Nevertheless until friday I have a computer and Internet connection.
>>>
>>> I copied the 10,000 foot outline view from the IBM red book about GEF and
>>> EMF
>>> (page 131, http://www.redbooks.ibm.com/abstracts/sg246302.html).
>>> The implementation is inside
>>> org.tigris.subversion.subclipse.graph.editors.OverviewOutlinePage
>>> and is supposed to be discovered by Eclipse when it calls this method:
>>>
>>> [class RevisionGraphEditor]
>>>
>>> public Object getAdapter(Class adapter) {
>>> if(adapter == GraphicalViewer.class ||
>>> adapter == EditPartViewer.class) {
>>> return viewer;
>>> } else if(adapter == ZoomManager.class) {
>>> return ((ScalableRootEditPart) viewer.getRootEditPart()).getZoomManager();
>>> } else if (adapter == IContentOutlinePage.class) {
>>> return getOverviewOutlinePage(); // HERE
>>> }
>>> return super.getAdapter(adapter);
>>> }
>>>
>>> I don't know why but it doesn't work. There is no error though, just
>>> the Outline view says "there is no outline view available". I have
>>> tried adding "implements IAdaptable" to RevisionGraphEditor, but it
>>> still doesn't work.
>>>
>>> I'll take a look at findRootNode() and I'll document it and try to
>>> reproduce the infinite loop. This method looks for the first time the
>>> file was created. It reads the repository backwards from HEAD to the
>>> first revision. If the selected file is /branches/a/foo.txt and the
>>> repository is this:
>>>
>>> ...
>>> rev3
>>> A /trunk/foo.txt
>>> rev4
>>> M /trunk/foo.txt
>>> rev5
>>> A /branches/a/foo.txt from /trunk/foo.txt
>>> rev6
>>> M /branches/a/foo.txt
>>>
>>> Then this method should find that "rev3 A /trunk/foo.txt" is the root
>>> node. So this method is only interested on 'A' actions. And it makes
>>> different things if the copySrcPath is null or not. I'll explain it on
>>> the code.
>>>
>>>
>>> On Wed, Oct 1, 2008 at 2:01 AM, Mark Phippard <markphip_at_gmail.com> wrote:
>>>> On Tue, Sep 30, 2008 at 6:35 PM, Steve Elsemore <selsemore_at_collab.net>
>>>> wrote:
>>>>
>>>>> If you have the time, one thing that would be helpful would be if you have
>>>>> time to take a look at the Cache.findRootNode method. I've run into
>>>>> situations where this method has gotten into a loop and the graph has
>>>>> never
>>>>> displayed. I think it happens when you try to open the revision graph for
>>>>> a
>>>>> file that is checked out from a local (file:///) repository, but I'm not
>>>>> sure. The method is a little hard to read/debug with the nested loops,
>>>>> breaks, returns. Anything you could do to make it more maintainable while
>>>>> it's still fresh in your mind (even if it's just adding some comments)
>>>>> would
>>>>> be helpful.
>>>>
>>>> I see this with an http checkout too. So it is not because of file://
>>>>
>>>> --
>>>> Thanks
>>>>
>>>> Mark Phippard
>>>> http://markphip.blogspot.com/
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe_at_subclipse.tigris.org
>>>> For additional commands, e-mail: dev-help_at_subclipse.tigris.org
>>>>
>>>>
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe_at_subclipse.tigris.org
>> For additional commands, e-mail: dev-help_at_subclipse.tigris.org
>>
>>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subclipse.tigris.org
For additional commands, e-mail: dev-help_at_subclipse.tigris.org
Received on 2008-10-06 19:34:37 CEST

This is an archived mail posted to the Subclipse Dev mailing list.