Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "LTS/HowTos"
(→Setting up Git) |
(→Pushing changes to Company specific branch) |
||
Line 119: | Line 119: | ||
git push origin company/branch | git push origin company/branch | ||
</pre> | </pre> | ||
+ | |||
+ | == Reviewing a code change == | ||
+ | |||
+ | Clicking '''All > Open''' at the top menu will display a 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. | ||
= Hudson = | = Hudson = |
Revision as of 15:04, 2 May 2013
LTS Forge
The Eclipse LTS Forge offers several services:
- Gerrit instance which handles the management of repositories as well an interface for members to submit patches for code review (https://lts.eclipse.org/r)
- Hudson instance for Continuous Integration (https://lts.eclipse.org/hudson)
Using Gerrit / Git
Gerrit 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.
To configure an SSH Public Key you will need to:
- Click Settings on the top right after logging into Gerrit
- Click SSH Public Keys on the left menu
- Copy and Paste your SSH Key into the Add SSH Public Key box
- 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
Setting up HTTP Password
To configure an HTTP Password you will need to:
- Click Settings on the top right after logging into Gerrit
- Click HTTP Password on the left menu
- 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:
-
git clone ssh://lts.eclipse.org:29418/project/repo
-
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.
- Click Projects in the top menubar
- 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.
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 code change
Clicking All > Open at the top menu will display a 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.
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
- Enter URL of git repo (refer to #Checkout code with Gerrit)
- Set the build branch (eg. R4_2_maintenance)
- Click Advanced... under Branches to Build
- Check Skip internal tag
- Save
Setting up Platform Build
Build step 1, invoke maven for Platform build
- click Add Build Step -> Invoke Maven 3
- click Advanced
- Set goals: clean verify
- Set properties: maven.test.skip=true
- Set pom-file: pom.xml
- Set private repository enabled
- Save
HowTos
Using TortoiseGit to "git submodule update"
- Navigate to your git repository which you cloned (eg. eclipse.platform.releng.aggregator)
- Right click > TortoiseGit > Submodule Update
- Select to Initialize Submodules
- Click OK
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.