Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# GitSharp vs NGit_C#_.net_Git_Gitsharp_Ngit - Fatal编程技术网

C# GitSharp vs NGit

C# GitSharp vs NGit,c#,.net,git,gitsharp,ngit,C#,.net,Git,Gitsharp,Ngit,和的当前状态如何?哪一个更适合.NET中的Git自动化?我使用过GitSharp,一年前就已经足够好了。我认为GitSharp上的活动减少了,但我认为这是一个更好的实现。我不喜欢NGit在很大程度上是JGit的一个自动化端口,包括它的一些依赖项(GitSharp使用SharpSSH,而NGit使用NSch,JSch的一个端口)。这意味着可能存在一些次优性能和其他问题,但我没有使用NGit,因此我不能支持我的说法 GitSharp(至少是它的核心)是一个手动的、逐行的JGit端口。自2010年8

和的当前状态如何?哪一个更适合.NET中的Git自动化?

我使用过GitSharp,一年前就已经足够好了。我认为GitSharp上的活动减少了,但我认为这是一个更好的实现。我不喜欢NGit在很大程度上是JGit的一个自动化端口,包括它的一些依赖项(GitSharp使用SharpSSH,而NGit使用NSch,JSch的一个端口)。这意味着可能存在一些次优性能和其他问题,但我没有使用NGit,因此我不能支持我的说法

  • GitSharp(至少是它的核心)是一个手动的、逐行的JGit端口。自2010年8月以来,其开发目前已暂停。然而,一些产品仍然依赖于它(例如)

  • NGit是JGit的一个自动化端口。它不断根据JGit进行更新,并不断从JGit改进和错误修复中获益。NGit目前用于解决这一问题

就性能而言,用GitSharp克隆一个巨大的存储库(例如Mono或Linux)是一个漫长而痛苦的经历。不过我还没有试过使用NGit

考虑到这些事实,从支持/维护的角度来看,我建议您使用NGit而不是GitSharp

编辑:

GitSharp网站现在声明

GitSharp的开发目前正在进行中 因为我们相信 libgit2项目及其C#绑定 我们更有希望 继续工作


GitSharp更高级,低级部分在GitSharp.Core中实现 GitSharp具有.NET风格,而NGit过于Javaish。 目前,诸如Commit、Tag等命令还没有在GitSharp中实现,而这些命令已经在NGit中实现

就个人而言,我更喜欢GitSharp,因为它提供了纯.NET实现。NGit半自动地与更大的库集(JSch、GRIP)进行了移植,但它仍然是纯.NET。纯.NET DLL(任何CPU)易于部署!!!
libgit2sharp只是C库的包装器,我们还必须部署C库。针对许多平台和体系结构(x86、x64、Windows、Linux),C库的部署更麻烦。

由于GitSharp项目与上游jgit不同步,我们必须切换到NGit,它定期与最新的jgit同步。要使GitSharp项目充满活力,需要付出巨大的努力

较低级别的NGit.dll可以替换GitSharp.Core.dll
更高级别的GitSharp.dll可以移植到接口NGit.dll。

+1对于NGit,我在mono中使用过,它是mono的一部分,所以。。。未来会有大量的更新,也许这就是为什么Git#有点“随风而去”。@balexandre:NGit的推出是因为GitSharp不再维护。此外,GitSharp还有一些不符合Mono的依赖项(Winterdom,IIRC),好吧,我可能先从NGit开始。比这两者都好。并得到积极支持。试试看。我的GitAspx分支现在正在从GitSharp切换到NGit。看见