-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pure C# backend for GitExtensions (with NGit) #2516
Comments
I think that NGit should be a good option, but they need to dispose of the use of sharpen, at least the linked libraries (posix support). It is bound by an uncomfortable license agreement and may become unsupported. Their community support page is down as of this writing: License policy:
|
Did you notice the libgitsharp branch On 1:10pm, Mon, Dec 1, 2014 DaFlame notifications@github.com wrote:
|
@slluis and I have done quite a bit of work to improve Sharpen. If you look at the running history of the |
let me study antlr4cs |
@vbjay do you have a link to the source? The libgitsharp branch you speak of? |
https://github.com/gitextensions/gitextensions/tree/LibGit2Sharp On Mon Dec 01 2014 at 8:12:26 PM DaFlame notifications@github.com wrote:
|
See #1996 |
@sharwell that's very nice progress indeed! In MonoDevelop we are moving away from NGit because, even if it works, it has been increasingly harder to keep it up to date with JGit. Sharpen has limitations and bugs, so every port requires manually tweaking both the Java source and the generated C# source. Also, when some of the dependencies of JGit changes, a lot of work has to be done in NGit to make it build. We have implemented our git add-in using LibGit2Sharp now, and it is almost ready to replace the NGit based one. |
@slluis The reason it's so hard to keep patching the Java/C# code is the NGit project isn't using Git to handle the port. If you look at the branches of tunnelvisionlabs/antlr4cs that I referred to (specifically as a graphical history), you can see that each time the At this point, the only real frustration I have is Sharpen being so closely tied to Eclipse, making it somewhat difficult to automate within the existing Maven+PowerShell tool chains we use elsewhere in ANTLR. |
@sharwell I've been in charge of keeping NGit up to date, so I should know very well what are the hard parts, shouldn't I? I know there are other (and maybe better) ways of patching the code, but that's not the real problem. After all, cs.patch and java.patch are generated using git tools, so at the end all you have to do at every import is to resolve conflicts, just like you would need to do if you were using git forks and branches. The really hard parts are:
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). |
So because of that, why are you trying to go from one language to another On Wed Dec 03 2014 at 11:28:02 AM Lluis Sanchez notifications@github.com
|
On Wed Dec 03 2014 at 11:31:38 AM Jay Asbury vbjay.net@gmail.com wrote:
|
@vbjay that's what we are doing, we are moving to libgit2. |
Recommend this be labeled discussion. Seeing the fact that the libgit2charp branch last commit was Aug 31, 2014 but the branch is 48 commits behind libgit2:vNext it looks like they are ramping up dev on the library side. |
Because there are systems without libgit2 library. For example MOSA doesn't support C-style libraries... Is there a defined interface (API) between GitExtensions UI and backend? If not, why not? |
For the ease of portability we should do our best to support a managed library back end. As previously mentioned, the native wrapper limits our portability options. |
Note that libgit2 is GPL. If you automatically convert libgit2 to other languages, the converted library must be GPL. |
Does the converted library still have linking exception? |
Yes. But the libgit2 library wrapper will be linked not contained then. Effectively it would be the same as it is now, only not a C library. |
Closing as NGit seems to be dead. |
awww! anyway we have this place to continue discussion and can reopen it later |
It should be noted that Visual Studio itself started with a combination of 1 (git.exe) and 2 (libgit2sharp) but has recently moved to just using the stand alone git executable. https://blogs.msdn.microsoft.com/visualstudioalm/2017/03/06/new-git-features-in-visual-studio-2017/ |
We can use libgit2 for some tasks like revision graph in the future |
I know 3 types of backends:
What is the state of implementation of the third way?
The text was updated successfully, but these errors were encountered: