threads / discuss / 16280

git integration with monodevelop

Subject: git integration with monodevelop

## tl;dr

19 messages between Nov 12, 2008 and Nov 14, 2008.

replies: 18people: 9as markdown or json

Andreas Ericsson· Nov 12, 2008, 10:22 UTC · lore

Recently, I've started learning C#. More for fun than anything else, but one of the mono core devs sniffed me out and said they've been thinking of porting jgit to C# to get a working IDE integration in monodevelop. Currently, the only option available (with IDE integration anyways) to the poor C# devs is either Microsoft's crappy VSS, or the less crappy but still far from fantastic Subversion.

So in an effort to learn C#, I've decided to play along with this (hopefully with some help from the MonoDevelop team), but it seems to me that the best place to start is the fledgling libgit2 and link that with git-sharp. The primary reason for this is ofcourse that I think it'd be a terrible waste to have yet another from-scratch implementation of git in a new language (ruby, java, C#, C...). The secondary reason is that it would be neat to have more OSS projects use my favourite scm.

Besides, getting something to rely on libgit2 early on is probably the best way to get more people interested in making development of it proceed rapidly.

Thoughts anyone?

Please reply-to-all as this goes cross-list (currently, Cc ae@op5.se, spearce@spearce.org, git@vger.kernel.org, m.j.hutchinson@gmail.com, in case monodevelop-list uses reply-to header).

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231
Andreas Ericsson· Nov 12, 2008, 10:31 UTC · re: Andreas Ericsson · lore

Re: git integration with monodevelop

Andreas Ericsson wrote:
Show 28 quoted lines
> Recently, I've started learning C#. More for fun than anything else,
> but one of the mono core devs sniffed me out and said they've been
> thinking of porting jgit to C# to get a working IDE integration in
> monodevelop. Currently, the only option available (with IDE
> integration anyways) to the poor C# devs is either Microsoft's
> crappy VSS, or the less crappy but still far from fantastic
> Subversion.
> 
> So in an effort to learn C#, I've decided to play along with this
> (hopefully with some help from the MonoDevelop team), but it seems
> to me that the best place to start is the fledgling libgit2 and link
> that with git-sharp. The primary reason for this is ofcourse that I
> think it'd be a terrible waste to have yet another from-scratch
> implementation of git in a new language (ruby, java, C#, C...). The
> secondary reason is that it would be neat to have more OSS projects
> use my favourite scm.
> 
> Besides, getting something to rely on libgit2 early on is probably
> the best way to get more people interested in making development of
> it proceed rapidly.
> 
> Thoughts anyone?
> 
> Please reply-to-all as this goes cross-list
> (currently, Cc ae@op5.se, spearce@spearce.org, git@vger.kernel.org,
> m.j.hutchinson@gmail.com, in case monodevelop-list uses reply-to
> header).
> 

Ouch. Scratch monodevelop-list from that Cc list. It appears to be members-only (although not listed as such on their list-server).

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231
Govind Salinas· Nov 13, 2008, 00:00 UTC · re: Andreas Ericsson · lore

Re: git integration with monodevelop

On Wed, Nov 12, 2008 at 4:31 AM, Andreas Ericsson <ae@op5.se> wrote:
Show 34 quoted lines
> Andreas Ericsson wrote:
>>
>> Recently, I've started learning C#. More for fun than anything else,
>> but one of the mono core devs sniffed me out and said they've been
>> thinking of porting jgit to C# to get a working IDE integration in
>> monodevelop. Currently, the only option available (with IDE
>> integration anyways) to the poor C# devs is either Microsoft's
>> crappy VSS, or the less crappy but still far from fantastic
>> Subversion.
>>
>> So in an effort to learn C#, I've decided to play along with this
>> (hopefully with some help from the MonoDevelop team), but it seems
>> to me that the best place to start is the fledgling libgit2 and link
>> that with git-sharp. The primary reason for this is ofcourse that I
>> think it'd be a terrible waste to have yet another from-scratch
>> implementation of git in a new language (ruby, java, C#, C...). The
>> secondary reason is that it would be neat to have more OSS projects
>> use my favourite scm.
>>
>> Besides, getting something to rely on libgit2 early on is probably
>> the best way to get more people interested in making development of
>> it proceed rapidly.
>>
>> Thoughts anyone?
>>
>> Please reply-to-all as this goes cross-list
>> (currently, Cc ae@op5.se, spearce@spearce.org, git@vger.kernel.org,
>> m.j.hutchinson@gmail.com, in case monodevelop-list uses reply-to
>> header).
>>
>
> Ouch. Scratch monodevelop-list from that Cc list. It appears to be
> members-only (although not listed as such on their list-server).
>
Hi,

I started working on a C# UI a long time ago but I abandoned it due to lack of interest from others and time constraints. You are welcome to take it and build on it if you like. It wraps the C git binaries and the UI is separate from the "plumbing".

http://repo.or.cz/w/Widgit.git
-Govind
Miguel de Icaza· Nov 12, 2008, 19:48 UTC · re: Andreas Ericsson · lore

Re: [MonoDevelop] git integration with monodevelop

Hello,
Show 14 quoted lines
> So in an effort to learn C#, I've decided to play along with this
> (hopefully with some help from the MonoDevelop team), but it seems
> to me that the best place to start is the fledgling libgit2 and link
> that with git-sharp. The primary reason for this is ofcourse that I
> think it'd be a terrible waste to have yet another from-scratch
> implementation of git in a new language (ruby, java, C#, C...). The
> secondary reason is that it would be neat to have more OSS projects
> use my favourite scm.
> 
> Besides, getting something to rely on libgit2 early on is probably
> the best way to get more people interested in making development of
> it proceed rapidly.
> 
> Thoughts anyone?

We would still like to see a port of jgit to C# as a fully managed implementation, one that does not make P/Invoke calls into C code can run on the sandboxed versions of .NET (Like the one available in SecondLife, Unity3D, Silverlight and Mesh).

Miguel.
Jakub Narebski· Nov 12, 2008, 22:19 UTC · re: Miguel de Icaza · lore

Re: [MonoDevelop] git integration with monodevelop

Miguel de Icaza <miguel@ximian.com> writes:
Show 21 quoted lines
> Andreas Ericsson <ae@op5.se> writes
> 
> > So in an effort to learn C#, I've decided to play along with this
> > (hopefully with some help from the MonoDevelop team), but it seems
> > to me that the best place to start is the fledgling libgit2 and link
> > that with git-sharp. The primary reason for this is ofcourse that I
> > think it'd be a terrible waste to have yet another from-scratch
> > implementation of git in a new language (ruby, java, C#, C...). The
> > secondary reason is that it would be neat to have more OSS projects
> > use my favourite scm.
> > 
> > Besides, getting something to rely on libgit2 early on is probably
> > the best way to get more people interested in making development of
> > it proceed rapidly.
> > 
> > Thoughts anyone?
> 
> We would still like to see a port of jgit to C# as a fully managed
> implementation, one that does not make P/Invoke calls into C code can
> run on the sandboxed versions of .NET (Like the one available in
> SecondLife, Unity3D, Silverlight and Mesh).

I assume that results of Mono's Google Summer of Code 2008 projects to create managed git implementation in C# (git#)[1][2] were not very successfull? Taking into account that JGit isn't yet full git implementation, after much longer development...

[1] http://code.google.com/soc/2008/mono/appinfo.html?csaid=E6D8A717A88A7632 [2] http://code.google.com/soc/2008/mono/appinfo.html?csaid=F2E71A4D93E7EF37

-- 
Jakub Narebski
Poland
ShadeHawk on #git
Miguel de Icaza· Nov 13, 2008, 01:42 UTC · re: Jakub Narebski · lore

Re: git integration with monodevelop

> I assume that results of Mono's Google Summer of Code 2008 projects
> to create managed git implementation in C# (git#)[1][2] were not
> very successfull?  Taking into account that JGit isn't yet full git
> implementation, after much longer development...

They were a complete disaster, one student was going to focus on the front-end, the other on the back-end.

Nothing came out of it.
> 
> [1] http://code.google.com/soc/2008/mono/appinfo.html?csaid=E6D8A717A88A7632
> [2] http://code.google.com/soc/2008/mono/appinfo.html?csaid=F2E71A4D93E7EF37
> 
Johannes Schindelin· Nov 14, 2008, 13:26 UTC · re: Miguel de Icaza · lore

Re: [MonoDevelop] git integration with monodevelop

Hi,
On Wed, 12 Nov 2008, Miguel de Icaza wrote:
Show 7 quoted lines
> > I assume that results of Mono's Google Summer of Code 2008 projects to 
> > create managed git implementation in C# (git#)[1][2] were not very 
> > successfull?  Taking into account that JGit isn't yet full git 
> > implementation, after much longer development...
> 
> They were a complete disaster, one student was going to focus on the 
> front-end, the other on the back-end.

I kinda followed the last few weeks via your svn repository (which was not helped by the commits being a complete mix of the individual projects).

I was a bit disappointed that nobody asked things on the Git mailing list; quite a number of very important lessons were learnt during the first implementation of jgit, and you guys could have benefitted tremendously by hearing them.

By the time I got aware of your effort, it was too late; for example, the code already relied on the fact that every blob's contents were read into memory at once (IIU the code correctly).

Note: personally, I do not like C# all that much, so I am not that 
interested in the port myself.  However, we get quite a number of 
questions in that direction ("do you support .NET yet?"), so I am quite 
interested to know what's available.

May I suggest respectfully, that the next time communication channels between the Mono-mentor and at least one knowledgable Git guy are established early in the project? IIRC there was a GSoC project to reimplement Git in C# last year, too, which failed, too.

Ciao, Dscho

Miguel de Icaza· Nov 14, 2008, 17:28 UTC · re: Johannes Schindelin · lore

Re: git integration with monodevelop

Hello,
> May I suggest respectfully, that the next time communication channels 
> between the Mono-mentor and at least one knowledgable Git guy are 
> established early in the project?  IIRC there was a GSoC project to 
> reimplement Git in C# last year, too, which failed, too.

The first year effort failed because the student never started, he got a job before the official SoC start.

This year one of the students vanished before the SoC started, the other one did some minimal work, probably because the work was above his comfort zone.

Miguel.
Jakub Narebski· Nov 14, 2008, 17:55 UTC · re: Miguel de Icaza · lore

Re: [MonoDevelop] git integration with monodevelop

On Fri, 14 Nov 2008, Miguel de Icaza wrote:
Please, try to not lose the attribution
> Johannes Schindelin wrote:
Show 11 quoted lines
> > May I suggest respectfully, that the next time communication channels 
> > between the Mono-mentor and at least one knowledgable Git guy are 
> > established early in the project?  IIRC there was a GSoC project to 
> > reimplement Git in C# last year, too, which failed, too.
> 
> The first year effort failed because the student never started, he got a
> job before the official SoC start.
> 
> This year one of the students vanished before the SoC started, the other
> one did some minimal work, probably because the work was above his
> comfort zone.

I think that it might also be that 'Git# implementation' is just too big a project for single Google Summer of Code, even for two students. JGit/EGit is developed for much longer than a single summer, with larger number of developers than one or two students, and it is not yet complete Git implementation. The JGit GSoC 2008 project was simply "Eclipse plugin push support", and that size of project worked wonderfully (see http://git.or.cz/gitwiki/SoC2008Projects page).

So for the future I think it would be better to a) define smaller sized projects with definite (and reachable) goals; b) maintain better contact with Git Development Community (git mailing list, #git IRC channel).

-- 
Jakub Narebski
Poland
Andrés G. Aragoneses· Nov 14, 2008, 17:53 UTC · re: Johannes Schindelin · lore

Re: git integration with monodevelop

Johannes Schindelin wrote:
Show 27 quoted lines
> Hi,
> 
> On Wed, 12 Nov 2008, Miguel de Icaza wrote:
> 
>>> I assume that results of Mono's Google Summer of Code 2008 projects to 
>>> create managed git implementation in C# (git#)[1][2] were not very 
>>> successfull?  Taking into account that JGit isn't yet full git 
>>> implementation, after much longer development...
>> They were a complete disaster, one student was going to focus on the 
>> front-end, the other on the back-end.
> 
> I kinda followed the last few weeks via your svn repository (which was not 
> helped by the commits being a complete mix of the individual projects).
> 
> I was a bit disappointed that nobody asked things on the Git mailing list; 
> quite a number of very important lessons were learnt during the first 
> implementation of jgit, and you guys could have benefitted tremendously by 
> hearing them.
> 
> By the time I got aware of your effort, it was too late; for example, the 
> code already relied on the fact that every blob's contents were read into 
> memory at once (IIU the code correctly).
> 
> Note: personally, I do not like C# all that much, so I am not that 
> interested in the port myself.  However, we get quite a number of 
> questions in that direction ("do you support .NET yet?"), so I am quite 
> interested to know what's available.
Have you looked at using Sharpen [1]?

[1] http://evain.net/blog/articles/2008/05/20/sharpen-an-open-source-java-to-c-converter

Regards,
	Andrés
Michael Hutchinson· Nov 12, 2008, 23:56 UTC · re: Andreas Ericsson · lore

Re: git integration with monodevelop

On Wed, Nov 12, 2008 at 5:22 AM, Andreas Ericsson <ae@op5.se> wrote:
Show 7 quoted lines
> Recently, I've started learning C#. More for fun than anything else,
> but one of the mono core devs sniffed me out and said they've been
> thinking of porting jgit to C# to get a working IDE integration in
> monodevelop. Currently, the only option available (with IDE
> integration anyways) to the poor C# devs is either Microsoft's
> crappy VSS, or the less crappy but still far from fantastic
> Subversion.
I'm glad you're interested :-)

We do have an interface in MD for integrating VCS providers, and although the only existing one is SVN, I believe some users are working on bzr and perforce addins. I'd prefer to see git get established as the default (D)VCS ...

Currently, to implement a VCS provider one needs to subclass VersionControlSystem, as demonstrated by the SVN provider: http://anonsvn.mono-project.com/viewvc/trunk/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion.addin.xml?view=markup. We may need to extend the interfaces in order to expose more DVCS-specific features, but I think it's best to find and fix these as needed rather than speculatively implementing things.

Show 8 quoted lines
> So in an effort to learn C#, I've decided to play along with this
> (hopefully with some help from the MonoDevelop team), but it seems
> to me that the best place to start is the fledgling libgit2 and link
> that with git-sharp. The primary reason for this is ofcourse that I
> think it'd be a terrible waste to have yet another from-scratch
> implementation of git in a new language (ruby, java, C#, C...). The
> secondary reason is that it would be neat to have more OSS projects
> use my favourite scm.

That's actually one of the reasons we'd like a full managed implementation --it'd be trivial to include to with cross-platform Mono-based apps without worrying about architecture, C dependencies, etc. For example, Tomboy could use git to store its notes, so users would have a versioned history and better synch/merge. Then, for example, you could build a Silverlight version that would have full history in local storage.

Show 5 quoted lines
> Besides, getting something to rely on libgit2 early on is probably
> the best way to get more people interested in making development of
> it proceed rapidly.
>
> Thoughts anyone?

I hadn't heard of libgit2 (it looks pretty recent) but it looks interesting -- at least stable APIs would no longer be a worry. However, I think fully managed is the way to go, from the point of view of much easier dependencies (on windows, mac, silverlight and older linux distros) and licensing.

-- 
Michael Hutchinson
http://mjhutchinson.com
Andreas Ericsson· Nov 13, 2008, 07:55 UTC · re: Michael Hutchinson · lore

Re: git integration with monodevelop

Michael Hutchinson wrote:
Show 23 quoted lines
> On Wed, Nov 12, 2008 at 5:22 AM, Andreas Ericsson <ae@op5.se> wrote:
>> Recently, I've started learning C#. More for fun than anything else,
>> but one of the mono core devs sniffed me out and said they've been
>> thinking of porting jgit to C# to get a working IDE integration in
>> monodevelop. Currently, the only option available (with IDE
>> integration anyways) to the poor C# devs is either Microsoft's
>> crappy VSS, or the less crappy but still far from fantastic
>> Subversion.
> 
> I'm glad you're interested :-)
> 
> We do have an interface in MD for integrating VCS providers, and
> although the only existing one is SVN, I believe some users are
> working on bzr and perforce addins. I'd prefer to see git get
> established as the default (D)VCS ...
> 
> Currently, to implement  a VCS provider one needs to subclass
> VersionControlSystem, as demonstrated by the SVN provider:
> http://anonsvn.mono-project.com/viewvc/trunk/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion.addin.xml?view=markup.
> We may need to extend the interfaces in order to expose more
> DVCS-specific features, but I think it's best to find and fix these as
> needed rather than speculatively implementing things.
> 

I'll look into it. One thing I'd love to see is a "bisect" command from within the IDE. That's one of those things that would make the first IDE implementing it simply sell itself to hackers and suits alike. Besides, "bisect", once learned, is such an awesome tool that coders will start to adapt their workflow just to get full benefit from it.

Show 17 quoted lines
>> So in an effort to learn C#, I've decided to play along with this
>> (hopefully with some help from the MonoDevelop team), but it seems
>> to me that the best place to start is the fledgling libgit2 and link
>> that with git-sharp. The primary reason for this is ofcourse that I
>> think it'd be a terrible waste to have yet another from-scratch
>> implementation of git in a new language (ruby, java, C#, C...). The
>> secondary reason is that it would be neat to have more OSS projects
>> use my favourite scm.
> 
> That's actually one of the reasons we'd like a full managed
> implementation --it'd be trivial to include to with cross-platform
> Mono-based apps without worrying about architecture, C dependencies,
> etc. For example, Tomboy could use git to store its notes, so users
> would have a versioned history and better synch/merge. Then, for
> example, you could build a Silverlight version that would have full
> history in local storage.
> 

What's considered "unmanaged"? (remember I'm a C# newbie here). Is it stuff marked as "unsafe"? If so, there's a whole platoon of stuff to re-implement, which is quite nuts. Iiuc, a "safe" way of implementing unmanaged code is to always write to objects passed as parameters in libgit2, like so:

    int git_commit_get(git_commit *commit, git_oid *oid);
instead of
    git_commit *git_commit_get(git_oid *oid);

as one can let git_commit be a class that gets instantiated and also gc'd the normal way. libgit just has to make sure not to leak memory and avoid side-effects, but that's good library design anyways, so it's not as if C# integration would hurt libgit design.

I really think this would be a better approach that could make the C# implementation stay on top of new features (such as the up-and-coming v4 pack) a lot better than writing it from scratch.

libgit2 is intended to be portable to all unices as well as Windows and Mac OS X, so there's no real problem there

Show 7 quoted lines
>> Besides, getting something to rely on libgit2 early on is probably
>> the best way to get more people interested in making development of
>> it proceed rapidly.
>>
>> Thoughts anyone?
> 
> I hadn't heard of libgit2 (it looks pretty recent)
It is.
Show 6 quoted lines
> but it looks
> interesting -- at least stable APIs would no longer be a worry.
> However, I think fully managed is the way to go, from the point of
> view of much easier dependencies (on windows, mac, silverlight and
> older linux distros) and licensing.
> 

But who's going to write (and separately maintain) the 50k or so LoC that will make up the git core lib in C#? It really is a waste of resources, imo. Especially since libgit will get a lot of exercise, whereas the C# code will get that of C#-based integrations only. I have a feeling this would lead to bugs (or limitations) in the C# implementation that the git community would be expected to deal with.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231
Christian Hergert· Nov 13, 2008, 09:28 UTC · re: Andreas Ericsson · lore

Re: git integration with monodevelop

By unmanaged, he means the [DllImport] which you would need to do the call to the extern in the shared library.

Everyone that has chimed in has considered doing the git code before, believe us when we say we've thought about wrapping C. In this case, it will be far more flexible in C#. Especially since tools like silverlight do not allow DllImport's.

However, its your time, and I'd love to see git support happen any way possible.

-- Christian
On Wed, Nov 12, 2008 at 11:55 PM, Andreas Ericsson <ae@op5.se> wrote:
Show 109 quoted lines
> Michael Hutchinson wrote:
> > On Wed, Nov 12, 2008 at 5:22 AM, Andreas Ericsson <ae@op5.se> wrote:
> >> Recently, I've started learning C#. More for fun than anything else,
> >> but one of the mono core devs sniffed me out and said they've been
> >> thinking of porting jgit to C# to get a working IDE integration in
> >> monodevelop. Currently, the only option available (with IDE
> >> integration anyways) to the poor C# devs is either Microsoft's
> >> crappy VSS, or the less crappy but still far from fantastic
> >> Subversion.
> >
> > I'm glad you're interested :-)
> >
> > We do have an interface in MD for integrating VCS providers, and
> > although the only existing one is SVN, I believe some users are
> > working on bzr and perforce addins. I'd prefer to see git get
> > established as the default (D)VCS ...
> >
> > Currently, to implement  a VCS provider one needs to subclass
> > VersionControlSystem, as demonstrated by the SVN provider:
> >
> http://anonsvn.mono-project.com/viewvc/trunk/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion.addin.xml?view=markup
> .
> > We may need to extend the interfaces in order to expose more
> > DVCS-specific features, but I think it's best to find and fix these as
> > needed rather than speculatively implementing things.
> >
>
> I'll look into it. One thing I'd love to see is a "bisect" command
> from within the IDE. That's one of those things that would make the
> first IDE implementing it simply sell itself to hackers and suits
> alike. Besides, "bisect", once learned, is such an awesome tool that
> coders will start to adapt their workflow just to get full benefit
> from it.
>
> >> So in an effort to learn C#, I've decided to play along with this
> >> (hopefully with some help from the MonoDevelop team), but it seems
> >> to me that the best place to start is the fledgling libgit2 and link
> >> that with git-sharp. The primary reason for this is ofcourse that I
> >> think it'd be a terrible waste to have yet another from-scratch
> >> implementation of git in a new language (ruby, java, C#, C...). The
> >> secondary reason is that it would be neat to have more OSS projects
> >> use my favourite scm.
> >
> > That's actually one of the reasons we'd like a full managed
> > implementation --it'd be trivial to include to with cross-platform
> > Mono-based apps without worrying about architecture, C dependencies,
> > etc. For example, Tomboy could use git to store its notes, so users
> > would have a versioned history and better synch/merge. Then, for
> > example, you could build a Silverlight version that would have full
> > history in local storage.
> >
>
> What's considered "unmanaged"? (remember I'm a C# newbie here). Is it
> stuff marked as "unsafe"? If so, there's a whole platoon of stuff to
> re-implement, which is quite nuts. Iiuc, a "safe" way of implementing
> unmanaged code is to always write to objects passed as parameters in
> libgit2, like so:
>
>    int git_commit_get(git_commit *commit, git_oid *oid);
>
> instead of
>
>    git_commit *git_commit_get(git_oid *oid);
>
> as one can let git_commit be a class that gets instantiated and also
> gc'd the normal way. libgit just has to make sure not to leak memory
> and avoid side-effects, but that's good library design anyways, so
> it's not as if C# integration would hurt libgit design.
>
> I really think this would be a better approach that could make the C#
> implementation stay on top of new features (such as the up-and-coming
> v4 pack) a lot better than writing it from scratch.
>
> libgit2 is intended to be portable to all unices as well as Windows
> and Mac OS X, so there's no real problem there
>
> >> Besides, getting something to rely on libgit2 early on is probably
> >> the best way to get more people interested in making development of
> >> it proceed rapidly.
> >>
> >> Thoughts anyone?
> >
> > I hadn't heard of libgit2 (it looks pretty recent)
>
> It is.
>
> > but it looks
> > interesting -- at least stable APIs would no longer be a worry.
> > However, I think fully managed is the way to go, from the point of
> > view of much easier dependencies (on windows, mac, silverlight and
> > older linux distros) and licensing.
> >
>
> But who's going to write (and separately maintain) the 50k or so LoC
> that will make up the git core lib in C#? It really is a waste of
> resources, imo. Especially since libgit will get a lot of exercise,
> whereas the C# code will get that of C#-based integrations only. I
> have a feeling this would lead to bugs (or limitations) in the C#
> implementation that the git community would be expected to deal with.
>
> --
> Andreas Ericsson                   andreas.ericsson@op5.se
> OP5 AB                             www.op5.se
> Tel: +46 8-230225                  Fax: +46 8-230231
> _______________________________________________
> Monodevelop-list mailing list
> Monodevelop-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/monodevelop-list
>

_______________________________________________ Monodevelop-list mailing list Monodevelop-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/monodevelop-list

Andreas Ericsson· Nov 13, 2008, 11:01 UTC · re: Christian Hergert · lore

Re: [MonoDevelop] git integration with monodevelop

Christian Hergert wrote:
Show 8 quoted lines
> By unmanaged, he means the [DllImport] which you would need to do the call
> to the extern in the shared library.
> 
> Everyone that has chimed in has considered doing the git code before,
> believe us when we say we've thought about wrapping C.  In this case, it
> will be far more flexible in C#.  Especially since tools like silverlight do
> not allow DllImport's.
> 

Well, browser plugins may have a fun time with git support, but it's so far from my priority list I couldn't even poke it with a really long pole. The fastest way forward is probably to hack on libgit2 and use C# micro-apps to verify continually that the binding layer works properly, so that's what I'll be doing. I should also state that while C# seems fun and all, my top priority is to make the git library usable as quickly as possible so that it can attract more attention from developers. That's why I think it's so vitally important to get some few usable steps working fast (such as diffing against the index, staging stuff for commit and creating a commit).

Once we have that much, basic IDE integration should be fairly easy, and then people will want to do more so interest (hopefully from developers) is likely to increase.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231
Lluis Sanchez Gual· Nov 13, 2008, 16:10 UTC · re: Andreas Ericsson · lore

Re: [MonoDevelop] git integration with monodevelop

El dj 13 de 11 de 2008 a les 12:01 +0100, en/na Andreas Ericsson va escriure:

Show 24 quoted lines
> Christian Hergert wrote:
> > By unmanaged, he means the [DllImport] which you would need to do the call
> > to the extern in the shared library.
> > 
> > Everyone that has chimed in has considered doing the git code before,
> > believe us when we say we've thought about wrapping C.  In this case, it
> > will be far more flexible in C#.  Especially since tools like silverlight do
> > not allow DllImport's.
> > 
> 
> Well, browser plugins may have a fun time with git support, but it's so far
> from my priority list I couldn't even poke it with a really long pole. The
> fastest way forward is probably to hack on libgit2 and use C# micro-apps
> to verify continually that the binding layer works properly, so that's what
> I'll be doing. I should also state that while C# seems fun and all, my top
> priority is to make the git library usable as quickly as possible so that
> it can attract more attention from developers. That's why I think it's so
> vitally important to get some few usable steps working fast (such as diffing
> against the index, staging stuff for commit and creating a commit).
> 
> Once we have that much, basic IDE integration should be fairly easy, and
> then people will want to do more so interest (hopefully from developers)
> is likely to increase.
> 
I like the plan!
Lluis.
Andreas Ericsson· Nov 13, 2008, 07:20 UTC · lore

Re: git integration with monodevelop

Evgeniy Ivanov wrote:
Show 23 quoted lines
> Andreas Ericsson wrote:
>> Evgeniy Ivanov wrote:
>>> Hi Andreas,
>>> I've developed basic git-support in KDevelop using git's cmd-line
>>> interface. I'm very interested in rewriting it with libgit2, when
>>> libgit2 becomes usable. Can you, please, drop me a line, when you have
>>> some code?
>>>
>> git clone http://www.spearce.org/projects/scm/libgit2/libgit2.git
>>
>> will probably prove beneficial. I'm adding Shawn to Cc as he's the
>> primary libgit2 author. Please follow the git.git guidelines for
>> submitting patches, and please note that there's not much there
>> right now. Adding a wishlist for what you need in terms of UI
>> integration might make it easier to focus on something when it's
>> going slow.
>>
> 
> I can only suggest something like this on top of library (something like
>  common used things):
> http://websvn.kde.org/trunk/KDE/kdevplatform/plugins/git/gitexecutor.h?revision=856589&view=markup
> 
> I Don't think library interface should be much differ from cmd-line's one.

Well, it will be. The git CLI is inconsistent in places but it would be weird to have libgit2 inherit those inconsistencies.

> For advanced use, QGit's includes can be used (search commit objects,
> etc). QGit has much more features, than my integration. AFAIK Shawn has
> experience in egit
Yes. He wrote it.
> (and maybe even gitk). IMHO the best thing is to
> implement libgit2 in terms of QGit, egit and maybe kdevelop's git
> support.

That would defeat the purpose rather wildly. The idea with libgit2 is to create a library that the git cli can use, so building it based on command-line output is a no-go. libgit2 is the attempt to make it right.

> I will help with pleasure (mentored by Shawn), when have some
> time (maybe only in January-February).
> 
Excellent :)
> But this is the same things Shawn has suggested to my mentor and me at
> the beginning of SoC...
>
Oh? I didn't know libgit2 started as a SoC project.
-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231
Johannes Schindelin· Nov 14, 2008, 13:30 UTC · re: Andreas Ericsson · lore

Re: git integration with monodevelop

Hi,
On Thu, 13 Nov 2008, Andreas Ericsson wrote:
Show 6 quoted lines
> Evgeniy Ivanov wrote:
>
> > But this is the same things Shawn has suggested to my mentor and me at 
> > the beginning of SoC...
> 
> Oh? I didn't know libgit2 started as a SoC project.

It did not. It started as a request from GitHub, and following discussion, at the GitTogether '08.

There _was_ a SoC project last year, libgit-thin, but the problem as far as GitHub is concerned was that it was a tear-down approach: it took git.git and tried to make a small library of it, and by this approach was bound to the GPL.

Ciao, Dscho

Andreas Ericsson· Nov 14, 2008, 13:53 UTC · re: Johannes Schindelin · lore

Re: git integration with monodevelop

Johannes Schindelin wrote:
Show 18 quoted lines
> Hi,
> 
> On Thu, 13 Nov 2008, Andreas Ericsson wrote:
> 
>> Evgeniy Ivanov wrote:
>>
>>> But this is the same things Shawn has suggested to my mentor and me at 
>>> the beginning of SoC...
>> Oh? I didn't know libgit2 started as a SoC project.
> 
> It did not.  It started as a request from GitHub, and following 
> discussion, at the GitTogether '08.
> 
> There _was_ a SoC project last year, libgit-thin, but the problem as far 
> as GitHub is concerned was that it was a tear-down approach: it took 
> git.git and tried to make a small library of it, and by this approach was 
> bound to the GPL.
> 

Oh. I was under the impression that libgit2 would also be able to reuse code from git.git, since there was that huge license thread a couple of months ago. Did I misinterpret that thread, and everything in libgit2 has to be implemented from scratch?

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231
Johannes Schindelin· Nov 14, 2008, 14:55 UTC · re: Andreas Ericsson · lore

Re: git integration with monodevelop

Hi,
On Fri, 14 Nov 2008, Andreas Ericsson wrote:
Show 24 quoted lines
> Johannes Schindelin wrote:
> > Hi,
> > 
> > On Thu, 13 Nov 2008, Andreas Ericsson wrote:
> > 
> > > Evgeniy Ivanov wrote:
> > >
> > > > But this is the same things Shawn has suggested to my mentor and 
> > > > me at the beginning of SoC...
> > > Oh? I didn't know libgit2 started as a SoC project.
> > 
> > It did not.  It started as a request from GitHub, and following 
> > discussion, at the GitTogether '08.
> > 
> > There _was_ a SoC project last year, libgit-thin, but the problem as 
> > far as GitHub is concerned was that it was a tear-down approach: it 
> > took git.git and tried to make a small library of it, and by this 
> > approach was bound to the GPL.
> > 
> 
> Oh. I was under the impression that libgit2 would also be able to reuse 
> code from git.git, since there was that huge license thread a couple of 
> months ago. Did I misinterpret that thread, and everything in libgit2 
> has to be implemented from scratch?
You misinterpreted.

A lot can be reused, because the original authors agree to let the code be relicensed (including Shawn and me, for example). But a few others have raised concerns with everything non-GPL (and that includes GPL+gcc exception), and even stated explicitely that they are not okay with their code being reused (or adapted) to something as permissive as BSD, for example.

However, let's not revive the license wars.  The topic is kinda boring.

Ciao, Dscho

← back to recent threads