写点什么

Sharpen 助 NGit 实现托管 Git 命令

  • 2010-11-03
  • 本文字数:1137 字

    阅读完需:约 4 分钟

Git 是目前最为流行的分布式版本控制工具,受到全世界开发人员的广泛欢迎。 Lluis Sanchez Gual 在开发 MonoDevelop 的 Git 集成功能时,使用 Sharpen 将 Java 实现的 JGit 转化为 C#实现的 NGit。 Sharpen 是一款由 Versant 公司开发的 Eclipse 插件,用于将他们的对象数据库产品 db4o 由 Java 移植为 C#。

Lluis在博客中写到,在实现MonoDevelop 的Git 功能时,他本打算直接使用Git 命令,并解析输出,它可以满足一些基本需求,但很不可靠,只能作为短期解决方案。后来他将注意力转移到 GitSharp 上。GitSharp 是款完全由托管代码实现的.NET 类库,实现了绝大部分的 Git 命令。GitSharp 源自 JGit 的手动移植,因此难以接受 JGit 的升级与补丁。同时,它还依赖着一些用于实现 ssh 协议的加密类库,由于输出策略原因,它们不能包含在 MonoDevelop 中。

因此 Lluis 尝试了另一种方式,使用 Sharpen 将 JGit 的 Java 代码转化为 C#,经过了几个星期的努力,它已经可以自动地将所有 JGit 代码生成 C#代码了,只需少量的手写补丁,十分易于维护。其中大部分的工作是对 Sharpen 的改进,并实现一些 Java 核心类库中无法直接对应 Mono 类库的部分。Lluis 表示,目前很容易在 JGit 和 NGit 间保持同步,事实上他已经将这一过程使用 makefile 自动化了。在单元测试方面,NGit 已经通过了 90% 的单元测试,其他失败的 10% 主要是由于 JUnit 和 NUnit 在行为上有所不同,Lluis 将继续尝试解决这些问题。在这个过程中还产生了 Nsch 项目,这是 Jsch 的对应产物,用于 ssh 通信,且只依赖于 Mono.Security 类库。

因此,NGit 已经是一个完整的由托管代码实现的客户端了,它不对 Mono 外的类库有任何依赖。包括单元测试在内,转换后大约有 56000 行 C#代码,目前已经可以在Github 上访问了。Lluis 目前的工作,是继续实现MonoDevelop 中对Git 的支持插件,他表示已经完成了大部分实现,还需一些测试,并解决一些性能问题即可提交至master 分支中。他同时也提交了一些JGit 的补丁,已被部分接受

Sharpen 项目原本是由 Versant 公司开发,用于将他们的开源对象数据库产品 db4o 从 Java 移植到 C#。Sharpen 支持自定义转化规则,并可以保留.NET 的习惯,例如将特定方法转化为属性或是事件。在 Sharpen 的帮助下,他们已经同时提供 db4o 在两种平台上的原生实现。

除了 Sharpen 之外, IKVM.NET 也是一个在.NET 环境下运行 Java 程序的项目。与 Sharpen 的源码转化不同,IKVM.NET 的手段主要是将 Java 字节码转化为.NET IL,并提供了一套 JDK 核心类库的.NET 实现。IKVM.NET 支持微软.NET 平台及 Mono,并可以成功运行包括 Eclipse、Jython、JBoss 在内的大型 Java 应用程序。国内社区的老赵也分享了他基于IKVM.NET 使用 Lucene 2.9.0 Google Closure Compiler 的经验。

2010-11-03 08:051737
用户头像

发布了 157 篇内容, 共 54.6 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

Intel Vision 2024大会: 英特尔发布全新软硬件平台,全速助力企业推进AI创新

E科讯

局域网内部使用的视频会议系统推荐

WorkPlus

小镇做题家,成为交大学科创始人,为什么还要来做制造?人工智能怎么用在制造业?

工赋开发者社区

「合肥*讯飞」4月19日PolarDB开源数据库沙龙,报名中!

阿里云数据库开源

阿里云 技术交流 开源数据库 PolarDB-X 科大讯飞

从库延迟案例分析

GreatSQL

基于Python实现盈利8371%的交易策略

俞凡

Python 交易策略

独立服务器,数据安全保障:WorkPlus即时通讯为企业信息安全把关

WorkPlus

企业级im即时通讯软件,支持局域网部署

WorkPlus

WorkPlusIM:为企业提供实时通讯和文件共享的全方位解决方案

WorkPlus

AE镜头光晕插件推荐:optical flares mac版 兼容M1

iMac小白

擘画未来 即刻出发!云起无垠入围安全“FP30”计划

云起无垠

工刻·标杆工厂探秘之旅:开启卓越成长之路

工赋开发者社区

MES系统集成及MES数据集成管理

工赋开发者社区

凡泰极客亮相2024 亚马逊云科技出海全球化论坛,为企业数字化出海赋能

FinClip

Tipard FixMP4 for Mac v1.0.8激活版 快速修复损坏的MP4文件

iMac小白

新规来了!智能音视频技术重塑信贷体验

中关村科金

电子签名 音视频技术

beyond compare 4破解版 v4.4.5中文版 beyondcompare4永久激活密钥

iMac小白

私有化即时通讯软件,WorkPlus提供的私有化、安全通讯解决方案

WorkPlus

乘势而上 韧性增长丨凡泰极客入选华为首批HarmonyOS开发服务商

FinClip

剪映APP利用火山引擎VeDI A/B测试验证新功能效果

Geek_2d6073

最新版SwitchHosts下载安装教程 附 完整破解版安装包下载

iMac小白

如何量化考核技术人的 KPI?四类考核指标

爱吃小舅的鱼

软件开发 KPI 量化管理

测试外包服务 | 从人员外包到测试工具、测试平台,提供全方位的测试解决方案~

测吧(北京)科技有限公司

测试

Mac电脑电池健康必备软件:AlDente Pro破解版附AlDente Pro安装教程 兼容macos14

iMac小白

【mac视频播放软件推荐】5款常用播放器,啥格式的都可以用

iMac小白

Flink+Paimon+Hologres 构建实时湖仓数据分析

Apache Flink

大数据 flink paimon

从用户中来,到用户中去:IPD集成产品开发之FFAB模型,让你的产品供不应求!

IPD产品研发管理

华为 项目管理 产品经理 IPD 产品研发

Sharpen助NGit实现托管Git命令_.NET_赵劼_InfoQ精选文章