从C#克隆Mercurial存储库?

时间:2012-01-08 02:02:04

标签: c# .net-4.0 mercurial clone checkout

我正在编写一个应用程序,允许用户安排从任意数量的源(SVN / Mercurial / etc)下载/打包文件的重复任务。

我设法实现除Mercurial之外的所有内容。因为我希望我的应用程序处理所有内容,所以我希望避免使用我的应用程序分发整个Mercurial目录,或者更糟糕的是,要求用户安装它。

我无法找到任何类型的API,所以我想知道最好的方法是什么。我的项目中是否包含可以包含的独立可执行文件,并在我的应用程序发出“hg clone”命令时使用它?

2 个答案:

答案 0 :(得分:4)

查看此页面 - MercurialApi

推荐的API实际上是命令行,它首先说明了您不应该使用内部API的原因。

但是,如果您真的想要,它确实有很多关于如何使用内部API的信息。

你需要找到一些从C#调用Python的方法。我在做这样的事情时发现的一个被称为IronPython

另外,如果您使用Mercurial的内部API,我很确定您的程序必须是开源的,但您需要查看 进入那个自己。

答案 1 :(得分:2)

与Mercurial交互的最佳方式是command server

基本上命令服务器与命令行类似,但避免了Mercurial实例化开销。有一个Java(JavaHg)和一个Python实现(PythonHgLib),它的C#版本还不存在但我认为它实现起来不应该太复杂,通信协议设计得很简单。

否则,建议使用调用命令行。

相关问题