Geany is a fast, lightweight and yet sufficiently feature-rich IDE to be able to handle my home and self-interest projects.
You can install Geany through the Ubuntu Software Centre. When you have searched and found the Geany entry, scroll down and check the Set of plugins for Geany option, and scroll back up and install Geany.
In Geany, on the main application menu go to Tools, Plugin Manager.
In the plugins dialog scroll through the list and select GeanyVC. Then click the Preferences button.
In the Configure plugins dialog I deselected everything I wasn’t interested in. This plugin provides access to a variety of different software version control systems. I only selected the Confirm adding new files to VCS, Use external diff viewer and enable SVN options. Then click Apply, click OK and finally click the OK button back in the Plugins dialog.
In the main application menu of Geany you will see a new option VC under the tools option.
I’ve been porting some old Windows & DOS code into the Linux environment. For anything other than the most trivial of software projects it is advisable to use some form of software version control. A good version control system will allow you to store ‘snapshots’ of the code base as you progress through the development cycle. You can go back to a previous version of a file (or even all the files in a particular build of your project) very easily, and you can do things like compare two different versions of the same file for differences. Your version control system should also handle branches in the code base and, although I’m working on my stuff solo, it should allow easy collaboration between team members who are working on the same software project.
Subversion is a well known and highly respected, free and open source version control system. It is often referred to as SVN. Because it is such a richly featured and powerful system there is a fairly steep learning curve associated with its use. Nevertheless once you have it mastered it more than repays that learning effort. Subversion is used by the likes of the Apache Software Foundation (who maintain it), Free Pascal, FreeBSD, GCC, Django, Ruby, Mono, SourceForge, ExtJS, Tigris.org, PHP and MediaWiki. Serious players.
Out of the box, Subversion is completely command line driven. Even for a CLI freak like me it is sometimes more convenient to drive Subversion through a GUI. As you would expect there are plenty of Linux front-ends for Subversion. I’d used an excellent Windows-based one called TortoiseSVN. TortoiseSVN provides a set of extensions to the Windows explorer that provide access to the SVN functionality and which could be directly applied to files and folders. I was cock-a-hoop to find a clone of TortoiseSVN for Linux, called RabbitVCS.
The easiest way to install Subversion is to use the Ubuntu Software Centre. Search for Subversion and install it. Simple.
Installing RabbtVCS is slightly more involved. You need to add the RabbitVCS repository to your system.Open a terminal and type:
sudo add-apt-repository ppa:rabbitvcs/ppa
sudo apt-get update
When you next open the Ubuntu Software Centre you will see a RabbitVCS entry in the left-hand pane. Highlight that and you will see a list of the RabbitVCS components that you can now install. I only use the Nautilus file manager and I don’t program in Python. The whole point (for me) of using RabbitVCS is to avoid using the command line, so I didn’t install the CLI, Thunar and Python modules. I do use Gedit though so I installed the Rabbit Core, Nautilus and Geany modules.
Now, when I right-click a file or folder there is a RabbitVCS entry in the context menu, with differing sub-menus according to whether the folder or file I have clicked on is versioned or unversioned, whether it is up to date in my Subversion repository and so on.
Subversion is great, Subversion with RabbitVCS is magnificent. You have access to the functionality you need when and where you need it – right in your editor and in the Nautilus file manager.
One final note – I couldn’t locate any decent RabbitVCS documentation, but as it is almost a 100% clone of TortoiseSVN, I downloaded a PDF of their user guide. It is close enough to be useful.