mercurial - Is there any way to change how graphs are drawn in TortoiseHg? -


being used how clearcase draw graphs find mercurial's , tortoisehg's way confusing @ first glance.

this how i'd represented: static position branches (good) static positions branches. e.g. maintenance branch left/right , preferably in straight line , not current spaghetti curved branch (see below link).

this how looks using tortoisehg explorer. graph test repository. :-) graph in tortoisehg (bad)

is there way change how graphs drawn in mercurial?

[edit]

check out machg , how draws graphs. more in line of i'd see myself. static/stable graph in machg

the problem forking commit creates "anonymous" branch (as opposed named branch, different concept), , default graph view can't place commits in static columns without having ids. thus, implementor gave , have current graph.

now, think first view give awesome, , should possible use heuristics assign ids anonymous branches depending on (developer1-a, developer2-a, developer2-b, etc). that'd cool. :)

contribution time!

update

what i'd see:

  • commits sorted vertically commit time, rather revision integer id.
  • commits sorted horizontally, grouped named branch, , per committer inside each branch. (and each committers commits should near, in case committer has forked , merged own data.)

this means algorithm has @ commits (that viewed) before populating view , placing commit "dots" in right column/row.

three passes on commits ought suffice though, , each can done in o(n) time, o(n) everything:

  • walk gather data (gather branches/committers) (o(n))
  • sort branches/commits suitable column order
  • sort commits commit time (o(n log n) or better o(n) radix-sort on seconds since epoch)
  • walk commits , draw dots , ancestor lines according grouping

maybe need smart(er) when routing lines between commits, remains seen. especially, use vertical space between commit-dots connect merges far apart vertically (i.e. in time), instead of using entire column current algorithm


Comments

Popular posts from this blog

ASP.NET/SQL find the element ID and update database -

jquery - appear modal windows bottom -

c++ - Compiling static TagLib 1.6.3 libraries for Windows -