Skip to content
This repository has been archived by the owner on Dec 15, 2020. It is now read-only.

Replaced hard dependencies with nuget packages to allow Win build #73

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

dougrathbone
Copy link

A basic clone of the repository wouldn't build on windows without mono, or local copies of ICSharpCode.SharpZipLib installed.

I replaced these with nuget references to make windows source contribution easier.

@xied75
Copy link

xied75 commented Nov 11, 2015

👍 Found the same problem today. Given this is "N"git therefore it should fit the Windows world view. In Windows nuget is the king. All dependences should be specified in package file and once people clone this repo and open it with VS, all we need to compile is right click Solution and click "Restore NuGet Packages". Can't see any reason to not merge the PR.

@Therzok opinions?

Edit:

Looks like the PR is a bit old, not reflecting the current status. @dougrathbone would you mind to update your PR, or if you are busy I can make a similar one targeting current master.

@alanmcgovern
Copy link
Member

If i remember correctly, Mono.Posix is a platform specific binary which requires libmonoposixhelper.so/libmonoposixhelper.dylib in order to function. Putting it in a nuget is just going to cause a mountain of problems should people expect the result to function correctly.

@xied75
Copy link

xied75 commented Nov 16, 2015

Hi, Alan,

You sure have a point. But I kind of see these are separated issues. I read some of those old issues on the repo and understood that you want to keep the Code 'pure and clean' to the jgit, thus you avoid doing anything unnecessary to bring more burden when tracking the upstream.

Traditionally MS stack developers are very bad at doing open source, (might still be like that today.) Yet the open source world is much more dynamic and vibrant so when you got git, you then got people to create libgit, then libgit2, then jgit, etc. So they have lots of choice, and that's a positive feedback loop, which is lacking in the MS world.

I believe this will change gradually given MS now open sourced .net. I for one is willing to copy what the open source guys are doing for all these years.

I've now forked ngit into my company repo and will start to work on it. I have NO intention to keep tracking jgit anymore, once it works I'll start to trim down stuff from Sharpen and JAVA, to make it a pure C# lib, if git itself got new features, we will mirror that directly with C# thinking, rather than bother what jgit does.

Hopefully this won't take half a century to accomplish. :)

@alanmcgovern
Copy link
Member

If you want to allow windows developers to more easily compile ngit, a better approach would be to ifdef/remove the code which requires Mono.Posix. Shipping a nuget which does not function isn't a great idea. The problem changes from "install this dependency before you can compile" to "hack up the build in a hard-to-maintain way in order to have something which does not crash immediately when you use it".

@xied75
Copy link

xied75 commented Nov 16, 2015

Hi Alan,

I wasn't forking the repo to do just that. I need to make ngit work under Universal Windows App. Regarding the posix I'll see if I can replace that with better solutions later. Best.

@CumpsD
Copy link

CumpsD commented Jan 8, 2016

Besides being able to clone and build, if I want to use NGit as a dependency, is there an up to date and working NuGet package to actually use now?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants