Skip to main content

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.

Jump to: navigation, search

LTS/HowTos

< LTS
Revision as of 12:01, 6 March 2013 by Thanh.ha.eclipse.org (Talk | contribs) (Setting up Platform Build)

Howtos

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

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

Setting up Git

  1. Enter URL of git repo (example: /gitroot/lts-central/platform/eclipse.platform.releng.aggregator.git)
  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 install
  4. Set properties: maven.test.skip=true
  5. Set pom-file: pom.xml
  6. Set private repository enabled
  7. Set profiles: no-bree-libs
  8. Save

Updating LTS Repository

Adding LTS Central remotes

Before you can update your repos with the latest changes from the LTS Central repo, you will need to add the LTS Central repos as a remote for the aggregator as well as all the submodules.

Example Command to add a remote for aggregator:

git remote add central https://<username>@lts.eclipse.org/gitroot/lts-central/platform/eclipse.platform.releng.aggregator.git

Submodules to update:

eclipse.jdt
eclipse.jdt.core
eclipse.jdt.core.binaries
eclipse.jdt.debug
eclipse.jdt.ui
eclipse.pde
eclipse.pde.build
eclipse.pde.ui
eclipse.platform
eclipse.platform.common
eclipse.platform.debug
eclipse.platform.releng
eclipse.platform.resources
eclipse.platform.runtime
eclipse.platform.swt
eclipse.platform.swt.binaries
eclipse.platform.team
eclipse.platform.text
eclipse.platform.ua
eclipse.platform.ui
rt.equinox.binaries
rt.equinox.bundles
rt.equinox.framework
rt.equinox.p2

Once all the remotes are added you will want to run a "git fetch central" to get the latest updates. You can use the git submodule foreach command to update all the submodules in one command:

git fetch central
git submodule foreach git fetch central

Updating a LTS Forge Branch

If you have not already ran a git fetch from the previous step, run it now so that the latest git commits are available to you.

Ensure your git workspace is clean

$ git status
# On branch master
nothing to commit, working directory clean

If your workspace is not clean you can run the following commands to clean it up:

git checkout -f
git clean -fd
git submodule foreach git checkout -f
git submodule foreach git clean -fd

You will need to checkout the branches in each submodule and aggregator repo for the branch you would like to update. As of this writing there are 3 possible branches for CBI:

- R3_8_maintenance - R4_2_maintenance - master

In the case of R3_8_maintenance and R4_2_maintenance branches some submodules don't have both branches, in which case you will need to use the 3.8 or 4.2 branch that exists.

If you are pulling master (4.3 Kepler) you can use the following commands to checkout master quickly.

git checkout master
git submodule foreach git checkout master

NOTE: If you are using R3_8_maintenance or R4_2_maintenance branches do not use the git submodule foreach command. You should cd into each submodule individually and perform the git command for the repo to ensure you are working on the correct branch.

Once the master branches are checked out you can merge the central repo branches into your master:

git merge central/master
git submodule foreach git merge central/master

NOTE: If you are using R3_8_maintenance or R4_2_maintenance branches do not use the git submodule foreach command. You should cd into each submodule individually and perform the git command for the repo to ensure you are working on the correct branch.

At this point you should be able to run a build to ensure it works. Once you have verified the build is ok and there are no issues you can push your changes into the LTS Forge:

git push origin master
git submodule foreach git push origin master

NOTE: If you are using R3_8_maintenance or R4_2_maintenance branches do not use the git submodule foreach command. You should cd into each submodule individually and perform the git command for the repo to ensure you are working on the correct branch.

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

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.

Back to the top