git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* GSoC & egit
@ 2007-03-20 23:06 Constantin Roxana
  2007-03-21  7:25 ` Shawn O. Pearce
  0 siblings, 1 reply; 2+ messages in thread
From: Constantin Roxana @ 2007-03-20 23:06 UTC (permalink / raw
  To: git

[-- Attachment #1: Type: text/plain, Size: 4010 bytes --]

Hello,

I am Roxana Constantin, I am a student and I want to participate to
GSoC 2007 and work for git with the project of enhancing egit, the
plugin for Eclipse.

I am posting my proposal and if you like you can review it and send me feedback.

proposal:
------------

egit enhancements

Project goal
The goal of my project is to enhance egit by improving the UI
integration with Eclipse of common functionality for users.

The users should be able to import with a wizard (clone in git) an
outside project, to commit and browse the history of the commits. Also
a perspective for egit (to include egit specifics), and extend the
preference page (just a hello message now) with informations like
user, email, or other properties.
I believe that this minimum requirements should be met in order to be
usable, so I would measure the success of my project by the amount of
these features implemented.
Also a documentation inside Eclipse help system would be useful.
(through an extension point)

Milestones
- from now and until May 28: get used with the source code, learn more
about git/jgit
(May 28 - June 10) - week 1- 2 : work on commit, get used with the jgit API
(June 11 - June 24) - week 3 -4: finish any work left with commit,
work for history browser
(June 25 - July 8) - week 5-6: finish any work left on the history
browser, add perspective, preference page
(July 9 - July 22)- week 7-8: work on fine tuning the already
implemented features, fix bugs, documentation, tests
(July 23 - August 5) - week 9-10: analyses supporting branches and
start to work towards supporting them: create, switch, delete
(August 6- August 20) - finish any work left, write the final
documentation, tests

Details
A few extension points I want to extend are:
org.eclipse.ui.preferencePages,  -- preference pages
org.eclipse.core.runtime.preferences  -- initial values for preference pages
org.eclipse.ui.importWizards,     -- clone a git repository
org.eclipse.ui.perspectives,       --   git perspective
org.eclipse.help.toc         -- documentation

Interfaces
I sow that in org.spearce.egit.core is the plugin core (non UI)
in org.spearce.egit.ui is the UI part of the plugin
and org.spearce.jgit is the library with the pure Java implementation of git.
I will use jgit in egit-core and egit-ui, probably mostly org.spearce.jgit.lib.*
I do not know yet if I will need to change something in the library.

Preparations
Because I never worked with git before:
I compiled and installed git and read the tutorial, some man pages,
and other docs from Git Documentation. I played with git to get
accustomed how it works.
I looked at egit sources, how the extension points from Eclipse are
extended, what functionality is already there, and I tested the
plugin.
I built a demo plugin in Eclipse SWT to show you that I know how to
work in the Eclipse environment.
It draws fractals. It adds a new wizard to Eclipse and you can create
a fractal in an existing project.
You can install it the usual way by copying it to Eclipse/plugins/
directory. The source code is in it.

I'm free the hole summer, so this will be my main task.

About me
I'm a Romanian student at Master's Degree in philosophy. My favorite
philosopher is Nietzsche.
I like a lot programming and I know Java and C. I studied C at
University (there are some classes in the Computer Science
department).
I have 2 years experience in Java and I know C at medium level. In
high school I learnt Pascal.
I use GNU/Linux – Ubuntu distro.
I found out that GsoC doesn't matter what courses one takes at
University, only open source programming matters, so I applied.

I previously worked on small projects (a Java visualizer for fractals,
not SWT, small dumb plugins for Eclipse, some UML editor but not
finished and aborted, basic programs in C). This will be an
extraordinary experience, working in such a dynamic group.

------------
end of proposal

Roxana Constantin

[-- Attachment #2: fractals_1.0.0.jar --]
[-- Type: application/java-archive, Size: 27271 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: GSoC & egit
  2007-03-20 23:06 GSoC & egit Constantin Roxana
@ 2007-03-21  7:25 ` Shawn O. Pearce
  0 siblings, 0 replies; 2+ messages in thread
From: Shawn O. Pearce @ 2007-03-21  7:25 UTC (permalink / raw
  To: Constantin Roxana; +Cc: git

Constantin Roxana <constantinrox@gmail.com> wrote:
> I am Roxana Constantin, I am a student and I want to participate to
> GSoC 2007 and work for git with the project of enhancing egit, the
> plugin for Eclipse.

Hey!  Welcome!  ;-)
 
> The users should be able to import with a wizard (clone in git) an
> outside project,

Here you mean a project that is already stored in Git, right?
Currently there is not enough library support in jgit to make this
function, even for the (trivial) case of just cloning a repository
that is already available on the local filesystem.  So jgit support
will need to be added.  Specifically a full "standard" clone would
require that we implement the logic of git-index-pack in jgit.
That program is about 1000 lines of C right now, so it shouldn't
be *that* difficult to implement.

> to commit

Yes, this is something I'd really like to see get done.  More so
than cloning, because users need to commit often, but they don't
clone very often.  Thus its "ok" to make them use the existing
command line tools to setup their project(s), but its not really
ok to make them use command line tools for daily tasks.

> and browse the history of the commits.

Robin Rosenburg has been doing some work in this area already,
which is quite a good start.  We can at least show a simple table
of commits that affect the selected file/folder in the Package
Explorer or Navigator, or in the current editor.  ;-)

Its not as powerful (or as useful) as any of the other Git history
viewers, but its a start at something!

> Also
> a perspective for egit (to include egit specifics), and extend the
> preference page (just a hello message now) with informations like
> user, email, or other properties.

Yes, these are good ideas.  Especially if we start to allow users
to create commits; they will want to configure their user.name and
user.email configuration options from within Eclipse.

> I believe that this minimum requirements should be met in order to be
> usable, so I would measure the success of my project by the amount of
> these features implemented.

I would remove the "import with a wizard (clone in git)" requirement
and instead replace it with at least basic merge support, such
as the two-way merge that gets used to switch between two branches.
This is an activity that I do at least 10x per day, if not more
frequently.  But I almost never clone.

In my mind, the goal of an Eclipse plugin for Git is to allow an
Eclipse user to get their daily tasks accomplished directly from
within Eclipse, where they are doing everything else too.  I just
don't think that project creation is not a daily task for most users,
but I know committing, branch creation and branch switching is.

> Also a documentation inside Eclipse help system would be useful.
> (through an extension point)

Yes, this would be very nice indeed.
 
> Milestones
> - from now and until May 28: get used with the source code, learn more
> about git/jgit
> (May 28 - June 10) - week 1- 2 : work on commit, get used with the jgit API
> (June 11 - June 24) - week 3 -4: finish any work left with commit,
> work for history browser
> (June 25 - July 8) - week 5-6: finish any work left on the history
> browser, add perspective, preference page
> (July 9 - July 22)- week 7-8: work on fine tuning the already
> implemented features, fix bugs, documentation, tests
> (July 23 - August 5) - week 9-10: analyses supporting branches and
> start to work towards supporting them: create, switch, delete
> (August 6- August 20) - finish any work left, write the final
> documentation, tests

Yes; this schedule mentions the things I was just talking abouve
above as being the important features.  It also does not mention
the import wizard.  ;-)

With the exception of branch switching, I think the above items are
probably quite doable within the timeframes you are talking about.
You might also be able to get branch switching implemented; but you
might not.  I actually expect you will need more than 2 weeks to get
a decent commit UI built up and working, especially since that is so
early in the project and you will still be getting started on things.

> A few extension points I want to extend are:
> org.eclipse.ui.preferencePages,  -- preference pages
> org.eclipse.core.runtime.preferences  -- initial values for preference pages
> org.eclipse.ui.importWizards,     -- clone a git repository
> org.eclipse.ui.perspectives,       --   git perspective
> org.eclipse.help.toc         -- documentation
> 
> Interfaces
> I sow that in org.spearce.egit.core is the plugin core (non UI)
> in org.spearce.egit.ui is the UI part of the plugin
> and org.spearce.jgit is the library with the pure Java implementation of 
> git.
> I will use jgit in egit-core and egit-ui, probably mostly 
> org.spearce.jgit.lib.*
> I do not know yet if I will need to change something in the library.

Yes.  Its likely that jgit will also need to be changed.  ;-)
 
> Preparations
> Because I never worked with git before:
> I compiled and installed git and read the tutorial, some man pages,
> and other docs from Git Documentation. I played with git to get
> accustomed how it works.

Good!

> I looked at egit sources, how the extension points from Eclipse are
> extended, what functionality is already there, and I tested the
> plugin.
> I built a demo plugin in Eclipse SWT to show you that I know how to
> work in the Eclipse environment.
> It draws fractals. It adds a new wizard to Eclipse and you can create
> a fractal in an existing project.
> You can install it the usual way by copying it to Eclipse/plugins/
> directory. The source code is in it.

I apologize for not taking a look at this right now.  I've had a
very long day, and still have about another 8 hours worth of tasks
to accomplish, but have under 4 hours in which to do them *and*
to get some sleep before tomorrow.

I will take a look at this in a day or two, when I can make the time.

-- 
Shawn.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-03-21  7:25 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-20 23:06 GSoC & egit Constantin Roxana
2007-03-21  7:25 ` Shawn O. Pearce

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).