{"thread":{"id":"13311","subject":"Git Library?","startedAt":"2008-04-28T18:55:35Z","lastAt":"2008-04-29T07:02:07Z","messageCount":8,"participants":["Patrick Altman","Johannes Schindelin","Jakub Narebski","David Symonds","David Aguilar"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"75428","messageId":"5FCF765E-F3FF-438C-B4C1-FFB3262831A0@gmail.com","threadId":"13311","inReplyTo":null,"subject":"Git Library?","fromName":"Patrick Altman","fromEmail":"paltman@gmail.com","sentAt":"2008-04-28T18:55:35Z","receivedAt":"2008-04-28T18:55:35Z","isPatch":false,"sender":{"key":"paltman@gmail.com","avatar":null},"body":"I want to write a Mac OSX UI for git.\n\nIs there a documented/undocumented API for interacting with git in  \nprocess?  Or would I be better off \"shelling out\" to the git command  \nline?\n\nThanks,\nPatrick Altman\n\n\n---\nPatrick Altman\n(615) 300-2930\n"},{"id":"75432","messageId":"alpine.DEB.1.00.0804282009310.19187@eeepc-johanness","threadId":"13311","inReplyTo":"5FCF765E-F3FF-438C-B4C1-FFB3262831A0@gmail.com","subject":"Re: Git Library?","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2008-04-28T19:10:55Z","receivedAt":"2008-04-28T19:10:55Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Mon, 28 Apr 2008, Patrick Altman wrote:\n\n> I want to write a Mac OSX UI for git.\n> \n> Is there a documented/undocumented API for interacting with git in process?\n> Or would I be better off \"shelling out\" to the git command line?\n\nThere was a mail thread yesterday on exactly the same subject.  Bottom \nline: the recommended way is to fork()&&exec(), because I am sure you do \nnot want to put in the work to make libgit.a reentrant.\n\nCiao,\nDscho\n"},{"id":"75455","messageId":"m3y76xofgm.fsf@localhost.localdomain","threadId":"13311","inReplyTo":"5FCF765E-F3FF-438C-B4C1-FFB3262831A0@gmail.com","subject":"Re: Git Library?","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2008-04-28T21:08:16Z","receivedAt":"2008-04-28T21:08:16Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Patrick Altman <paltman@gmail.com> writes:\n\n> I want to write a Mac OSX UI for git.\n\nSomething like GitNub?\n \n> Is there a documented/undocumented API for interacting with git in\n> process?  Or would I be better off \"shelling out\" to the git command\n> line?\n\nTake a look how other GUIs does it.\n-- \nJakub Narebski\nPoland\nShadeHawk on #git\n"},{"id":"75460","messageId":"F427C4D4-7264-4341-A714-23D9DD39E229@gmail.com","threadId":"13311","inReplyTo":"m3y76xofgm.fsf@localhost.localdomain","subject":"Re: Git Library?","fromName":"Patrick Altman","fromEmail":"paltman@gmail.com","sentAt":"2008-04-28T21:17:22Z","receivedAt":"2008-04-28T21:17:22Z","isPatch":false,"sender":{"key":"paltman@gmail.com","avatar":null},"body":"\nOn Apr 28, 2008, at 4:08 PM, Jakub Narebski wrote:\n\n> Patrick Altman <paltman@gmail.com> writes:\n>\n>> I want to write a Mac OSX UI for git.\n>\n> Something like GitNub?\n\nNot really.  GitNub is really an interface for GitHub.  I am thinking  \nsomething more like ZigVersion, http://zigzig.com/, for Git instead of  \nSubversion.\n\n>> Is there a documented/undocumented API for interacting with git in\n>> process?  Or would I be better off \"shelling out\" to the git command\n>> line?\n>\n> Take a look how other GUIs does it.\n\ngit-gui is written in TCL I believe, which I do not want to use.\nGitNub is the only other GUI of sorts that i am aware of but like I  \nmentioned above, that really is more of a GitHub interface and less of  \na git interface.\n\nI think that this point I am just going to use NTask and the like in  \nCocoa/Objective-C to wrap the command line utilities.\n\nThanks,\nPatrick\n"},{"id":"75469","messageId":"200804290001.39226.jnareb@gmail.com","threadId":"13311","inReplyTo":"F427C4D4-7264-4341-A714-23D9DD39E229@gmail.com","subject":"Re: Git Library?","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2008-04-28T22:01:37Z","receivedAt":"2008-04-28T22:01:37Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"On Mon, 28 Apr 2008, Patrick Altman wrote:\n> On Apr 28, 2008, at 4:08 PM, Jakub Narebski wrote:\n>> Patrick Altman <paltman@gmail.com> writes:\n>>\n>>> I want to write a Mac OSX UI for git.\n>>\n>> Something like GitNub?\n> \n> Not really.  GitNub is really an interface for GitHub.  I am thinking  \n> something more like ZigVersion, http://zigzig.com/, for Git instead of  \n> Subversion.\n\nWell, I thought that GitNub is something similar to gitk, i.e. it is\nhistory browser, but in Ruby/Cocoa instead of Tcl/Tk.\n \n>>> Is there a documented/undocumented API for interacting with git in\n>>> process?  Or would I be better off \"shelling out\" to the git command\n>>> line?\n>>\n>> Take a look how other GUIs does it.\n> \n> git-gui is written in Tcl I believe, which I do not want to use.\n> GitNub is the only other GUI of sorts that i am aware of but like I  \n> mentioned above, that really is more of a GitHub interface and less of  \n> a git interface.\n\nTake a look at http://git.or.cz/gitwiki/InterfacesFrontendsAndTools\npage: there is a list of GUIs there.  There is gitk and git-gui,\nthere is QGit and varipus PyQt GUIs, there is Giggle, there is tig.\n\n> I think that this point I am just going to use NTask and the like in  \n> Cocoa/Objective-C to wrap the command line utilities.\n\nI think best would be to see how QGit does it...\n\n-- \nJakub Narebski\nPoland\n"},{"id":"75471","messageId":"ee77f5c20804281509y3de0cc3cx72fe76e2102e3ed@mail.gmail.com","threadId":"13311","inReplyTo":"F427C4D4-7264-4341-A714-23D9DD39E229@gmail.com","subject":"Re: Git Library?","fromName":"David Symonds","fromEmail":"dsymonds@gmail.com","sentAt":"2008-04-28T22:09:09Z","receivedAt":"2008-04-28T22:09:09Z","isPatch":false,"sender":{"key":"dsymonds@gmail.com","avatar":"https://gravatar.com/avatar/b22f5051cbfc11836e36cf7a690e6cde4e225d835e13295ff98d15c7a9ee3c0f?d=mp&s=160"},"body":"On Tue, Apr 29, 2008 at 7:17 AM, Patrick Altman <paltman@gmail.com> wrote:\n\n>  I think that this point I am just going to use NTask and the like in\n> Cocoa/Objective-C to wrap the command line utilities.\n\nThat's the way I approached it when I started doing a half-hearted\nattempt at exactly what you're proposing. Clone my (small) rough code\nfrom  http://git.symonds.id.au/macgit.git\n\n\n\nDave.\n"},{"id":"75499","messageId":"402731c90804282358i205334b8me56f4390456873b4@mail.gmail.com","threadId":"13311","inReplyTo":"5FCF765E-F3FF-438C-B4C1-FFB3262831A0@gmail.com","subject":"Re: Git Library?","fromName":"David Aguilar","fromEmail":"davvid@gmail.com","sentAt":"2008-04-29T06:58:48Z","receivedAt":"2008-04-29T06:58:48Z","isPatch":false,"sender":{"key":"davvid@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13196?v=4"},"body":"On Mon, Apr 28, 2008 at 11:55 AM, Patrick Altman <paltman@gmail.com> wrote:\n> I want to write a Mac OSX UI for git.\n>\n\ngit gui works on OSX.\nAside from that, someone's already written one* :-)\n\n    http://repo.or.cz/ugit.git\n    http://ugit.sf.net/\n\n\n>  Is there a documented/undocumented API for interacting with git in process?\n> Or would I be better off \"shelling out\" to the git command line?\n\nFork/exec.\n\nIf you grabbed the ugit modules you could say:\n\n    from ugit import git\n\n    revisions = git.rev_list(all=True).splitlines()\n\n    file = open('msg', 'w')\n    file.write(\"commit message.\" )\n    file.close()\n\n    git.commit(F='msg', s=True)\n\n    etc, etc.\n\nIt's pretty much 90%+ of git wrapped in Python.\nIf a libgit.so did appear one day it would be trivial to swap out the\nmeta-functions in\ngit.py and replace them with e.g. swig replacements.  Until then,\nforking out works\njust fine.\n\nstg also has Python wrapped around git so you could look there too.\n\n-- \n David\n\n\n* - okay, I lied. It's PyQt4.  But it does run on OSX and looks just\nlike any other cocoa app.\n"},{"id":"75500","messageId":"402731c90804290002x3435e573i5e4d2fd08a84836c@mail.gmail.com","threadId":"13311","inReplyTo":"402731c90804282358i205334b8me56f4390456873b4@mail.gmail.com","subject":"Re: Git Library?","fromName":"David Aguilar","fromEmail":"davvid@gmail.com","sentAt":"2008-04-29T07:02:07Z","receivedAt":"2008-04-29T07:02:07Z","isPatch":false,"sender":{"key":"davvid@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13196?v=4"},"body":">     http://repo.or.cz/ugit.git\n\nSorry, wrong url.\n\nhttp://repo.or.cz/w/ugit.git\n\n-- \n David\n"}]}