Skip to content

Instantly share code, notes, and snippets.

@bvulaj
Last active February 23, 2019 02:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bvulaj/75c69adfa929d9a11c48 to your computer and use it in GitHub Desktop.
Save bvulaj/75c69adfa929d9a11c48 to your computer and use it in GitHub Desktop.
HG / Mercurial
  • Pros
    • Great set of client-tools
    • History is absolutely sacred
      • Maintains a guaranteed accurate history
      • No modification of history allowed
    • Quick learning curve due to commonality with SVN commands and straight-forward functionality
    • Runs cleanly under all operating systems
    • Mercurial does not require repository maintenance.
  • Cons
    • N-way merges are accomplished by performing N-1 merges
      • Not necessarily a con, but worth noting
    • Sacred history may lend itself to a less-clean-looking history
    • Apparently, doesn't play nicely with maven release plugin
  • Notes
    • Kiln would allow each developer to choose their own DVCS (HG / Git)
    • Performance has shown to be mostly comparable between DVCS systems
    • Mercurial has provided rebase support since version 1.1
    • Mercurial is implemented mostly in Python (with a small amount of C), with an extension API that allows third parties to enhance Mercurial via custom Python modules.
Git
  • Pros
    • Allows N-way merges in one changeset
      • Although this could lead to some confusion as to where certain changes came from.
    • GitHub is pretty much the only real solution for opensource projects nowadays
    • Ability to modify source history does allow for a "clean" history, although potentially inaccurate
    • There is a //much// larger community surrounding Git due to its history with the Linux kernel and it's more recent marriage with GitHub
  • Cons
    • Exposes the ability to modify source history
      • Some people see this as a "pro".
      • There is record of people blowing away months of work due to a bad command
    • Lack of client tools when compared to HG
    • Steep learning curve
      • Lack of easy to use client tools
      • Terminology even further removed from SVN than HG
    • Linux heritage lends Windows compatibility to be less than ideal
      • Official way to run under Windows is using cygwin
      • Performance has shown to be more sluggish under Windows
    • Git requires periodic maintenance of repositories (i.e. git-gc)
  • Notes
    • Kiln would allow each developer to choose their own DVCS (HG / Git)
    • Performance has shown to be mostly comparable between DVCS systems
    • Git was originally a large number of shell scripts and unix commands implemented in C. Over time, a common library that shared between commands has been developed, and many of the commands have been built into the main git executable.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment