Last updated May 22, 2009 23:14, by hgsonic

Project on Hold

Hey folks,

I've got a new job so I'm pretty busy at the moment. I have updates to sonichg but they aren't polished. I dont have time to polish the next update and I dont want to release hacky work, so I wont be making any updates for a while.


Project News

  1. Posted an intro to Sonichg video!
  2. I've been working on more features - my group is using some of them already, will post the updates soon
  3. Working on refactoring Sonichg into smaller extensions so hopefully some of the stuff such as the side by side differ can be merged in with the main Mercurial repo

What is SonicHg?

SonicHg is a mercurial extension that provides the following functionality to improve code transparency:

  1. Pushlog - Log pushes made over SSH (details)
    1. Enable capturing of data on incoming pushes to show what group of commits were made for the push, ssh username, etc
    2. Added a pushlog page in the web UI, can use slider or textbox to browse through push history
    3. Advanced search available in the web UI for finding pushes - including finding by date (Bonsai like feature)
    4. Can configure how many pushes to show per page in the HGRC file
  2. Modified web UI shortlog page (details)
    1. Can use slider or textbox to browse through commit history
  3. Modified web UI File log page (which shows the file history) (details)
    1. Shows more info now, including author of each change
    2. Also can select any 2 file versions and show the diff between them
  4. Added web UI full side-by-side differ (details)
    1. Can see side-by-side diff page for changes
    2. If you have the highlight extension enabled you can enable highlighting in the side-by-side diffs too
  5. Regex Filter available for web UI (details)
    1. Can use this filter to perform regex substitutions on the descriptions of commits
    2. For example, can substitute all bug ids in descriptions with links to the bug page for that bug id
  6. Added ability specify a commit format standard and where the commit format doc URL is (details)
    1. Users making pushes whose commit messages are out of standard will get a warning message with the link to the commit format doc URL
  7. Other changes (details)
    1. Descriptions of merge commits will be in red in web UI (a commit with 2 parents)
    2. Where-ever possible the links in web UI will use revision numbers instead of short node ids

Example Repo

To see what the features are you can view the following demo repo (if site is down please try later):

In particular view the following pages:


  1. pushlog
  2. shortlog
  3. filelog
  4. fulldiff
  5. regexfilter
  6. commitformat
  7. otherchanges


How to download & use

You can use SonicHg in a variety of ways - mainly depending on whether you want to install the files into the Mercurial directory or put them separately somewhere else. The instructions for both methods are provided in the links below:


Many thanks to Ted Mielczarek and the Mozilla Hg team for sharing their pushlog work - I used their work as a reference to learn how to write Hg templates. I would also like to thank Jerry Raj & Tadd Ottman for suggestions and my manager Kishore Vasudeva for support.

Other Tools Used in SonicHg

SonicHg uses the following tools bundled with it made by others:

  • Mysql
  • Glassfish
  • Jruby
  • Rails
  • Nblogo
Terms of Use; Privacy Policy;
© 2014, Oracle Corporation and/or its affiliates
(revision 20160708.bf2ac18)
Please Confirm