Matt's Source Control Tool (mscm)
My goal with this tool is to create a top-of-the line source control
tool, a la ClearCase.
My main feature goals are these:
- Checkout directories in order to add/rename/delete files or directories
- Atomic checkins
- Usable API for custom tool integration
- Directories and Files are "elements"
- Repository structure modeled after unix filesystems (directories are containers of other elements; hard/soft links)
- Sandbox uses a "load file" to determine which repositories or parts of repositories to load
- Normal SCM stuff: diff, history, label
- Branches are applied to element (visible in element history), not to repository structure (new folder)
- "Check out/Edit/Check in" development style
I want to play with some new technologies when I create this.
My architecture sketch is this:
- Written in Java, since it seems to work out well for enterprise-class solutions.
- Use something like mysql for data storage, and hibernate as an O/RM.
- Use Spring Framework for whatever it is that it does
Comparison to other SCM tools
Yesterday I came across the Wikipedia list of revision-control apps, and saw that there are
a lot more choices for SCM than I had thought. So I sat down and made a
list of some things that I think are important to have in an SCM tool,
and will evaluate other tools to see if
there are any that I'd be happy with instead.