Jump to: navigation, search

E4/Git

< E4
Revision as of 14:18, 24 November 2010 by Pwebster.ca.ibm.com (Talk | contribs)

For working in git lately I've been using the latest eGit. Functionality has been increasing week over week, so I just use their latest nightly:

http://download.eclipse.org/egit/updates-nightly

Some resources:

Git in e4

We have a place in e4 for git repositories.

Current Repos

A repo then follows our standard subdir convention:

  • bundles
  • features
  • examples
  • tests

When creating a repo on the server, follow these steps (Please update them if there are better steps :-)

  1. log into git.eclipse.org
  2. cd /gitroot/e4
  3. mkdir component.id.git # ex: mkdir org.eclipse.e4.search.git
  4. cd component.id.git
  5. git init --bare

This creates a bare repo that can be cloned. Then on your work machine

  1. git clone ssh://pwebster@git.eclipse.org/gitroot/e4/component.id.git
  2. cd component.id
  3. mkdir bundles features examples tests
  4. add a useful .gitignore. See below
  5. copy in your plugins into bundles, features into features, test plugins into tests, etc
  6. add all of your files: git add -A
  7. commit them with a useful commit message
  8. add 2 tags. One will be initial-import. The other should be a time tag, like v20101124-0800
  9. I split the next step up into 2:
    1. git push origin master
    2. git push --tags origin


Example .gitignore

bin/
*~
*.rej
*.bak


We build our git repos still using map files, checked into CVS in the /cvsroot/eclipse e4/releng module. You can generate a default map file for your initial commit from your repo root using git-gen-map.sh. ex:

/bin/bash git-gen-map.sh git://git.eclipse.org/gitroot/e4/org.eclipse.e4.search.git v20101124-0800 bundles tests features

Submitting for a build

We have 2 scripts used for submitting for the build. One to update the map files, and one to generate the submission report for our mailing list e4-dev@eclipse.org

git-map.sh is used to update the map files.

git-submission.sh is used to generate a build submission report.

Note: We have a policy that all commits have the associated bug number. Usually our format is:

Bug <number> - <bug title>

and then any specific comments after the title or on the next line. It's important that we only list 1 bug # per line, and at the beginning of the line. A line with "bug #" or "Bug #" without the title is also acceptable.

When ready to submit deeplinking for the build, you have to submit 2 repos, org.eclipse.e4.deeplink and org.eclipse.e4.utils. For each repo:

  1. cd into the repo (make sure it's up to date, you're on the master branch, etc)
  2. tag the repo: git tag v20101022-1030 # we use vDATE-TIME as our tag
  3. make sure you push the tag back to the public repo. ex: git push --tags
  4. run the script (see example below)
  5. You'll have to execute the script for each subdiretory: bundles, examples, features, tests.
  6. Repeat the steps for the second repo.
  7. Then refresh your workspace and commit.

git-map.sh example:

$ /bin/bash git-map.sh v20101022-1030 /opt/pwebster/workspaces/e4/releng/org.eclipse.e4.deeplink.releng/maps/deeplink.map  bundles
  

Then when done you can generate your build submission report for the e4-dev list:

$ /bin/bash git-submission.sh >report.txt