# for those of us using git internally
# before committing in the central svn repository.

*.class
*.pyc
*.iml
*.ipr
*.iws
*.zip
*.jar
*.orig
*.rej
*~
.classpath
.project
.metadata
target
reports
test-output
_buildr.rb
derby.log
Gemfile.lock
spoon
*.log
