I thought I’d let everyone know what my future plans are for HareSVN (and hopefully not too far into the future). But first, I want to let everyone know a few key things that have already taken place.
I’ve been working on various prototypes to verify a couple of things. For example, I have a prototype that I created to make sure that wxWidgets meets my requirements. I need the ability to render overlay icons efficiently. For this task, I chose to use their fairly new wxDataViewCtrl widget, which is supposed to be a “better” version of wxListCtrl, which the wxWidgets developers have openly admitted they hate (the wxListCtrl that is).
I can agree that wxDataViewCtrl is better. It uses a model/view design which helps separate responsibilities, which is something wxListCtrl failed at doing. Additionally, it also lets me specify a renderer for each of the items in the list, which allows me to have very granular control over how I draw the icons in the list (I can blend two icons together to provide overlay support efficiently on a per-item basis). There is one sacrifice I make by using this widget, however, and that is functionality. Unlike wxListCtrl, wxDataViewCtrl does not support various view modes, such as icon or thumbnail views. For most programmers using Subversion, this wouldn’t be such a big deal since we normally use report/list view anyway. However, for artists using Subversion, I suspect that a thumbnail or icon view would be useful for them. This is a situation where my hands are tied. Unfortunately I am stuck with what wxWidgets provides me. I’m hoping this improves in the future, though. For now, I’ll be sticking with wxDataViewCtrl.
The next thing I have to do is learn the Subversion C API. I already have a second prototype in progress that is really just a simple use case for Subversion. I want to make sure I fully understand the API and how it works before I begin writing a set of abstractions for it in C++. Once I feel comfortable with Subversion, I’ll begin working on HareSVN (no more prototypes) and start with a very basic interface and functionality (e.g. connect to an SVN repository, get the list of files, display this list to the user).
A friend of mine has offered to help out with HareSVN development once it gets going again, and I am very grateful for his offer. As I said before, right now I’m helping out Red Sword Studios, which is consuming my free time that I would otherwise be putting towards this project. However, when I’m done there I’ll definitely be back on HareSVN!