Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jgit-dev] Problem with PlotCommitList

On Wed, Aug 25, 2010 at 5:12 AM, Baumgart, Jens <jens.baumgart@xxxxxxx> wrote:
> I recently extended EGit History view to show all branches.
> Therefore I simply added all branches by calling SWTWalk.markStart for the
> related commits.
>
> It seems that the lanes are not assigned correctly if the commit graph has
> multiple roots (see also
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=323383)).
>
> Same problem occurs when displaying with Glog.
> Can be reproduced with a very simple commit graph:
>
> Given
>
> C3  C4
> |  /
> C2
> |
> C1
>
> the rendering result is:
>
> C4
> |
> C3
> |
> C2
> |
> C1
>
> Is there additional configuration needed to handle multiple roots?

Ouch.

Unfortunately its not an issue of configuration.  Its an issue of a
code bug.  The code doesn't know what the original start points are,
so it cannot assign them into their own unique lanes if they aren't
already contained in another lane by a child that was output before
them.

RevWalk internally has the start points (it needs them for reset())
but it doesn't expose those to the subclass, so the plotting routines
cannot figure out what was an initial starting point, and what is a
subsequent commit.

We need to rethink how this works.  If a commit isn't yet in a lane,
we may need to check to see if its one of these starting points, and
if so, allocate a new lane for it.

-- 
Shawn.


Back to the top