git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git integration with monodevelop

From
MHMichael Hutchinson <m.j.hutchinson@gmail.com>
Date
Nov 12, 2008, 23:56 UTC
Message-ID
<aec34c770811121556y34465436i9ffb5e29dbf203a7@mail.gmail.com>
In-Reply-To
<491AAE6D.8030304@op5.se>
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
Previous: Andrés G. AragonesesNext: Andreas Ericsson
Message 11 of 19 in “git integration with monodevelop”
  1. Andreas EricssonNov 12, 2008
  2. Andreas EricssonNov 12, 2008
  3. Govind SalinasNov 13, 2008
  4. Miguel de IcazaNov 12, 2008
  5. Jakub NarebskiNov 12, 2008
  6. Miguel de IcazaNov 13, 2008
  7. Johannes SchindelinNov 14, 2008
  8. Miguel de IcazaNov 14, 2008
  9. Jakub NarebskiNov 14, 2008
  10. Andrés G. AragonesesNov 14, 2008
  11. Michael HutchinsonNov 12, 2008
  12. Andreas EricssonNov 13, 2008
  13. Christian HergertNov 13, 2008
  14. Andreas EricssonNov 13, 2008
  15. Lluis Sanchez GualNov 13, 2008
  16. Andreas EricssonNov 13, 2008
  17. Johannes SchindelinNov 14, 2008
  18. Andreas EricssonNov 14, 2008
  19. Johannes SchindelinNov 14, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.