Which has better .NET implementation, Mercurial or git?

I need to access some DVCS from my .NET code and because I’m familiar with Mercurial and Git, which one of that two has better .NET client library? And I don’t mean just a wrapper, I mean a full .NET implementation not requiring any command line calls in the background.

Note: If the answer was Bazaar or some other DVCS that I’m not familiar with, it’s OK, the actual DVCS is not that important.

  • Best Practices Using Git with Visual Studio?
  • VS 2015 RC: Git integration crashed
  • Git change '.git' folder name in windows
  • Integrating GIT into Hudson
  • Managing big project using single entity model
  • Failed importing code from SVN to GIT - SVN trunk is empty
  • Edit: I’m looking for answers from people that have actually tried some .NET clients and can judge their quality.

  • Can multiple files be specified when using BFG?
  • `composer install` for production deployments
  • Cant launch Gitblit GO
  • TFS, windows authentication and commandline git (msysgit)
  • What is the git equivalent of of hg outgoing (hg out) or hg incoming (hg in)?
  • Is GIT a good solution for large projects like Laravel or projects using Smarty Templating
  • 5 Solutions collect form web for “Which has better .NET implementation, Mercurial or git?”

    I can’t speak for Git, but Mercurial has no API in any language – everything is intended to be done via the command line.

    NGit is not a wrapper. https://github.com/slluis/ngit

    It is based on JGit and makes a lightweight access library for .NET world.

    It drives e.g. monodevelop source control integration and can do everything you can do with the commandline tools, except “Look ma, no external binaries”

    Both have native .NET support:

    • Git – Git#
    • Mercurial – Mercurial.NET

    The choice is yours.

    There are no “native” implementation of Mercurial (and there will likely never be). Your best bet would be the hglib project, which uses the cmdserver mode of Mercurial (part of a GSoC project).

    To sum up what was gathered in the answers: it looks that Mercurial doesn’t have and probably won’t have a .NET port any time soon while for Git, at least these two ports seem usable:

    • NGit (automated port of JGit)
    • GitSharp
    Git Baby is a git and github fan, let's start git clone.