With ImageJ we have a tool and framework that has been widely adopted for image processing. Through its rich plugin interface novice and part-time programmers are able to find and develop solutions for their problems. Many helped the contributed to the community by releasing their solutions. As the ImageJ software is in a constant state of development, maintenance and compatibility issues for these plugins arise.
Change management for software has become an important aspect of software development . In this workshop I’d like to introduce git, a decentralized version control system, display its potential for occasional software developers and present a few ideas on how git could be used by means of collaboration and exchange within the ImageJ community.
The first half will address conceptional basics of decentralized version control compared to central source code management such as Subversion or CVS. I introduce the git-inherit terminology and show how source code history is organized by using branches and tags. Since branching and automatic merging is the big strength of git, we will talk about some common workflows and conventions.
In the end of the theoretical half, we have a short look at the available software.
Git is originally a command-line tool, but there is a number of software that adds a graphical user interface on top of git, such as gitk, SourceTree and egit.
For the practical part of the workshop, I will introduce github, which is a social code hosting platform for git and is designed for collaborative work with a well-defined workflow. Users can register free git repositories for Open Source projects and the website gives a simple interface to browse code online, comment on commits, fork projects to introduce new features and an interface to pull these forks back into the original project. The interactive workshop will feature github’s own git tool for Windows and OS X. For developers in the ImageJ community this can become very interesting, as the source code for their plugins is available online, and can be continuously developed, even after the original author lost interest in the project. Here the circle closes with the potential of continued plugin support by the community.
git, github, source code management, collaborative work
Presenting author: Daniel Senff