Jump to: navigation, search

Difference between revisions of "LTS/HowTos"

< LTS
(HowTos)
m (Using Gerrit / Git)
 
Line 9: Line 9:
 
= Using Gerrit / Git =
 
= Using Gerrit / Git =
  
Gerrit a code review system as well as a repository service manager which provides access to project repositories.
+
Gerrit is a code review system as well as a repository service manager which provides access to project repositories.
  
 
The LTS Forge Gerrit instance is available at https://lts.eclipse.org/r
 
The LTS Forge Gerrit instance is available at https://lts.eclipse.org/r

Latest revision as of 06:06, 25 October 2013

LTS Forge

The Eclipse LTS Forge offers several services:


Using Gerrit / Git

Gerrit is a code review system as well as a repository service manager which provides access to project repositories.

The LTS Forge Gerrit instance is available at https://lts.eclipse.org/r

Once there you will not be able to see any projects or code reviews until you login. You can login by clicking Sign In at the top right of the page.

You will need to use your eclipse.org email address and password to login.

We will try to cover a few use-cases of what you might want to do in the subsections below.


Setting up your Gerrit account

In order to checkout code from the git repositories you will first need to configure your Gerrit account. There is 2 possible options depending on what your most comfortable with.

1. Setup a SSH Key to enable git checkouts via SSH

2. Generate a random password to enable git checkotus via HTTPS


To access the screens to configure these you will need to click Settings at the top right once you login to Gerrit.

Then clicking SSH Public Keys or HTTP Password in the left menu bar depending on which you want to configure.

Setting up SSH Public Keys

SSH Public Key authentication is recommended over HTTP Password authentication as it is a little more secure.

Gerrit Settings for SSH Public Keys

To configure an SSH Public Key you will need to:

  1. Click Settings on the top right after logging into Gerrit
  2. Click SSH Public Keys on the left menu
  3. Copy and Paste your SSH Key into the Add SSH Public Key box
  4. Click Add

Once your SSH Public Key is added you should be able to checkout using the Gerrit SSH URLs for your project. You will need to use the Username that Gerrit supplied as your username when checking out the code.

For example:

git clone ssh://lts.eclipse.org:29418/project/repo

See also: #Checkout code with Gerrit


Verifying SSH works

The following command should return a list of available projects to you if your ssh settings are configured correctly.

ssh -p 29418 user@lts.eclipse.org gerrit ls-projects

Replace user with your userid from Gerrit.

Setting up HTTP Password

Gerrit Settings for HTTP Password

To configure an HTTP Password you will need to:

  1. Click Settings on the top right after logging into Gerrit
  2. Click HTTP Password on the left menu
  3. Click Generate Password to generate a new password

Note: If you have no need for a HTTP Password it is recommended you clear the password as this will make your account more secure.

Once your HTTP Password is generated you should be able to checkout using the Gerrit HTTPS URLs for your project. You will need to use the Username that Gerrit supplied as your username when checking out the code.

For example:

git clone https://lts.eclipse.org/r/project/repo.git


See also: #Checkout code with Gerrit

Checkout code with Gerrit

Gerrit provides 2 URLs for checking out code in the format:

  1. git clone ssh://lts.eclipse.org:29418/project/repo
  2. git clone https://lts.eclipse.org/r/project/repo
  • Replace project with the project such as "jdt", "platform", "equinox", etc...
  • Replace repo with the specific repo in the project such as "eclipse.platform.releng.aggregator"


You can get a list of all projects you have access to by navigating to the projects page in Gerrit.

  1. Click Projects in the top menubar
  2. Click List in the Projects submenu

The project list shows the full project/repo list so you can simply replace that string into the example URLs above.

Gerrit Projects List


Pushing a patch to Gerrit Review

After making a patch and your ready to push you will want to commit your patch to your local git and then push it up to Gerrit's special refs/for/branch path.

    git add /path/to/file
    git commit
    git push origin HEAD:refs/for/branch
  • Replace refs/for/branch with the branch name of the branch your code is for such as R4_2_maintenance


Pushing changes to Company specific branch

While LTS Central Forge does not allow direct pushes you are able to push directly to your company specific branch by prefixing your branch name with your company. For example:

    git checkout -b company/branch
    git add /path/to/file
    git commit
    git push origin company/branch

Reviewing a patch / code review

You can display all open code reviews by:

  1. Clicking All from the top menu
  2. Clicking Open from the submenu

This will list of all open code reviews that need reviewing. Selecting a specific review will open up a screen displaying the contents of the patch submitted and allow you to review the patch.

Getting notifications

Gerrit supports email notifications which you can register as a user for projects your interested in being notified about when a new review comes in. To subscribe to project notifications follow these steps:

  1. Click Settings
  2. Click Watched Projects
  3. Enter a project to watch and click Watch


Gerrit also supports project level notifications which requires more configuration but is described in this document: https://git.eclipse.org/r/Documentation/user-notify.html

Hudson

Hudson is a Continuous Integration server used by the LTS Forge. It is hosted at https://lts.eclipse.org/hudson

You can use Hudson to run periodic builds.

Setting up a Hudson Maven project to build Eclipse Platform

For the steps below. Navigate to your Job you wish to configure and choose Configure

Set the JDK

It is recommended to set the JDK explicitly for your job instead of using the Default JDK. If you don't know which one to pick we recommend to select Oracle JDK 1.7.

Setting up Git

  1. Enter URL of git repo (refer to #Checkout code with Gerrit)
  2. Set the build branch (eg. R4_2_maintenance)
  3. Click Advanced... under Branches to Build
  4. Check Skip internal tag
  5. Save

Setting up Platform Build

Build step 1, invoke maven for Platform build

  1. click Add Build Step -> Invoke Maven 3
  2. click Advanced
  3. Set goals: clean verify
  4. Set properties: maven.test.skip=true
  5. Set pom-file: pom.xml
  6. Set private repository enabled
  7. Save

Using TortoiseGit to "git submodule update"

  1. Navigate to your git repository which you cloned (eg. eclipse.platform.releng.aggregator)
  2. Right click > TortoiseGit > Submodule Update
  3. Select to Initialize Submodules
  4. Click OK

FAQ

Forgot Password

If you forgot your password you can use the following link to reset your password:

https://dev.eclipse.org/site_login/createaccount.php

Known Issues

Fail to clone submodules using msysgit

Per Bug 376400 we discovered that msysgit has a max character limit somewhere around 256 which causes cloning files with a path longer than that to fail.

See: https://bugs.eclipse.org/bugs/show_bug.cgi?id=376400#c4

Workaround: Put your repo in the root of a drive and give it a short name. For example: C:\z

My Views link is broken

Per Bug 403242 we discovered that trying to set any settings under "User Configuration" will cause the "Default View" setting to be set to blank. Once this occurs clicking "My View" in the left pane will display a stack trace error with no way of resetting it. Until this bug is resolved in Hudson we would recommend not trying to set anything in "User Configuration".

See: https://bugs.eclipse.org/bugs/show_bug.cgi?id=403242

Error assembling JAR: Could not find a common basedir (Resolved)

In git version 1.7.8 and newer, git changed it's behaviour with respect to submodules https://raw.github.com/gitster/git/master/Documentation/RelNotes/1.7.8.txt

The new behaviour causes Tycho Eclipse-SourceReference provider for git to be unable to calculate the basedir correctly. There is a open Tycho bug that includes a patch for getting this resolved https://bugs.eclipse.org/bugs/show_bug.cgi?id=393752

Workaround: Use a git version 1.7.7 or earlier.

Cannot git clone via ssh:// protocol (Resolved)

The issue with this is that most user accounts on the Forge will not have shell access to the forge and the ssh:// protocol requires shell to operate. The solution we decided to go with was we provisioned a https:// protocal instead which we will recommend users to use instead.