SSCM is a tool fol simultanuously managing multiple version control systems. There are a couple good reasons why you'd want such a beast.


Why?

Either you really want to use a Source Control Manager (SCM) that isn't currently supported or you want to encourage people to use your favorite SCM that might not otherwise.

How?

It's easier than you think. All you need to know is the following:

While SSCM is written in Ruby I think it's safe to say that even without any Ruby knowledge any semi-competent programmer should be able to figure out what needs to be done by looking at the source, these instructions, and the api docs.

Step by step:
  1. copy sscm/scm.rb to sscm/<my_app_name>.rb
  2. open sscm/<my_app_name>.rb and change the name of the class to match the name of your app.
  3. Fill in the methods. The comments should give you a good idea of what needs to be there, and if you have any doubt about the best way to implement it just check out the classes for the currently supported SCMs.
  4. Copy a unit test from the existing SCM most similar to your new one and call it sscm/<my_app_name>_test.rb
  5. Update the tests to call out to your system being very careful to ensure that your tests won't negatively effect the real DSCM directories at the top level of the project.
  6. Open sscm/scm_group.rb and update the choose_default_scm method to support your SCM.
  7. Open sscmprep.rb and update the load_scms method, telling it how to detect your scm and including a new instance of your SCM based class to the list of SCMs it returns.
  8. Update the test_load_scms method in sscmprep_test.rb to test that it detects your system correctly.
  9. Update global_tests.rb to include your sscm/<my_app_name>_test.rb test.
  10. Test it.
    • Test it manually.
    • Use it for a few days to weed out the edge cases and make sure nothing blows up in your SCM or any of the other SCMs you're testing it alongside.
  11. Update the README to include notes about support for your SCM and your name in the "Who wrote it?" section.
  12. Send a patch to masukomi    @    masukomi.org using one of the currently supported systems (let me know which one).
  13. Smile and know that you've helped make other people's lives easier.
Tips / Guidelines:
The default answer to any question SSCM asks should always be the one with the minimal impact on your system and must never be destructive. If a user were to run it and just hit enter for every question they should never loose any data or find themselves in an unrecoverable state.