{"thread":{"id":"7341","subject":"GSoC & egit","startedAt":"2007-03-20T23:06:45Z","lastAt":"2007-03-21T07:25:41Z","messageCount":2,"participants":["Constantin Roxana","Shawn O. Pearce"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"37643","messageId":"13d28e30703201606qdc7dd91mece971dab56a669a@mail.gmail.com","threadId":"7341","inReplyTo":null,"subject":"GSoC & egit","fromName":"Constantin Roxana","fromEmail":"constantinrox@gmail.com","sentAt":"2007-03-20T23:06:45Z","receivedAt":"2007-03-20T23:06:45Z","isPatch":false,"sender":{"key":"constantinrox@gmail.com","avatar":null},"body":"Hello,\n\nI am Roxana Constantin, I am a student and I want to participate to\nGSoC 2007 and work for git with the project of enhancing egit, the\nplugin for Eclipse.\n\nI am posting my proposal and if you like you can review it and send me feedback.\n\nproposal:\n------------\n\negit enhancements\n\nProject goal\nThe goal of my project is to enhance egit by improving the UI\nintegration with Eclipse of common functionality for users.\n\nThe users should be able to import with a wizard (clone in git) an\noutside project, to commit and browse the history of the commits. Also\na perspective for egit (to include egit specifics), and extend the\npreference page (just a hello message now) with informations like\nuser, email, or other properties.\nI believe that this minimum requirements should be met in order to be\nusable, so I would measure the success of my project by the amount of\nthese features implemented.\nAlso a documentation inside Eclipse help system would be useful.\n(through an extension point)\n\nMilestones\n- from now and until May 28: get used with the source code, learn more\nabout git/jgit\n(May 28 - June 10) - week 1- 2 : work on commit, get used with the jgit API\n(June 11 - June 24) - week 3 -4: finish any work left with commit,\nwork for history browser\n(June 25 - July 8) - week 5-6: finish any work left on the history\nbrowser, add perspective, preference page\n(July 9 - July 22)- week 7-8: work on fine tuning the already\nimplemented features, fix bugs, documentation, tests\n(July 23 - August 5) - week 9-10: analyses supporting branches and\nstart to work towards supporting them: create, switch, delete\n(August 6- August 20) - finish any work left, write the final\ndocumentation, tests\n\nDetails\nA few extension points I want to extend are:\norg.eclipse.ui.preferencePages,  -- preference pages\norg.eclipse.core.runtime.preferences  -- initial values for preference pages\norg.eclipse.ui.importWizards,     -- clone a git repository\norg.eclipse.ui.perspectives,       --   git perspective\norg.eclipse.help.toc         -- documentation\n\nInterfaces\nI sow that in org.spearce.egit.core is the plugin core (non UI)\nin org.spearce.egit.ui is the UI part of the plugin\nand org.spearce.jgit is the library with the pure Java implementation of git.\nI will use jgit in egit-core and egit-ui, probably mostly org.spearce.jgit.lib.*\nI do not know yet if I will need to change something in the library.\n\nPreparations\nBecause I never worked with git before:\nI compiled and installed git and read the tutorial, some man pages,\nand other docs from Git Documentation. I played with git to get\naccustomed how it works.\nI looked at egit sources, how the extension points from Eclipse are\nextended, what functionality is already there, and I tested the\nplugin.\nI built a demo plugin in Eclipse SWT to show you that I know how to\nwork in the Eclipse environment.\nIt draws fractals. It adds a new wizard to Eclipse and you can create\na fractal in an existing project.\nYou can install it the usual way by copying it to Eclipse/plugins/\ndirectory. The source code is in it.\n\nI'm free the hole summer, so this will be my main task.\n\nAbout me\nI'm a Romanian student at Master's Degree in philosophy. My favorite\nphilosopher is Nietzsche.\nI like a lot programming and I know Java and C. I studied C at\nUniversity (there are some classes in the Computer Science\ndepartment).\nI have 2 years experience in Java and I know C at medium level. In\nhigh school I learnt Pascal.\nI use GNU/Linux – Ubuntu distro.\nI found out that GsoC doesn't matter what courses one takes at\nUniversity, only open source programming matters, so I applied.\n\nI previously worked on small projects (a Java visualizer for fractals,\nnot SWT, small dumb plugins for Eclipse, some UML editor but not\nfinished and aborted, basic programs in C). This will be an\nextraordinary experience, working in such a dynamic group.\n\n------------\nend of proposal\n\nRoxana Constantin\n"},{"id":"37660","messageId":"20070321072541.GB4489@spearce.org","threadId":"7341","inReplyTo":"13d28e30703201606qdc7dd91mece971dab56a669a@mail.gmail.com","subject":"Re: GSoC & egit","fromName":"Shawn O. Pearce","fromEmail":"spearce@spearce.org","sentAt":"2007-03-21T07:25:41Z","receivedAt":"2007-03-21T07:25:41Z","isPatch":false,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Constantin Roxana <constantinrox@gmail.com> wrote:\n> I am Roxana Constantin, I am a student and I want to participate to\n> GSoC 2007 and work for git with the project of enhancing egit, the\n> plugin for Eclipse.\n\nHey!  Welcome!  ;-)\n \n> The users should be able to import with a wizard (clone in git) an\n> outside project,\n\nHere you mean a project that is already stored in Git, right?\nCurrently there is not enough library support in jgit to make this\nfunction, even for the (trivial) case of just cloning a repository\nthat is already available on the local filesystem.  So jgit support\nwill need to be added.  Specifically a full \"standard\" clone would\nrequire that we implement the logic of git-index-pack in jgit.\nThat program is about 1000 lines of C right now, so it shouldn't\nbe *that* difficult to implement.\n\n> to commit\n\nYes, this is something I'd really like to see get done.  More so\nthan cloning, because users need to commit often, but they don't\nclone very often.  Thus its \"ok\" to make them use the existing\ncommand line tools to setup their project(s), but its not really\nok to make them use command line tools for daily tasks.\n\n> and browse the history of the commits.\n\nRobin Rosenburg has been doing some work in this area already,\nwhich is quite a good start.  We can at least show a simple table\nof commits that affect the selected file/folder in the Package\nExplorer or Navigator, or in the current editor.  ;-)\n\nIts not as powerful (or as useful) as any of the other Git history\nviewers, but its a start at something!\n\n> Also\n> a perspective for egit (to include egit specifics), and extend the\n> preference page (just a hello message now) with informations like\n> user, email, or other properties.\n\nYes, these are good ideas.  Especially if we start to allow users\nto create commits; they will want to configure their user.name and\nuser.email configuration options from within Eclipse.\n\n> I believe that this minimum requirements should be met in order to be\n> usable, so I would measure the success of my project by the amount of\n> these features implemented.\n\nI would remove the \"import with a wizard (clone in git)\" requirement\nand instead replace it with at least basic merge support, such\nas the two-way merge that gets used to switch between two branches.\nThis is an activity that I do at least 10x per day, if not more\nfrequently.  But I almost never clone.\n\nIn my mind, the goal of an Eclipse plugin for Git is to allow an\nEclipse user to get their daily tasks accomplished directly from\nwithin Eclipse, where they are doing everything else too.  I just\ndon't think that project creation is not a daily task for most users,\nbut I know committing, branch creation and branch switching is.\n\n> Also a documentation inside Eclipse help system would be useful.\n> (through an extension point)\n\nYes, this would be very nice indeed.\n \n> Milestones\n> - from now and until May 28: get used with the source code, learn more\n> about git/jgit\n> (May 28 - June 10) - week 1- 2 : work on commit, get used with the jgit API\n> (June 11 - June 24) - week 3 -4: finish any work left with commit,\n> work for history browser\n> (June 25 - July 8) - week 5-6: finish any work left on the history\n> browser, add perspective, preference page\n> (July 9 - July 22)- week 7-8: work on fine tuning the already\n> implemented features, fix bugs, documentation, tests\n> (July 23 - August 5) - week 9-10: analyses supporting branches and\n> start to work towards supporting them: create, switch, delete\n> (August 6- August 20) - finish any work left, write the final\n> documentation, tests\n\nYes; this schedule mentions the things I was just talking abouve\nabove as being the important features.  It also does not mention\nthe import wizard.  ;-)\n\nWith the exception of branch switching, I think the above items are\nprobably quite doable within the timeframes you are talking about.\nYou might also be able to get branch switching implemented; but you\nmight not.  I actually expect you will need more than 2 weeks to get\na decent commit UI built up and working, especially since that is so\nearly in the project and you will still be getting started on things.\n\n> A few extension points I want to extend are:\n> org.eclipse.ui.preferencePages,  -- preference pages\n> org.eclipse.core.runtime.preferences  -- initial values for preference pages\n> org.eclipse.ui.importWizards,     -- clone a git repository\n> org.eclipse.ui.perspectives,       --   git perspective\n> org.eclipse.help.toc         -- documentation\n> \n> Interfaces\n> I sow that in org.spearce.egit.core is the plugin core (non UI)\n> in org.spearce.egit.ui is the UI part of the plugin\n> and org.spearce.jgit is the library with the pure Java implementation of \n> git.\n> I will use jgit in egit-core and egit-ui, probably mostly \n> org.spearce.jgit.lib.*\n> I do not know yet if I will need to change something in the library.\n\nYes.  Its likely that jgit will also need to be changed.  ;-)\n \n> Preparations\n> Because I never worked with git before:\n> I compiled and installed git and read the tutorial, some man pages,\n> and other docs from Git Documentation. I played with git to get\n> accustomed how it works.\n\nGood!\n\n> I looked at egit sources, how the extension points from Eclipse are\n> extended, what functionality is already there, and I tested the\n> plugin.\n> I built a demo plugin in Eclipse SWT to show you that I know how to\n> work in the Eclipse environment.\n> It draws fractals. It adds a new wizard to Eclipse and you can create\n> a fractal in an existing project.\n> You can install it the usual way by copying it to Eclipse/plugins/\n> directory. The source code is in it.\n\nI apologize for not taking a look at this right now.  I've had a\nvery long day, and still have about another 8 hours worth of tasks\nto accomplish, but have under 4 hours in which to do them *and*\nto get some sleep before tomorrow.\n\nI will take a look at this in a day or two, when I can make the time.\n\n-- \nShawn.\n"}]}