For many developers, Git has become the tool of choice when it comes to version control systems. Those that work in Eclipse are provided with a comprehensive Git tool integration. But it seems that for certain tasks the command line is favored. Some find it more convenient to type in such cases, while others claim that certain functionality just isn’t available within the IDE.

Because of this Frank and I thought, a console that was integrated into the IDE would be a good thing to have. Such a console could help completing commands with content assist, keep workspace resources in sync and integrate with other features of Eclipse and could look like this:

As we have some spare time, we decided to get our hands dirty and see what we can achieve in a few weeks. And for the curious ones we set up the project so that you can try it out right from the start – while the issue tracker is prepared to receive your precious feedback.

So far we have a very basic system that serves as a tracer bullet: a console extension can receive commands and executes them on a temporary Git repository. We have chosen to use JGit to interact with the repository for the plug-in to be self-contained.

Since we are on a green field we used the opportunity to try out the ‘nested TDD approach’ that Steve Freeman and Nat Pryce describe in ‘Growing Object-Oriented Software, Guided by Tests’. We have anchored the system with a walking skeleton that secures the mini-feature we have outlined above. From there on we will grow the system feature-wise.

As you can imagine, a console working only on a temporary repository is of no practical use. The next logical step for us seems to allow to work with a real repository. Our current thinking is to have a pluggable repository provider. One such provider could offer the repositories that are known to EGit.

Enough said, for now, we will go back to work but will keep you posted on the progress of our gonsole weeks. In the meanwhile you may want to have a look at the project’s homepage: gonsole.codeaffine.com.