If you'd like to use Git instead of SVN as your SCM tool of choice, here's how you can connect to the JBoss Tools SVN repo, pull down all the sources, work on them locally, then either commit changes back into the SVN repo (or submit a patch, if you're not already a committer).
The instructions below assume you have either Linux, Mac OSX, or Windows w/ cygwin. If you have none of those, YMMV.
Fetch sources from SVN
First, fetch sources from SVN using git-svn. If you don't want to check out all the components, use a subset of the components listed below. The complete list is here.
# create a directory into which to check out the JBoss Tools projects mkdir ~/trunk; cd ~/trunk; # fetch projects - this will take quite some time # Committers, use http://svn.jboss.org/repos/jbosstools/trunk/ # Contributors, use http://anonsvn.jboss.org/repos/jbosstools/trunk/ for d in \ archives as birt bpel bpmn build cdi common \ deltacloud documentation download.jboss.org drools \ esb examples flow freemarker gwt hibernatetools \ jbpm jmx jsf jst maven modeshape portlet profiler \ requirements runtime seam site smooks struts \ tests tptp usage vpe ws xulrunner; do \ git svn clone http://anonsvn.jboss.org/repos/jbosstools/trunk/${d}; done
Configure Eclipse
Next, fire up Eclipse Helios 3.6 for Java EE Developers.
Install the latest eGit from http://download.eclipse.org/egit/updates.
Install the latest m2eclipse from http://m2eclipse.sonatype.org/sites/m2e/ and optionally, http://m2eclipse.sonatype.org/sites/m2e-extras/.
Restart when prompted.
Import Git projects into Eclipse
Now, import Git projects into Eclipse using:
File > Import Git > Projects from Git Click 'Add' then browse for ~/trunk/ Enable [x] Look for nested repositories Click 'Search', then click 'OK' when done
Select a local repo from the list, click 'Next' (*) Import Existing Projects (*) Try to share automatically Click 'Next' Click 'Select All', then click 'Finish'
Repeat for other components you want to import. You can add each component to a working set to keep your workspace sorted by component.
Resolve missing dependencies
While the Eclipse Helios 3.6 for Java EE Developers contains most of the dependencies against which JBoss Tools must be compiled, it does not contain everything. For that, you need to install extra dependencies. There are two places to go:
- JBoss Tools Target Platform p2 Repo (also available as an archived update site zip for offline use) - contains all the Eclipse.org, google.com, and sonatype.org features needed to compile / install all of JBoss Tools. You can install everything, or just the pieces you need.
- JBoss Tools Nightly Repo (Update Site) - if you don't have all the source projects in your workspace, you can resolve dependencies against this site and install them from here. Once again, you can install everything, or just the pieces you need.
Build & run tests
With m2eclipse installed, you can simply right-click a project and select 'Run As > Maven Build (ALT-SHIFT-X, M)
', which will prompt you complete a run configuration dialog. Here are the simplest options you need to set:
Goals: clean install [x] Resolve Workspace artifacts
You can also run Maven to build your projects outside Eclipse, if you prefer.
If running outside Eclipse, you can run tests which are still tied to the Eclipse debugger.
Commit changes to master repo
Because there's no support yet for 'git svn rebase
' or 'git svn dcommmit
' you're stuck pushing changes to the master repo using the commandline. However, you can shorten the amount of typing needed using an .alias file. See below.
Use an .alias file
To avoid having to type the same git commands over and over, I use these shortcuts in my ~/.alias file:
# update local git-svn repo from master SVN repo alias gitup='for d in $(find . -maxdepth 1 -type d); do cd $d; echo $d; if [[ -d .git ]]; then git svn rebase; fi; cd -; done' # Push local changes to master SVN repo alias gp='git svn rebase; git svn dcommit' # commit local changes to local git-svn repo alias ci='git commit -m' # check status of local git-svn repo alias stat='git status'
So, after committing changes (with eGit or via commandline) I can push those to the master SVN repo w/ a simple 'gp
'. If your shell doesn't read the .alias file, make sure your .bashrc loads the file using one of these commands:
Or, put them directly in your .bashrc file.source /home/yourUserName/.alias . /home/yourUserName/.alias