I have started working on what I expect to become, by far, the largest project I’ve ever done, and I’ve come to the conclusion that I really need to start using some kind of version control beyond my current dated zip files and a txt file of comments. I’ve looked into a number of different options but I’m just not finding anything that I feel is a fit for me.
One of my big complaints is the total lack of a quality GUI in any of the available options, TortoiseSVN seems to be the best of what’s out there, and is still terribly unintuitive (I have nothing against FOSS, but this does seem to be a common problem among OSS projects). Reading the guides and manuals for SVN and other version control systems feels to have a complexity level akin to learning a new programming language. I’m a solo developer, so I require very limited (if any) merge support and branching capabilities, no real need for multi-user systems, I have no need for distributed repositories. Basically what I would like is something akin to an automation of my zipping process with organizational support, commenting and basic diff options.
I have been toying with the idea of rolling my own program to fit my needs, to those ends I tossed together a very basic GUI mock-up to figure out what it would look like. Please ignore any spelling and organization/logic mistakes.
I'm new so not allowed to post images, please see mock-up here
This is little more then a "napkin sketch" really. The way I envision functionality is that you would drag a version out of the tree and drop it where you wanted it. It would create a directory containing that version of your project. There would be a hidden file with in the directory that would contain the version information. When you wanted to create a new version, you would drag and drop that folder into the tree view. If you were working with a Version that was not the most current it would create a branch. It would check for file changes/moves/renames and prompt for general version, and specific file comments.
My Question here is multifold. Is there anything out there similar to what I’m looking for? (I’m open to reasonably priced non-free options).
If not, is this a worthwhile project? If so would there be any call for this kind of a program in the programming community at large that would make it worthwhile to polish the program as an end user product?
@josh3736
right now, now, yet -- I know what you mean here; I would consider multi-user support as something I would be adding to the system in a later version, and would plan accordingly. As for merge support, I would never work with more than a small team on any of my projects and thus would have no need for anything more than the basic merge support. thus far -- I guess it would have been more clear to say that I disagree with the concepts behind Distributed Repositories and simply would not use them. I’m not arguing the need and usefulness of these features in a large business project, or in a large FOSS project – but I wouldn’t use Oracle to keep track of my friend’s phone numbers. While a custom GUI is a good suggestion, it really isn’t a project for me. IMHO it exemplifies what I see as the primary problem in the development of OSS systems such as SVN, being built from various components wrapped around and built on top of one another leads to a highly unintuitive system (in general, not just the GUI) with no clear design or focus.