* git integration with monodevelop
@ 2008-11-12 10:22 Andreas Ericsson
2008-11-12 10:31 ` Andreas Ericsson
` (3 more replies)
0 siblings, 4 replies; 19+ messages in thread
From: Andreas Ericsson @ 2008-11-12 10:22 UTC (permalink / raw)
To: Git Mailing List, Shawn Pearce, monodevelop-list,
Michael Hutchinson
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
^ permalink raw reply [flat|nested] 19+ messages in thread* Re: git integration with monodevelop 2008-11-12 10:22 git integration with monodevelop Andreas Ericsson @ 2008-11-12 10:31 ` Andreas Ericsson 2008-11-13 0:00 ` Govind Salinas 2008-11-12 19:48 ` [MonoDevelop] " Miguel de Icaza ` (2 subsequent siblings) 3 siblings, 1 reply; 19+ messages in thread From: Andreas Ericsson @ 2008-11-12 10:31 UTC (permalink / raw) To: Git Mailing List, Shawn Pearce, Michael Hutchinson 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). -- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git integration with monodevelop 2008-11-12 10:31 ` Andreas Ericsson @ 2008-11-13 0:00 ` Govind Salinas 0 siblings, 0 replies; 19+ messages in thread From: Govind Salinas @ 2008-11-13 0:00 UTC (permalink / raw) To: Andreas Ericsson; +Cc: Git Mailing List, Shawn Pearce, Michael Hutchinson On Wed, Nov 12, 2008 at 4:31 AM, Andreas Ericsson <ae@op5.se> wrote: > 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 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [MonoDevelop] git integration with monodevelop 2008-11-12 10:22 git integration with monodevelop Andreas Ericsson 2008-11-12 10:31 ` Andreas Ericsson @ 2008-11-12 19:48 ` Miguel de Icaza 2008-11-12 22:19 ` Jakub Narebski 2008-11-12 23:56 ` Michael Hutchinson [not found] ` <491AF20D.4070600@kde.ru> 3 siblings, 1 reply; 19+ messages in thread From: Miguel de Icaza @ 2008-11-12 19:48 UTC (permalink / raw) To: Andreas Ericsson Cc: Git Mailing List, Shawn Pearce, monodevelop-list, Michael Hutchinson Hello, > 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. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [MonoDevelop] git integration with monodevelop 2008-11-12 19:48 ` [MonoDevelop] " Miguel de Icaza @ 2008-11-12 22:19 ` Jakub Narebski 2008-11-13 1:42 ` Miguel de Icaza 0 siblings, 1 reply; 19+ messages in thread From: Jakub Narebski @ 2008-11-12 22:19 UTC (permalink / raw) To: Miguel de Icaza Cc: Andreas Ericsson, Git Mailing List, Shawn Pearce, monodevelop-list, Michael Hutchinson Miguel de Icaza <miguel@ximian.com> writes: > 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 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git integration with monodevelop 2008-11-12 22:19 ` Jakub Narebski @ 2008-11-13 1:42 ` Miguel de Icaza 2008-11-14 13:26 ` [MonoDevelop] " Johannes Schindelin 0 siblings, 1 reply; 19+ messages in thread From: Miguel de Icaza @ 2008-11-13 1:42 UTC (permalink / raw) To: Jakub Narebski Cc: monodevelop-list, Andreas Ericsson, Git Mailing List, Shawn Pearce > 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 > ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [MonoDevelop] git integration with monodevelop 2008-11-13 1:42 ` Miguel de Icaza @ 2008-11-14 13:26 ` Johannes Schindelin 2008-11-14 17:28 ` Miguel de Icaza 2008-11-14 17:53 ` "Andrés G. Aragoneses" 0 siblings, 2 replies; 19+ messages in thread From: Johannes Schindelin @ 2008-11-14 13:26 UTC (permalink / raw) To: Miguel de Icaza Cc: Jakub Narebski, Andreas Ericsson, Git Mailing List, Shawn Pearce, monodevelop-list, Michael Hutchinson 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. 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 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git integration with monodevelop 2008-11-14 13:26 ` [MonoDevelop] " Johannes Schindelin @ 2008-11-14 17:28 ` Miguel de Icaza 2008-11-14 17:55 ` [MonoDevelop] " Jakub Narebski 2008-11-14 17:53 ` "Andrés G. Aragoneses" 1 sibling, 1 reply; 19+ messages in thread From: Miguel de Icaza @ 2008-11-14 17:28 UTC (permalink / raw) To: Johannes Schindelin Cc: monodevelop-list, Jakub Narebski, Shawn Pearce, Git Mailing List 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. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [MonoDevelop] git integration with monodevelop 2008-11-14 17:28 ` Miguel de Icaza @ 2008-11-14 17:55 ` Jakub Narebski 0 siblings, 0 replies; 19+ messages in thread From: Jakub Narebski @ 2008-11-14 17:55 UTC (permalink / raw) To: Miguel de Icaza Cc: Johannes Schindelin, Andreas Ericsson, Git Mailing List, Shawn Pearce, monodevelop-list, Michael Hutchinson On Fri, 14 Nov 2008, Miguel de Icaza wrote: Please, try to not lose the attribution > Johannes Schindelin wrote: > > 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 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git integration with monodevelop 2008-11-14 13:26 ` [MonoDevelop] " Johannes Schindelin 2008-11-14 17:28 ` Miguel de Icaza @ 2008-11-14 17:53 ` "Andrés G. Aragoneses" 1 sibling, 0 replies; 19+ messages in thread From: "Andrés G. Aragoneses" @ 2008-11-14 17:53 UTC (permalink / raw) To: monodevelop-list; +Cc: git Johannes Schindelin wrote: > 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 -- ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git integration with monodevelop 2008-11-12 10:22 git integration with monodevelop Andreas Ericsson 2008-11-12 10:31 ` Andreas Ericsson 2008-11-12 19:48 ` [MonoDevelop] " Miguel de Icaza @ 2008-11-12 23:56 ` Michael Hutchinson 2008-11-13 7:55 ` Andreas Ericsson [not found] ` <491AF20D.4070600@kde.ru> 3 siblings, 1 reply; 19+ messages in thread From: Michael Hutchinson @ 2008-11-12 23:56 UTC (permalink / raw) To: Andreas Ericsson; +Cc: monodevelop-list, Git Mailing List, Shawn Pearce 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. > 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. > 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 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git integration with monodevelop 2008-11-12 23:56 ` Michael Hutchinson @ 2008-11-13 7:55 ` Andreas Ericsson 2008-11-13 9:28 ` Christian Hergert 0 siblings, 1 reply; 19+ messages in thread From: Andreas Ericsson @ 2008-11-13 7:55 UTC (permalink / raw) To: Michael Hutchinson; +Cc: monodevelop-list, Git Mailing List, Shawn Pearce 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 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git integration with monodevelop 2008-11-13 7:55 ` Andreas Ericsson @ 2008-11-13 9:28 ` Christian Hergert 2008-11-13 11:01 ` [MonoDevelop] " Andreas Ericsson 0 siblings, 1 reply; 19+ messages in thread From: Christian Hergert @ 2008-11-13 9:28 UTC (permalink / raw) To: Andreas Ericsson; +Cc: monodevelop-list, Shawn Pearce, Git Mailing List [-- Attachment #1.1: Type: text/plain, Size: 5568 bytes --] 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: > 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 > [-- Attachment #1.2: Type: text/html, Size: 7295 bytes --] [-- Attachment #2: Type: text/plain, Size: 170 bytes --] _______________________________________________ Monodevelop-list mailing list Monodevelop-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/monodevelop-list ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [MonoDevelop] git integration with monodevelop 2008-11-13 9:28 ` Christian Hergert @ 2008-11-13 11:01 ` Andreas Ericsson 2008-11-13 16:10 ` Lluis Sanchez Gual 0 siblings, 1 reply; 19+ messages in thread From: Andreas Ericsson @ 2008-11-13 11:01 UTC (permalink / raw) To: Christian Hergert Cc: Michael Hutchinson, monodevelop-list, Git Mailing List, Shawn Pearce 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. -- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [MonoDevelop] git integration with monodevelop 2008-11-13 11:01 ` [MonoDevelop] " Andreas Ericsson @ 2008-11-13 16:10 ` Lluis Sanchez Gual 0 siblings, 0 replies; 19+ messages in thread From: Lluis Sanchez Gual @ 2008-11-13 16:10 UTC (permalink / raw) To: Andreas Ericsson Cc: Christian Hergert, monodevelop-list, Shawn Pearce, Git Mailing List El dj 13 de 11 de 2008 a les 12:01 +0100, en/na Andreas Ericsson va escriure: > 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. ^ permalink raw reply [flat|nested] 19+ messages in thread
[parent not found: <491AF20D.4070600@kde.ru>]
[parent not found: <491AF768.3010607@op5.se>]
[parent not found: <491B02FF.2060204@kde.ru>]
* Re: git integration with monodevelop [not found] ` <491B02FF.2060204@kde.ru> @ 2008-11-13 7:20 ` Andreas Ericsson 2008-11-14 13:30 ` Johannes Schindelin 0 siblings, 1 reply; 19+ messages in thread From: Andreas Ericsson @ 2008-11-13 7:20 UTC (permalink / raw) To: Evgeniy Ivanov; +Cc: Shawn Pearce, Git Mailing List Evgeniy Ivanov wrote: > 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 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git integration with monodevelop 2008-11-13 7:20 ` Andreas Ericsson @ 2008-11-14 13:30 ` Johannes Schindelin 2008-11-14 13:53 ` Andreas Ericsson 0 siblings, 1 reply; 19+ messages in thread From: Johannes Schindelin @ 2008-11-14 13:30 UTC (permalink / raw) To: Andreas Ericsson; +Cc: Evgeniy Ivanov, Shawn Pearce, Git Mailing List 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. Ciao, Dscho ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git integration with monodevelop 2008-11-14 13:30 ` Johannes Schindelin @ 2008-11-14 13:53 ` Andreas Ericsson 2008-11-14 14:55 ` Johannes Schindelin 0 siblings, 1 reply; 19+ messages in thread From: Andreas Ericsson @ 2008-11-14 13:53 UTC (permalink / raw) To: Johannes Schindelin; +Cc: Evgeniy Ivanov, Shawn Pearce, Git Mailing List 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? -- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: git integration with monodevelop 2008-11-14 13:53 ` Andreas Ericsson @ 2008-11-14 14:55 ` Johannes Schindelin 0 siblings, 0 replies; 19+ messages in thread From: Johannes Schindelin @ 2008-11-14 14:55 UTC (permalink / raw) To: Andreas Ericsson; +Cc: Evgeniy Ivanov, Shawn Pearce, Git Mailing List Hi, On Fri, 14 Nov 2008, Andreas Ericsson wrote: > 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 ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2008-11-14 17:57 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-12 10:22 git integration with monodevelop Andreas Ericsson
2008-11-12 10:31 ` Andreas Ericsson
2008-11-13 0:00 ` Govind Salinas
2008-11-12 19:48 ` [MonoDevelop] " Miguel de Icaza
2008-11-12 22:19 ` Jakub Narebski
2008-11-13 1:42 ` Miguel de Icaza
2008-11-14 13:26 ` [MonoDevelop] " Johannes Schindelin
2008-11-14 17:28 ` Miguel de Icaza
2008-11-14 17:55 ` [MonoDevelop] " Jakub Narebski
2008-11-14 17:53 ` "Andrés G. Aragoneses"
2008-11-12 23:56 ` Michael Hutchinson
2008-11-13 7:55 ` Andreas Ericsson
2008-11-13 9:28 ` Christian Hergert
2008-11-13 11:01 ` [MonoDevelop] " Andreas Ericsson
2008-11-13 16:10 ` Lluis Sanchez Gual
[not found] ` <491AF20D.4070600@kde.ru>
[not found] ` <491AF768.3010607@op5.se>
[not found] ` <491B02FF.2060204@kde.ru>
2008-11-13 7:20 ` Andreas Ericsson
2008-11-14 13:30 ` Johannes Schindelin
2008-11-14 13:53 ` Andreas Ericsson
2008-11-14 14:55 ` Johannes Schindelin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).