If you are modifying Soot you should be using Subversion!

What to do:

Checkout a working copy of Soot using svn co https://svn.sable.mcgill.ca/soot/soot/trunk $your_soot_working_directory

You should work on the trunk if your work is relatively localized. (ie: if you work mainly on one IR)

You should check in your work, after doing an svn up, very often. (ie once a week) This allows other people to help test your work and prevents potential conflicts.

If you feel your work is not localized you can work in a branch:

Make a new branch:

svn cp https://svn.sable.mcgill.ca/soot/soot/trunk https://svn.sable.mcgill.ca/soot/soot/branches/$your_project

Checkout a working copy of the branch:

svn co https://svn.sable.mcgill.ca/soot/soot/branches/$your_project $your_project_working_directory

To merge changes from the trunk into your branch:

svn merge https://svn.sable.mcgill.ca/soot/soot/trunk $your_project_working_directory $your_project_working_directory

To merge changes from your branch into the trunk:

svn merge $your_project_working_directory https://svn.sable.mcgill.ca/soot/soot/trunk https://svn.sable.mcgill.ca/soot/soot/trunk

What not to do:

You should not download a released version or nightly build in a jar file and start editing.

The only time you should use a downloaded Soot jar is if you are making an extension to Soot with your own main and you do not change the Soot source at all..