Generating a mercurial branch diagram

Angel Ezquerra angel.ezquerra at gmail.com
Mon Apr 23 21:46:52 UTC 2012


On Mon, Apr 23, 2012 at 5:32 PM, Martin Geisler <mg at aragost.com> wrote:
> Robert Cronk <cronk.r at gmail.com> writes:
>
> Hi Robert,
>
> I'm sending this reply to the Mercurial mailinglist too. This is where
> normal user questions should go -- unless you're interested in paid
> consulting offered by my company:
>
>  http://aragost.com/mercurial/commercial-support/
>
>> Martin,
>>
>> I have been searching the Internet to find a way to generate a branch
>> diagram of a mercurial repository and for some reason haven't found
>> it. I am even fine with just getting the branch names with its parent
>> branch it branched off of and I can program the graphical
>> representation of it myself if needed. We have both issue branches and
>> stabilization branches and I'm interested only in the stabilization
>> branches. I think I can filter the issue branches out by name.
>
> I'm afraid I don't know of a tool that can do this out of the box. The
> same thing was asked here today:
>
>  http://stackoverflow.com/q/10280664/110204
>
> There's no answers yet.
>
> Another option is to write the tool yourself :) There are Mercurial
> bindings for Python, Java, and Scala:
>
>  http://mercurial.selenic.com/wiki/CommandServer#Libraries
>
>> I saw that you were a core developer for mercurial and had answered
>> some questions online for others so I figured I'd pose the question to
>> you.
>
> That's fine, but please use the mailinglist. That way your mail is
> filtered correctly at my end and you'll likely get faster feedback since
> more people see the question.
>
>> I've tried looking at hgtk (tortoisehg) and I've tried revision sets
>> on the command line to no avail. You can probably think of a way to do
>> it easily that I've missed.
>
> While TortoiseHg can draw nice graphs based on revision sets, it wont
> connect changesets unless they are parent-child. So even if you can pick
> out the right branch and merge points, you wont get a nice graph
> connecting these points. You will just get a list of revisions with
> unconnected dots.
>
> As for finding the branch points, then I think this should help:
>
>  hg log -r "parents(branch(B)) and not branch(B))"
>
> It finds changesets outside the branch, but with a child on the branch.
> They denote points in the graph where the branch started or where other
> branches were merged into it.
>
>> If you can help, I thank you in advance for taking the time to help me
>> with this.
>>
>> Robert

I think that it should be possible and not too hard to generate a
graphviz file from the hg log output.

If I recall correctly Matt was thinking about adding a flexible output
format which perhaps could be used for this once it is complete?

Cheers,

Angel



More information about the Mercurial mailing list