SCM - это общий термин, который на самом деле ничего не значит. Я слышал, что это означает «Управление конфигурацией программного обеспечения», «Управление изменениями программного обеспечения» и «Управление исходным кодом», и, возможно, есть и другие. Насколько я могу судить, это в основном маркетинг, говорите.
Если вы видите, что это означает что-то вроде последней фразы, то SVN (сокращение от Subversion), git и Mercurial - все это конкретные типы систем SCM. Git и Mercurial примерно эквивалентны. Есть небольшие различия, но личные предпочтения - это действительно главное. Обе эти системы называются распределенными системами контроля версий, что означает, что нельзя полагаться ни на одно центральное местоположение. Каждый человек, использующий их, может работать независимо, и они более или менее синхронизируют все также независимо.
Subversion централизован. Он направлен на решение тех же самых проблем, но делает это, заставляя все действия проходить через одно местоположение, которое все используют. Это облегчает управление многими вещами, но за счет довольно большой гибкости. Опять же, личные предпочтения диктуют то, что вы бы предпочли.