26
Nov
It’s already a week since I last posted. I’ve been very much busy with work over the past few days. I’m so tired that I skipped my weekly geek night and got to bed early since Friday night.
Yet with all these there is something that I can’t seem to get out of my head. It’s an inherent problem every large development project faces day in and day out — source code management (SCM). I’ve been looking for a suitable software to address this issue and seemingly, none that exists today fits the bill. I’m looking for the following characteristics:
- True multiplatform operation. That means, It should not only work on several platforms, it should work well on every platform it supports. Most of the multiplatform SCMs today are only good at one, and falls flat on the others. It seems that the current crop are developed in one platform, and then forced to work in another just to address the users’ multiplatform issues (in other words, make the users stop whining). This really is a bane.
- Interoperability. Correct me if I’m wrong, but is there any SCM that can store its own repository and then import or export it to another, say VIsual SourceSafe? Somebody may come up with one or two, but I’m sure that it would fail in another of the characteristics I’m mentioning here. Is it really hard to create something like Open Document Format for SCMs? RIght now that best you can do to port the repository from one to the other is to offload everything from one and then putting that everything into another. If you use one, you’re pretty much stuck with it unless you’re willing to go through that transfer nightmare.
- Consistent, Idiot-proof User Interface. Can somebody come up with another term for commit without making the newbie think twice about what it is for?
- Data Recovery. Backing up important data is mandatory for companies (and those that don’t do it should be burned at the stake). However there still should be a means to recover data when a repository goes haywire. I’m thinking about something in line with that being done by journaling file systems.
- History editing. Sometimes there comes a need to edit something within the history of the document/code stored in the repository. What if I’d like to get a block of code from copy number 2 of a particular file and merge it to copy number 5 while somebody is editing copy number 7? Can I do it without much fuss? Will the user editing copy number 7 be informed of the change?
- Open source. IMHO, it should be.
Well, that’s talking about the software aspect of SCM. There’s still the human aspect of it that we haven’t touched yet.
0