{"thread":{"id":"16280","subject":"git integration with monodevelop","startedAt":"2008-11-12T10:22:37Z","lastAt":"2008-11-14T17:55:47Z","messageCount":19,"participants":["Andreas Ericsson","Miguel de Icaza","Jakub Narebski","Michael Hutchinson","Govind Salinas","Christian Hergert","Lluis Sanchez Gual","Johannes Schindelin","Andrés G. Aragoneses"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"95548","messageId":"491AAE6D.8030304@op5.se","threadId":"16280","inReplyTo":null,"subject":"git integration with monodevelop","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2008-11-12T10:22:37Z","receivedAt":"2008-11-12T10:22:37Z","isPatch":false,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Recently, I've started learning C#. More for fun than anything else,\nbut one of the mono core devs sniffed me out and said they've been\nthinking of porting jgit to C# to get a working IDE integration in\nmonodevelop. Currently, the only option available (with IDE\nintegration anyways) to the poor C# devs is either Microsoft's\ncrappy VSS, or the less crappy but still far from fantastic\nSubversion.\n\nSo in an effort to learn C#, I've decided to play along with this\n(hopefully with some help from the MonoDevelop team), but it seems\nto me that the best place to start is the fledgling libgit2 and link\nthat with git-sharp. The primary reason for this is ofcourse that I\nthink it'd be a terrible waste to have yet another from-scratch\nimplementation of git in a new language (ruby, java, C#, C...). The\nsecondary reason is that it would be neat to have more OSS projects\nuse my favourite scm.\n\nBesides, getting something to rely on libgit2 early on is probably\nthe best way to get more people interested in making development of\nit proceed rapidly.\n\nThoughts anyone?\n\nPlease reply-to-all as this goes cross-list\n(currently, Cc ae@op5.se, spearce@spearce.org, git@vger.kernel.org,\nm.j.hutchinson@gmail.com, in case monodevelop-list uses reply-to\nheader).\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"},{"id":"95549","messageId":"491AB078.6020208@op5.se","threadId":"16280","inReplyTo":"491AAE6D.8030304@op5.se","subject":"Re: git integration with monodevelop","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2008-11-12T10:31:20Z","receivedAt":"2008-11-12T10:31:20Z","isPatch":false,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Andreas Ericsson wrote:\n> Recently, I've started learning C#. More for fun than anything else,\n> but one of the mono core devs sniffed me out and said they've been\n> thinking of porting jgit to C# to get a working IDE integration in\n> monodevelop. Currently, the only option available (with IDE\n> integration anyways) to the poor C# devs is either Microsoft's\n> crappy VSS, or the less crappy but still far from fantastic\n> Subversion.\n> \n> So in an effort to learn C#, I've decided to play along with this\n> (hopefully with some help from the MonoDevelop team), but it seems\n> to me that the best place to start is the fledgling libgit2 and link\n> that with git-sharp. The primary reason for this is ofcourse that I\n> think it'd be a terrible waste to have yet another from-scratch\n> implementation of git in a new language (ruby, java, C#, C...). The\n> secondary reason is that it would be neat to have more OSS projects\n> use my favourite scm.\n> \n> Besides, getting something to rely on libgit2 early on is probably\n> the best way to get more people interested in making development of\n> it proceed rapidly.\n> \n> Thoughts anyone?\n> \n> Please reply-to-all as this goes cross-list\n> (currently, Cc ae@op5.se, spearce@spearce.org, git@vger.kernel.org,\n> m.j.hutchinson@gmail.com, in case monodevelop-list uses reply-to\n> header).\n> \n\nOuch. Scratch monodevelop-list from that Cc list. It appears to be\nmembers-only (although not listed as such on their list-server).\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"},{"id":"95622","messageId":"1226519288.4483.176.camel@erandi.site","threadId":"16280","inReplyTo":"491AAE6D.8030304@op5.se","subject":"Re: [MonoDevelop] git integration with monodevelop","fromName":"Miguel de Icaza","fromEmail":"miguel@ximian.com","sentAt":"2008-11-12T19:48:08Z","receivedAt":"2008-11-12T19:48:08Z","isPatch":false,"sender":{"key":"miguel@ximian.com","avatar":null},"body":"Hello,\n\n> So in an effort to learn C#, I've decided to play along with this\n> (hopefully with some help from the MonoDevelop team), but it seems\n> to me that the best place to start is the fledgling libgit2 and link\n> that with git-sharp. The primary reason for this is ofcourse that I\n> think it'd be a terrible waste to have yet another from-scratch\n> implementation of git in a new language (ruby, java, C#, C...). The\n> secondary reason is that it would be neat to have more OSS projects\n> use my favourite scm.\n> \n> Besides, getting something to rely on libgit2 early on is probably\n> the best way to get more people interested in making development of\n> it proceed rapidly.\n> \n> Thoughts anyone?\n\nWe would still like to see a port of jgit to C# as a fully managed\nimplementation, one that does not make P/Invoke calls into C code can\nrun on the sandboxed versions of .NET (Like the one available in\nSecondLife, Unity3D, Silverlight and Mesh).\n\nMiguel.\n"},{"id":"95632","messageId":"m33ahwio3v.fsf@localhost.localdomain","threadId":"16280","inReplyTo":"1226519288.4483.176.camel@erandi.site","subject":"Re: [MonoDevelop] git integration with monodevelop","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2008-11-12T22:19:38Z","receivedAt":"2008-11-12T22:19:38Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Miguel de Icaza <miguel@ximian.com> writes:\n> Andreas Ericsson <ae@op5.se> writes\n> \n> > So in an effort to learn C#, I've decided to play along with this\n> > (hopefully with some help from the MonoDevelop team), but it seems\n> > to me that the best place to start is the fledgling libgit2 and link\n> > that with git-sharp. The primary reason for this is ofcourse that I\n> > think it'd be a terrible waste to have yet another from-scratch\n> > implementation of git in a new language (ruby, java, C#, C...). The\n> > secondary reason is that it would be neat to have more OSS projects\n> > use my favourite scm.\n> > \n> > Besides, getting something to rely on libgit2 early on is probably\n> > the best way to get more people interested in making development of\n> > it proceed rapidly.\n> > \n> > Thoughts anyone?\n> \n> We would still like to see a port of jgit to C# as a fully managed\n> implementation, one that does not make P/Invoke calls into C code can\n> run on the sandboxed versions of .NET (Like the one available in\n> SecondLife, Unity3D, Silverlight and Mesh).\n\nI assume that results of Mono's Google Summer of Code 2008 projects\nto create managed git implementation in C# (git#)[1][2] were not\nvery successfull?  Taking into account that JGit isn't yet full git\nimplementation, after much longer development...\n\n[1] http://code.google.com/soc/2008/mono/appinfo.html?csaid=E6D8A717A88A7632\n[2] http://code.google.com/soc/2008/mono/appinfo.html?csaid=F2E71A4D93E7EF37\n\n-- \nJakub Narebski\nPoland\nShadeHawk on #git\n"},{"id":"95647","messageId":"aec34c770811121556y34465436i9ffb5e29dbf203a7@mail.gmail.com","threadId":"16280","inReplyTo":"491AAE6D.8030304@op5.se","subject":"Re: git integration with monodevelop","fromName":"Michael Hutchinson","fromEmail":"m.j.hutchinson@gmail.com","sentAt":"2008-11-12T23:56:47Z","receivedAt":"2008-11-12T23:56:47Z","isPatch":false,"sender":{"key":"m.j.hutchinson@gmail.com","avatar":null},"body":"On Wed, Nov 12, 2008 at 5:22 AM, Andreas Ericsson <ae@op5.se> wrote:\n> Recently, I've started learning C#. More for fun than anything else,\n> but one of the mono core devs sniffed me out and said they've been\n> thinking of porting jgit to C# to get a working IDE integration in\n> monodevelop. Currently, the only option available (with IDE\n> integration anyways) to the poor C# devs is either Microsoft's\n> crappy VSS, or the less crappy but still far from fantastic\n> Subversion.\n\nI'm glad you're interested :-)\n\nWe do have an interface in MD for integrating VCS providers, and\nalthough the only existing one is SVN, I believe some users are\nworking on bzr and perforce addins. I'd prefer to see git get\nestablished as the default (D)VCS ...\n\nCurrently, to implement  a VCS provider one needs to subclass\nVersionControlSystem, as demonstrated by the SVN provider:\nhttp://anonsvn.mono-project.com/viewvc/trunk/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion.addin.xml?view=markup.\nWe may need to extend the interfaces in order to expose more\nDVCS-specific features, but I think it's best to find and fix these as\nneeded rather than speculatively implementing things.\n\n> So in an effort to learn C#, I've decided to play along with this\n> (hopefully with some help from the MonoDevelop team), but it seems\n> to me that the best place to start is the fledgling libgit2 and link\n> that with git-sharp. The primary reason for this is ofcourse that I\n> think it'd be a terrible waste to have yet another from-scratch\n> implementation of git in a new language (ruby, java, C#, C...). The\n> secondary reason is that it would be neat to have more OSS projects\n> use my favourite scm.\n\nThat's actually one of the reasons we'd like a full managed\nimplementation --it'd be trivial to include to with cross-platform\nMono-based apps without worrying about architecture, C dependencies,\netc. For example, Tomboy could use git to store its notes, so users\nwould have a versioned history and better synch/merge. Then, for\nexample, you could build a Silverlight version that would have full\nhistory in local storage.\n\n> Besides, getting something to rely on libgit2 early on is probably\n> the best way to get more people interested in making development of\n> it proceed rapidly.\n>\n> Thoughts anyone?\n\nI hadn't heard of libgit2 (it looks pretty recent) but it looks\ninteresting -- at least stable APIs would no longer be a worry.\nHowever, I think fully managed is the way to go, from the point of\nview of much easier dependencies (on windows, mac, silverlight and\nolder linux distros) and licensing.\n\n-- \nMichael Hutchinson\nhttp://mjhutchinson.com\n"},{"id":"95648","messageId":"5d46db230811121600p14557d79l5977cd072fd06532@mail.gmail.com","threadId":"16280","inReplyTo":"491AB078.6020208@op5.se","subject":"Re: git integration with monodevelop","fromName":"Govind Salinas","fromEmail":"govind@sophiasuchtig.com","sentAt":"2008-11-13T00:00:01Z","receivedAt":"2008-11-13T00:00:01Z","isPatch":false,"sender":{"key":"govind@sophiasuchtig.com","avatar":null},"body":"On Wed, Nov 12, 2008 at 4:31 AM, Andreas Ericsson <ae@op5.se> wrote:\n> Andreas Ericsson wrote:\n>>\n>> Recently, I've started learning C#. More for fun than anything else,\n>> but one of the mono core devs sniffed me out and said they've been\n>> thinking of porting jgit to C# to get a working IDE integration in\n>> monodevelop. Currently, the only option available (with IDE\n>> integration anyways) to the poor C# devs is either Microsoft's\n>> crappy VSS, or the less crappy but still far from fantastic\n>> Subversion.\n>>\n>> So in an effort to learn C#, I've decided to play along with this\n>> (hopefully with some help from the MonoDevelop team), but it seems\n>> to me that the best place to start is the fledgling libgit2 and link\n>> that with git-sharp. The primary reason for this is ofcourse that I\n>> think it'd be a terrible waste to have yet another from-scratch\n>> implementation of git in a new language (ruby, java, C#, C...). The\n>> secondary reason is that it would be neat to have more OSS projects\n>> use my favourite scm.\n>>\n>> Besides, getting something to rely on libgit2 early on is probably\n>> the best way to get more people interested in making development of\n>> it proceed rapidly.\n>>\n>> Thoughts anyone?\n>>\n>> Please reply-to-all as this goes cross-list\n>> (currently, Cc ae@op5.se, spearce@spearce.org, git@vger.kernel.org,\n>> m.j.hutchinson@gmail.com, in case monodevelop-list uses reply-to\n>> header).\n>>\n>\n> Ouch. Scratch monodevelop-list from that Cc list. It appears to be\n> members-only (although not listed as such on their list-server).\n>\n\nHi,\n\nI started working on a C# UI a long time ago but I abandoned it due\nto lack of interest from others and time constraints.  You are welcome\nto take it and build on it if you like.  It wraps the C git binaries and the UI\nis separate from the \"plumbing\".\n\nhttp://repo.or.cz/w/Widgit.git\n\n-Govind\n"},{"id":"95653","messageId":"1226540535.4483.203.camel@erandi.site","threadId":"16280","inReplyTo":"m33ahwio3v.fsf@localhost.localdomain","subject":"Re: git integration with monodevelop","fromName":"Miguel de Icaza","fromEmail":"miguel@ximian.com","sentAt":"2008-11-13T01:42:15Z","receivedAt":"2008-11-13T01:42:15Z","isPatch":false,"sender":{"key":"miguel@ximian.com","avatar":null},"body":"\n> I assume that results of Mono's Google Summer of Code 2008 projects\n> to create managed git implementation in C# (git#)[1][2] were not\n> very successfull?  Taking into account that JGit isn't yet full git\n> implementation, after much longer development...\n\nThey were a complete disaster, one student was going to focus on the\nfront-end, the other on the back-end.   \n\nNothing came out of it.\n\n> \n> [1] http://code.google.com/soc/2008/mono/appinfo.html?csaid=E6D8A717A88A7632\n> [2] http://code.google.com/soc/2008/mono/appinfo.html?csaid=F2E71A4D93E7EF37\n> \n"},{"id":"95668","messageId":"491BD532.9090200@op5.se","threadId":"16280","inReplyTo":"491B02FF.2060204@kde.ru","subject":"Re: git integration with monodevelop","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2008-11-13T07:20:18Z","receivedAt":"2008-11-13T07:20:18Z","isPatch":false,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Evgeniy Ivanov wrote:\n> Andreas Ericsson wrote:\n>> Evgeniy Ivanov wrote:\n>>> Hi Andreas,\n>>> I've developed basic git-support in KDevelop using git's cmd-line\n>>> interface. I'm very interested in rewriting it with libgit2, when\n>>> libgit2 becomes usable. Can you, please, drop me a line, when you have\n>>> some code?\n>>>\n>> git clone http://www.spearce.org/projects/scm/libgit2/libgit2.git\n>>\n>> will probably prove beneficial. I'm adding Shawn to Cc as he's the\n>> primary libgit2 author. Please follow the git.git guidelines for\n>> submitting patches, and please note that there's not much there\n>> right now. Adding a wishlist for what you need in terms of UI\n>> integration might make it easier to focus on something when it's\n>> going slow.\n>>\n> \n> I can only suggest something like this on top of library (something like\n>  common used things):\n> http://websvn.kde.org/trunk/KDE/kdevplatform/plugins/git/gitexecutor.h?revision=856589&view=markup\n> \n> I Don't think library interface should be much differ from cmd-line's one.\n\nWell, it will be. The git CLI is inconsistent in places but it would be\nweird to have libgit2 inherit those inconsistencies.\n\n> For advanced use, QGit's includes can be used (search commit objects,\n> etc). QGit has much more features, than my integration. AFAIK Shawn has\n> experience in egit\n\nYes. He wrote it.\n\n> (and maybe even gitk). IMHO the best thing is to\n> implement libgit2 in terms of QGit, egit and maybe kdevelop's git\n> support.\n\nThat would defeat the purpose rather wildly. The idea with libgit2 is\nto create a library that the git cli can use, so building it based on\ncommand-line output is a no-go. libgit2 is the attempt to make it right.\n\n> I will help with pleasure (mentored by Shawn), when have some\n> time (maybe only in January-February).\n> \n\nExcellent :)\n\n> But this is the same things Shawn has suggested to my mentor and me at\n> the beginning of SoC...\n>\n\nOh? I didn't know libgit2 started as a SoC project.\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"},{"id":"95669","messageId":"491BDD70.1080701@op5.se","threadId":"16280","inReplyTo":"aec34c770811121556y34465436i9ffb5e29dbf203a7@mail.gmail.com","subject":"Re: git integration with monodevelop","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2008-11-13T07:55:28Z","receivedAt":"2008-11-13T07:55:28Z","isPatch":false,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Michael Hutchinson wrote:\n> On Wed, Nov 12, 2008 at 5:22 AM, Andreas Ericsson <ae@op5.se> wrote:\n>> Recently, I've started learning C#. More for fun than anything else,\n>> but one of the mono core devs sniffed me out and said they've been\n>> thinking of porting jgit to C# to get a working IDE integration in\n>> monodevelop. Currently, the only option available (with IDE\n>> integration anyways) to the poor C# devs is either Microsoft's\n>> crappy VSS, or the less crappy but still far from fantastic\n>> Subversion.\n> \n> I'm glad you're interested :-)\n> \n> We do have an interface in MD for integrating VCS providers, and\n> although the only existing one is SVN, I believe some users are\n> working on bzr and perforce addins. I'd prefer to see git get\n> established as the default (D)VCS ...\n> \n> Currently, to implement  a VCS provider one needs to subclass\n> VersionControlSystem, as demonstrated by the SVN provider:\n> http://anonsvn.mono-project.com/viewvc/trunk/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion.addin.xml?view=markup.\n> We may need to extend the interfaces in order to expose more\n> DVCS-specific features, but I think it's best to find and fix these as\n> needed rather than speculatively implementing things.\n> \n\nI'll look into it. One thing I'd love to see is a \"bisect\" command\nfrom within the IDE. That's one of those things that would make the\nfirst IDE implementing it simply sell itself to hackers and suits\nalike. Besides, \"bisect\", once learned, is such an awesome tool that\ncoders will start to adapt their workflow just to get full benefit\nfrom it.\n\n>> So in an effort to learn C#, I've decided to play along with this\n>> (hopefully with some help from the MonoDevelop team), but it seems\n>> to me that the best place to start is the fledgling libgit2 and link\n>> that with git-sharp. The primary reason for this is ofcourse that I\n>> think it'd be a terrible waste to have yet another from-scratch\n>> implementation of git in a new language (ruby, java, C#, C...). The\n>> secondary reason is that it would be neat to have more OSS projects\n>> use my favourite scm.\n> \n> That's actually one of the reasons we'd like a full managed\n> implementation --it'd be trivial to include to with cross-platform\n> Mono-based apps without worrying about architecture, C dependencies,\n> etc. For example, Tomboy could use git to store its notes, so users\n> would have a versioned history and better synch/merge. Then, for\n> example, you could build a Silverlight version that would have full\n> history in local storage.\n> \n\nWhat's considered \"unmanaged\"? (remember I'm a C# newbie here). Is it\nstuff marked as \"unsafe\"? If so, there's a whole platoon of stuff to\nre-implement, which is quite nuts. Iiuc, a \"safe\" way of implementing\nunmanaged code is to always write to objects passed as parameters in\nlibgit2, like so:\n\n    int git_commit_get(git_commit *commit, git_oid *oid);\n\ninstead of\n\n    git_commit *git_commit_get(git_oid *oid);\n\nas one can let git_commit be a class that gets instantiated and also\ngc'd the normal way. libgit just has to make sure not to leak memory\nand avoid side-effects, but that's good library design anyways, so\nit's not as if C# integration would hurt libgit design.\n\nI really think this would be a better approach that could make the C#\nimplementation stay on top of new features (such as the up-and-coming\nv4 pack) a lot better than writing it from scratch.\n\nlibgit2 is intended to be portable to all unices as well as Windows\nand Mac OS X, so there's no real problem there\n\n>> Besides, getting something to rely on libgit2 early on is probably\n>> the best way to get more people interested in making development of\n>> it proceed rapidly.\n>>\n>> Thoughts anyone?\n> \n> I hadn't heard of libgit2 (it looks pretty recent)\n\nIt is.\n\n> but it looks\n> interesting -- at least stable APIs would no longer be a worry.\n> However, I think fully managed is the way to go, from the point of\n> view of much easier dependencies (on windows, mac, silverlight and\n> older linux distros) and licensing.\n> \n\nBut who's going to write (and separately maintain) the 50k or so LoC\nthat will make up the git core lib in C#? It really is a waste of\nresources, imo. Especially since libgit will get a lot of exercise,\nwhereas the C# code will get that of C#-based integrations only. I\nhave a feeling this would lead to bugs (or limitations) in the C#\nimplementation that the git community would be expected to deal with.\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"},{"id":"95672","messageId":"6d4a25b10811130128r4ebf60a4s5679d06961b92450@mail.gmail.com","threadId":"16280","inReplyTo":"491BDD70.1080701@op5.se","subject":"Re: git integration with monodevelop","fromName":"Christian Hergert","fromEmail":"christian.hergert@gmail.com","sentAt":"2008-11-13T09:28:38Z","receivedAt":"2008-11-13T09:28:38Z","isPatch":false,"sender":{"key":"christian.hergert@gmail.com","avatar":null},"body":"By unmanaged, he means the [DllImport] which you would need to do the call\nto the extern in the shared library.\n\nEveryone that has chimed in has considered doing the git code before,\nbelieve us when we say we've thought about wrapping C.  In this case, it\nwill be far more flexible in C#.  Especially since tools like silverlight do\nnot allow DllImport's.\n\nHowever, its your time, and I'd love to see git support happen any way\npossible.\n\n-- Christian\n\nOn Wed, Nov 12, 2008 at 11:55 PM, Andreas Ericsson <ae@op5.se> wrote:\n\n> Michael Hutchinson wrote:\n> > On Wed, Nov 12, 2008 at 5:22 AM, Andreas Ericsson <ae@op5.se> wrote:\n> >> Recently, I've started learning C#. More for fun than anything else,\n> >> but one of the mono core devs sniffed me out and said they've been\n> >> thinking of porting jgit to C# to get a working IDE integration in\n> >> monodevelop. Currently, the only option available (with IDE\n> >> integration anyways) to the poor C# devs is either Microsoft's\n> >> crappy VSS, or the less crappy but still far from fantastic\n> >> Subversion.\n> >\n> > I'm glad you're interested :-)\n> >\n> > We do have an interface in MD for integrating VCS providers, and\n> > although the only existing one is SVN, I believe some users are\n> > working on bzr and perforce addins. I'd prefer to see git get\n> > established as the default (D)VCS ...\n> >\n> > Currently, to implement  a VCS provider one needs to subclass\n> > VersionControlSystem, as demonstrated by the SVN provider:\n> >\n> http://anonsvn.mono-project.com/viewvc/trunk/monodevelop/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion.addin.xml?view=markup\n> .\n> > We may need to extend the interfaces in order to expose more\n> > DVCS-specific features, but I think it's best to find and fix these as\n> > needed rather than speculatively implementing things.\n> >\n>\n> I'll look into it. One thing I'd love to see is a \"bisect\" command\n> from within the IDE. That's one of those things that would make the\n> first IDE implementing it simply sell itself to hackers and suits\n> alike. Besides, \"bisect\", once learned, is such an awesome tool that\n> coders will start to adapt their workflow just to get full benefit\n> from it.\n>\n> >> So in an effort to learn C#, I've decided to play along with this\n> >> (hopefully with some help from the MonoDevelop team), but it seems\n> >> to me that the best place to start is the fledgling libgit2 and link\n> >> that with git-sharp. The primary reason for this is ofcourse that I\n> >> think it'd be a terrible waste to have yet another from-scratch\n> >> implementation of git in a new language (ruby, java, C#, C...). The\n> >> secondary reason is that it would be neat to have more OSS projects\n> >> use my favourite scm.\n> >\n> > That's actually one of the reasons we'd like a full managed\n> > implementation --it'd be trivial to include to with cross-platform\n> > Mono-based apps without worrying about architecture, C dependencies,\n> > etc. For example, Tomboy could use git to store its notes, so users\n> > would have a versioned history and better synch/merge. Then, for\n> > example, you could build a Silverlight version that would have full\n> > history in local storage.\n> >\n>\n> What's considered \"unmanaged\"? (remember I'm a C# newbie here). Is it\n> stuff marked as \"unsafe\"? If so, there's a whole platoon of stuff to\n> re-implement, which is quite nuts. Iiuc, a \"safe\" way of implementing\n> unmanaged code is to always write to objects passed as parameters in\n> libgit2, like so:\n>\n>    int git_commit_get(git_commit *commit, git_oid *oid);\n>\n> instead of\n>\n>    git_commit *git_commit_get(git_oid *oid);\n>\n> as one can let git_commit be a class that gets instantiated and also\n> gc'd the normal way. libgit just has to make sure not to leak memory\n> and avoid side-effects, but that's good library design anyways, so\n> it's not as if C# integration would hurt libgit design.\n>\n> I really think this would be a better approach that could make the C#\n> implementation stay on top of new features (such as the up-and-coming\n> v4 pack) a lot better than writing it from scratch.\n>\n> libgit2 is intended to be portable to all unices as well as Windows\n> and Mac OS X, so there's no real problem there\n>\n> >> Besides, getting something to rely on libgit2 early on is probably\n> >> the best way to get more people interested in making development of\n> >> it proceed rapidly.\n> >>\n> >> Thoughts anyone?\n> >\n> > I hadn't heard of libgit2 (it looks pretty recent)\n>\n> It is.\n>\n> > but it looks\n> > interesting -- at least stable APIs would no longer be a worry.\n> > However, I think fully managed is the way to go, from the point of\n> > view of much easier dependencies (on windows, mac, silverlight and\n> > older linux distros) and licensing.\n> >\n>\n> But who's going to write (and separately maintain) the 50k or so LoC\n> that will make up the git core lib in C#? It really is a waste of\n> resources, imo. Especially since libgit will get a lot of exercise,\n> whereas the C# code will get that of C#-based integrations only. I\n> have a feeling this would lead to bugs (or limitations) in the C#\n> implementation that the git community would be expected to deal with.\n>\n> --\n> Andreas Ericsson                   andreas.ericsson@op5.se\n> OP5 AB                             www.op5.se\n> Tel: +46 8-230225                  Fax: +46 8-230231\n> _______________________________________________\n> Monodevelop-list mailing list\n> Monodevelop-list@lists.ximian.com\n> http://lists.ximian.com/mailman/listinfo/monodevelop-list\n>\n\n\n_______________________________________________\nMonodevelop-list mailing list\nMonodevelop-list@lists.ximian.com\nhttp://lists.ximian.com/mailman/listinfo/monodevelop-list\n"},{"id":"95675","messageId":"491C090E.4070605@op5.se","threadId":"16280","inReplyTo":"6d4a25b10811130128r4ebf60a4s5679d06961b92450@mail.gmail.com","subject":"Re: [MonoDevelop] git integration with monodevelop","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2008-11-13T11:01:34Z","receivedAt":"2008-11-13T11:01:34Z","isPatch":false,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Christian Hergert wrote:\n> By unmanaged, he means the [DllImport] which you would need to do the call\n> to the extern in the shared library.\n> \n> Everyone that has chimed in has considered doing the git code before,\n> believe us when we say we've thought about wrapping C.  In this case, it\n> will be far more flexible in C#.  Especially since tools like silverlight do\n> not allow DllImport's.\n> \n\nWell, browser plugins may have a fun time with git support, but it's so far\nfrom my priority list I couldn't even poke it with a really long pole. The\nfastest way forward is probably to hack on libgit2 and use C# micro-apps\nto verify continually that the binding layer works properly, so that's what\nI'll be doing. I should also state that while C# seems fun and all, my top\npriority is to make the git library usable as quickly as possible so that\nit can attract more attention from developers. That's why I think it's so\nvitally important to get some few usable steps working fast (such as diffing\nagainst the index, staging stuff for commit and creating a commit).\n\nOnce we have that much, basic IDE integration should be fairly easy, and\nthen people will want to do more so interest (hopefully from developers)\nis likely to increase.\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"},{"id":"95693","messageId":"1226592643.4213.36.camel@164-99-120-118.boston.ximian.com","threadId":"16280","inReplyTo":"491C090E.4070605@op5.se","subject":"Re: [MonoDevelop] git integration with monodevelop","fromName":"Lluis Sanchez Gual","fromEmail":"lluis@novell.com","sentAt":"2008-11-13T16:10:43Z","receivedAt":"2008-11-13T16:10:43Z","isPatch":false,"sender":{"key":"lluis@novell.com","avatar":null},"body":"El dj 13 de 11 de 2008 a les 12:01 +0100, en/na Andreas Ericsson va\nescriure:\n> Christian Hergert wrote:\n> > By unmanaged, he means the [DllImport] which you would need to do the call\n> > to the extern in the shared library.\n> > \n> > Everyone that has chimed in has considered doing the git code before,\n> > believe us when we say we've thought about wrapping C.  In this case, it\n> > will be far more flexible in C#.  Especially since tools like silverlight do\n> > not allow DllImport's.\n> > \n> \n> Well, browser plugins may have a fun time with git support, but it's so far\n> from my priority list I couldn't even poke it with a really long pole. The\n> fastest way forward is probably to hack on libgit2 and use C# micro-apps\n> to verify continually that the binding layer works properly, so that's what\n> I'll be doing. I should also state that while C# seems fun and all, my top\n> priority is to make the git library usable as quickly as possible so that\n> it can attract more attention from developers. That's why I think it's so\n> vitally important to get some few usable steps working fast (such as diffing\n> against the index, staging stuff for commit and creating a commit).\n> \n> Once we have that much, basic IDE integration should be fairly easy, and\n> then people will want to do more so interest (hopefully from developers)\n> is likely to increase.\n> \n\nI like the plan!\n\nLluis.\n"},{"id":"95783","messageId":"alpine.DEB.1.00.0811141419520.30769@pacific.mpi-cbg.de","threadId":"16280","inReplyTo":"1226540535.4483.203.camel@erandi.site","subject":"Re: [MonoDevelop] git integration with monodevelop","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2008-11-14T13:26:10Z","receivedAt":"2008-11-14T13:26:10Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Wed, 12 Nov 2008, Miguel de Icaza wrote:\n\n> > I assume that results of Mono's Google Summer of Code 2008 projects to \n> > create managed git implementation in C# (git#)[1][2] were not very \n> > successfull?  Taking into account that JGit isn't yet full git \n> > implementation, after much longer development...\n> \n> They were a complete disaster, one student was going to focus on the \n> front-end, the other on the back-end.\n\nI kinda followed the last few weeks via your svn repository (which was not \nhelped by the commits being a complete mix of the individual projects).\n\nI was a bit disappointed that nobody asked things on the Git mailing list; \nquite a number of very important lessons were learnt during the first \nimplementation of jgit, and you guys could have benefitted tremendously by \nhearing them.\n\nBy the time I got aware of your effort, it was too late; for example, the \ncode already relied on the fact that every blob's contents were read into \nmemory at once (IIU the code correctly).\n\nNote: personally, I do not like C# all that much, so I am not that \ninterested in the port myself.  However, we get quite a number of \nquestions in that direction (\"do you support .NET yet?\"), so I am quite \ninterested to know what's available.\n\nMay I suggest respectfully, that the next time communication channels \nbetween the Mono-mentor and at least one knowledgable Git guy are \nestablished early in the project?  IIRC there was a GSoC project to \nreimplement Git in C# last year, too, which failed, too.\n\nCiao,\nDscho\n"},{"id":"95784","messageId":"alpine.DEB.1.00.0811141429040.30769@pacific.mpi-cbg.de","threadId":"16280","inReplyTo":"491BD532.9090200@op5.se","subject":"Re: git integration with monodevelop","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2008-11-14T13:30:49Z","receivedAt":"2008-11-14T13:30:49Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Thu, 13 Nov 2008, Andreas Ericsson wrote:\n\n> Evgeniy Ivanov wrote:\n>\n> > But this is the same things Shawn has suggested to my mentor and me at \n> > the beginning of SoC...\n> \n> Oh? I didn't know libgit2 started as a SoC project.\n\nIt did not.  It started as a request from GitHub, and following \ndiscussion, at the GitTogether '08.\n\nThere _was_ a SoC project last year, libgit-thin, but the problem as far \nas GitHub is concerned was that it was a tear-down approach: it took \ngit.git and tried to make a small library of it, and by this approach was \nbound to the GPL.\n\nCiao,\nDscho\n"},{"id":"95787","messageId":"491D82F3.2090807@op5.se","threadId":"16280","inReplyTo":"alpine.DEB.1.00.0811141429040.30769@pacific.mpi-cbg.de","subject":"Re: git integration with monodevelop","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2008-11-14T13:53:55Z","receivedAt":"2008-11-14T13:53:55Z","isPatch":false,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Johannes Schindelin wrote:\n> Hi,\n> \n> On Thu, 13 Nov 2008, Andreas Ericsson wrote:\n> \n>> Evgeniy Ivanov wrote:\n>>\n>>> But this is the same things Shawn has suggested to my mentor and me at \n>>> the beginning of SoC...\n>> Oh? I didn't know libgit2 started as a SoC project.\n> \n> It did not.  It started as a request from GitHub, and following \n> discussion, at the GitTogether '08.\n> \n> There _was_ a SoC project last year, libgit-thin, but the problem as far \n> as GitHub is concerned was that it was a tear-down approach: it took \n> git.git and tried to make a small library of it, and by this approach was \n> bound to the GPL.\n> \n\nOh. I was under the impression that libgit2 would also be able to reuse\ncode from git.git, since there was that huge license thread a couple of\nmonths ago. Did I misinterpret that thread, and everything in libgit2\nhas to be implemented from scratch?\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"},{"id":"95793","messageId":"alpine.DEB.1.00.0811141553020.30769@pacific.mpi-cbg.de","threadId":"16280","inReplyTo":"491D82F3.2090807@op5.se","subject":"Re: git integration with monodevelop","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2008-11-14T14:55:59Z","receivedAt":"2008-11-14T14:55:59Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Fri, 14 Nov 2008, Andreas Ericsson wrote:\n\n> Johannes Schindelin wrote:\n> > Hi,\n> > \n> > On Thu, 13 Nov 2008, Andreas Ericsson wrote:\n> > \n> > > Evgeniy Ivanov wrote:\n> > >\n> > > > But this is the same things Shawn has suggested to my mentor and \n> > > > me at the beginning of SoC...\n> > > Oh? I didn't know libgit2 started as a SoC project.\n> > \n> > It did not.  It started as a request from GitHub, and following \n> > discussion, at the GitTogether '08.\n> > \n> > There _was_ a SoC project last year, libgit-thin, but the problem as \n> > far as GitHub is concerned was that it was a tear-down approach: it \n> > took git.git and tried to make a small library of it, and by this \n> > approach was bound to the GPL.\n> > \n> \n> Oh. I was under the impression that libgit2 would also be able to reuse \n> code from git.git, since there was that huge license thread a couple of \n> months ago. Did I misinterpret that thread, and everything in libgit2 \n> has to be implemented from scratch?\n\nYou misinterpreted.\n\nA lot can be reused, because the original authors agree to let the code be \nrelicensed (including Shawn and me, for example).  But a few others have \nraised concerns with everything non-GPL (and that includes GPL+gcc \nexception), and even stated explicitely that they are not okay with their \ncode being reused (or adapted) to something as permissive as BSD, for \nexample.\n\nHowever, let's not revive the license wars.  The topic is kinda boring.\n\nCiao,\nDscho\n"},{"id":"95800","messageId":"1226683698.4483.265.camel@erandi.site","threadId":"16280","inReplyTo":"alpine.DEB.1.00.0811141419520.30769@pacific.mpi-cbg.de","subject":"Re: git integration with monodevelop","fromName":"Miguel de Icaza","fromEmail":"miguel@ximian.com","sentAt":"2008-11-14T17:28:18Z","receivedAt":"2008-11-14T17:28:18Z","isPatch":false,"sender":{"key":"miguel@ximian.com","avatar":null},"body":"Hello,\n\n> May I suggest respectfully, that the next time communication channels \n> between the Mono-mentor and at least one knowledgable Git guy are \n> established early in the project?  IIRC there was a GSoC project to \n> reimplement Git in C# last year, too, which failed, too.\n\nThe first year effort failed because the student never started, he got a\njob before the official SoC start.\n\nThis year one of the students vanished before the SoC started, the other\none did some minimal work, probably because the work was above his\ncomfort zone.\n\nMiguel.\n"},{"id":"95806","messageId":"gfkdv8$tsj$1@ger.gmane.org","threadId":"16280","inReplyTo":"alpine.DEB.1.00.0811141419520.30769@pacific.mpi-cbg.de","subject":"Re: git integration with monodevelop","fromName":"Andrés G. Aragoneses","fromEmail":"knocte@gmail.com","sentAt":"2008-11-14T17:53:47Z","receivedAt":"2008-11-14T17:53:47Z","isPatch":false,"sender":{"key":"knocte@gmail.com","avatar":"https://gravatar.com/avatar/020c5605dcd7456d87a5f29a2af53e7bdf135fe9ccda514b9f34ab3a7e46db27?d=mp&s=160"},"body":"Johannes Schindelin wrote:\n> Hi,\n> \n> On Wed, 12 Nov 2008, Miguel de Icaza wrote:\n> \n>>> I assume that results of Mono's Google Summer of Code 2008 projects to \n>>> create managed git implementation in C# (git#)[1][2] were not very \n>>> successfull?  Taking into account that JGit isn't yet full git \n>>> implementation, after much longer development...\n>> They were a complete disaster, one student was going to focus on the \n>> front-end, the other on the back-end.\n> \n> I kinda followed the last few weeks via your svn repository (which was not \n> helped by the commits being a complete mix of the individual projects).\n> \n> I was a bit disappointed that nobody asked things on the Git mailing list; \n> quite a number of very important lessons were learnt during the first \n> implementation of jgit, and you guys could have benefitted tremendously by \n> hearing them.\n> \n> By the time I got aware of your effort, it was too late; for example, the \n> code already relied on the fact that every blob's contents were read into \n> memory at once (IIU the code correctly).\n> \n> Note: personally, I do not like C# all that much, so I am not that \n> interested in the port myself.  However, we get quite a number of \n> questions in that direction (\"do you support .NET yet?\"), so I am quite \n> interested to know what's available.\n\nHave you looked at using Sharpen [1]?\n\n[1]\nhttp://evain.net/blog/articles/2008/05/20/sharpen-an-open-source-java-to-c-converter\n\nRegards,\n\n\tAndrés\n\n-- "},{"id":"95807","messageId":"200811141855.48131.jnareb@gmail.com","threadId":"16280","inReplyTo":"1226683698.4483.265.camel@erandi.site","subject":"Re: [MonoDevelop] git integration with monodevelop","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2008-11-14T17:55:47Z","receivedAt":"2008-11-14T17:55:47Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"On Fri, 14 Nov 2008, Miguel de Icaza wrote:\n\nPlease, try to not lose the attribution\n\n> Johannes Schindelin wrote:\n \n> > May I suggest respectfully, that the next time communication channels \n> > between the Mono-mentor and at least one knowledgable Git guy are \n> > established early in the project?  IIRC there was a GSoC project to \n> > reimplement Git in C# last year, too, which failed, too.\n> \n> The first year effort failed because the student never started, he got a\n> job before the official SoC start.\n> \n> This year one of the students vanished before the SoC started, the other\n> one did some minimal work, probably because the work was above his\n> comfort zone.\n\nI think that it might also be that 'Git# implementation' is just too\nbig a project for single Google Summer of Code, even for two students.\nJGit/EGit is developed for much longer than a single summer, with\nlarger number of developers than one or two students, and it is not\nyet complete Git implementation.  The JGit GSoC 2008 project was simply\n\"Eclipse plugin push support\", and that size of project worked\nwonderfully (see http://git.or.cz/gitwiki/SoC2008Projects page).\n\nSo for the future I think it would be better to a) define smaller sized\nprojects with definite (and reachable) goals; b) maintain better contact\nwith Git Development Community (git mailing list, #git IRC channel).\n\n-- \nJakub Narebski\nPoland\n"}]}