Source Code Management
Fiji's development relies heavily on Git.
If you do not know what Git is, you really want to take GitHub's 15-minute interactive tutorial. Or follow Peter Cottle's excellent introduction into Git branching. Or you may want to have a look at our real concise introduction to Git predating GitHub's awesome tutorial.
The principal Fiji project is a Git superproject, which includes submodules -- projects in their own right. These submodules do not have to be checked out, but can be left empty, if you are not interested in the development of that particular project.
Some of Fiji's submodules are imported from third parties; most of them have their source code in Subversion repositories, which are mirrored via git-svn. The mirrors are updated by a cron job on fiji.sc.
If you want to contribute to Git, you can do that with the contrib user: Just use the URL firstname.lastname@example.org:fiji.git/ instead, and work on the contrib branch (the contrib user does not need a password, but can only push to the contrib branch).
Some useful documentation, in particular for Fiji:
- A really quick 'n dirty HOWTO
- How to write good commit messages
- Working with topic branches
- Description of merge conflicts and how to resolve them
- A quick introduction into "Git refs"
- A tutorial on submodules
- How to find which commit introduced a regression
- Setting up password-less SSH login
- Best practices established by the ImageJDev project
- Some notes on Git usage by Dr. Saalfeld
- Git recipes from Pavel so that he doesn't have to ask again