branching overload

Georg gwk.rko at
Mon Nov 13 11:04:41 CST 2006

After a few weeks of busy work with just a few people, our branching
structure in the shared team repo looks like the attached snapshot.

I think it is amazing that hgk is able to create a meaningful image at all
from the wealth of branches.  However, the arrows pointing up and down,
while helping a lot to keep the diagram nice, are not always really helpful.

Are there plans for a more helpful history navigation tool?

Some ideas that come to mind:

   - use named branches; attach a branch name to a line of development;
   so when viewing the history you could possibly indicate "only show the
   history (branching diagram) of named branch(es) x(,y,z)"
   - filter on ancestry, something like hg log -f/--follow-first/-P
   - filter on dependency (opposite to above), show only descendents of
   node(s) x(,y,z)
   - provide different layouts, e.g.
      - timeline: treat vertical axis like a timeline, and plot
      changesets versus time
      - distance: plot changesets versus step-from-parent, not
      proportional to time (gets problematic with merges)
   - provide detail folding: fold linear parts of history into an
   ellipsis node, where one node represents several/all successive changes
   within a linear part, so we get better visibility of branching and merging

Just some ideas.

While I would very much love to isolate different work to different repos,
it becomes unavoidable to merge them together whenever the work packages
merge back and forth with each other.  We like to use a process of
continuous integration, where each work package pushes changes into a shared
repo for others to integrate with, and also pulls other's changes from that
shared repo to integrate "mainline" into the current work.  So it becomes
unavoidable to aggregate everything everywhere after a while.

Or am I wrong?  Am I overlooking something?

-------------- next part --------------
An HTML attachment was scrubbed...

More information about the Mercurial mailing list