mono / ngit

Automated jgit port to c#
261 stars 151 forks source link

Code is outdated #72

Open ArsenShnurkov opened 9 years ago

ArsenShnurkov commented 9 years ago

last commit here is several years old git://git.eclipse.org/gitroot/jgit/jgit.git have newer versions like JGit v4.0.0.201506090130-r Contained in tags: v4.0.0.201506090130-r Commit hash: 4f221854556991e3394b3a71e77ee0b771b1500b Date: 2 weeks ago (09.06.2015 8:29:27)

see also https://github.com/gitextensions/gitextensions/issues/2516

earlier attempt: https://github.com/henon/GitSharp

slluis: "The really hard parts are: 1) Java constructs that make sharpen crash. When sharpen crashes is not always easy to find out what caused the crash. 2) Java constructs not supported by sharpen. 3) Incorrectly generated C# code. It has to be manually patched. 4) Missing implementations of core java methods. Those have to be implemented or mapped to existing .NET methods using the configuration file.

Some of those problems could be alleviated by improving Sharpen, but only to some extent, since there are some Java constructs which are not easily translatable to C# (and JGit uses many of them)."

https://github.com/pvginkel/gitter/issues/15

NGit does not provide a Stage function which would make deleted files be marked as staged deletes. https://github.com/mono/monodevelop/pull/653

GPL/LGPL questions with Sharpen.Unix https://github.com/mono/sharpen/issues/39

weak documentation https://github.com/mono/ngit/issues/13

I think it should be possible to run JGit on mono directly with ikvm, but can't find posts about it. UPD: https://github.com/mono/jgit-binary http://tirania.org/blog/archive/2009/Oct-12.html

Therzok commented 9 years ago

Why not use LibGit2Sharp?

Therzok commented 9 years ago

Also, about running JGit under IKVM, we had a PoC on MonoDevelop itself: https://github.com/mono/monodevelop/pull/498

ArsenShnurkov commented 9 years ago

Language which differs from C# requires another toolchain which is not available on all platforms. LibGit2Sharp requires C toolchain for libgit. C toolchain is not available on all platforms. Some platforms have ideological restrictions which prevents usage of C tools.

Therzok commented 9 years ago

Getting IKVM binaries out of JGit is documented over here too, btw https://github.com/mono/jgit-binary

ArsenShnurkov commented 9 years ago

IKVM binaries still doesn't give C# code without decompiling.

Therzok commented 9 years ago

But what about modifying Java code and just using the generated assemblies? That's what we had in mind initially.

The generated code does work, I've had no problems with it, and I could run the JGit test suites under IKVM too without many problems.

ArsenShnurkov commented 9 years ago

In the another operating system (on MOSA toolchain) I will have no tools to modify Java code. It's more convinient to have C# codebase.