vazexqi / CodingSpectator

Watches and analyzes code edits in the Eclipse IDE non-invasively
http://codingspectator.cs.illinois.edu
Other
20 stars 14 forks source link

Use Eclipse Git repositories instead of the CVS ones #116

Closed reprogrammer closed 13 years ago

reprogrammer commented 13 years ago

Eclipse code is mirrored as read-only Git repositories at http://dev.eclipse.org/git/. We should do a cost-benefit analysis on switching to the Git mirrors of the Eclipse plugins that we modify.

vazexqi commented 13 years ago

We looked at using the EPP git repository at git://dev.eclipse.org/org.eclipse.epp/org.eclipse.epp.git

This entire repository is about 105 MB for all its history. It contains a lot of other plug-ins and features that we don't need (we only need to use org.eclipse.epp.usagedata.*).

So far, this seems to be a large overhead. We do not know a best-practice way to handle this under git. We have the following constraints:

  1. We are only going to touch a few plug-ins in the epp git repository meaning that we don't want the whole thing.
  2. Our changes might cross multiple plug-ins from different repositories -- how can we consolidate that into an understandable commit?

Proposed action: we need to look into git submodules to see if it can solve our problem.

vazexqi commented 13 years ago

Git submodules would be applicable for us assuming that we follow the proper guidelines i.e. commit in the submodule before the main module so that we always record a valid SHA.

To solve the issue of large Eclipse repositories, we would have to use something like cvs2git manually to make each Eclipse plug-in/feature into a more manageable Git project. Perhaps when Eclipse officially adopts Git it will go down this route.

In the mean time we are postponing the transition from Eclipse CVS to Git repositories.

reprogrammer commented 13 years ago

We might be able to use git filter-branch to extract pieces of a git repository as submodules (See stackoverflow and the git manual page).

vazexqi commented 13 years ago

How would you be able to fetch and merge easily from the original Eclipse git repositories? As I understand it, filter-branch will rewrite history, causing the SHA to change. This makes it hard to pull in changes unless we are going to use manually apply generated patches. This also means that our repository is not directly in sync with the original Eclipse one.