stacks_image_4194C931-CC71-4D94-8689-BFEFCFCE6C42

MacHg


MacHg is a free front end for the revision control system Mercurial. This means you manage a collection of files in a nice graphical way, adding things to the collection, saving a snapshot of the collection, restoring the collection to an earlier state and in general working with the files.

Revision control


Revision control systems have existed for a long time and Mercurial is among one of the newer, and better systems.
Mercurial is a distributed version control system. For more on Mercurial see: Definitive Guide : revision control primer. Other modern distributed revision control systems are git and bazaar. There are various organizations which do commercial support of Mercurial.

MacHg Features


  • Document based structure with multiple repositories per document
  • View incoming and outgoing at a glance between compatible repositories
  • Auto refreshes the status of tracked files when they change
  • Incremental loading of history (for efficiency)
  • Works with large repositories (ie for example can load and work with the Mozilla repository which is 3.35Gb)
  • Fully compatible with command line Mercurial (You can make changes on the command line and they are reflected in MacHg.)
  • Fully multi-threaded using Grand Central Dispatch and threading goodness
  • File browser view to work with files
  • History view to explore the changeset history
  • Differences view to explore the historical changes between different revisions
  • Interacting with other repositories: pull, push, incoming, outgoing, clone, etc
  • Contextual menus and shortcuts in many places
  • Diff multiple files at once
  • Renaming, merging, updating, reverting, adding files, removing files, etc
  • Add and remove local tags, global tags, bookmarks, and branches
  • Interface to history editing: collapse, histedit, rebase, strip
  • Importing and exporting of patches
  • Works with external diff tools: AraxisMerge, kdiff3, DiffMerge, Changes, etc
  • Uses the Sparkle framework for "in application" updates