Системы, о которых вы упомянули, имеют разные функции, поэтому интерфейс будет очень запутанным, если он будет поддерживать каждую из них.
Например, git и hg не имеют понятия
проверить (как в готовом
изменить) файл перед его редактированием -
это хорошо, но SVN и
cvs ожидает от вас проверки файлов
прежде чем изменять их.
Базовая реализация также отличается, поэтому снова инструмент должен иметь совершенно разные модули для каждой системы - я надеюсь, что проще иметь отдельные инструменты для каждой.
Тем не менее, существуют инструменты, которые поддерживают более одной системы, такие как cvs и svn, потому что у них обоих одинаковые рабочие процессы. Я еще не видел инструментов, которые бы работали на cvs и говорили Mercurial или SVN и GIT.
Лично мне нравится использовать конкретный графический интерфейс для конкретной системы, потому что абстракция обычно скрывает некоторые функции, наиболее распространенный пользовательский интерфейс, который я предпочитаю использовать, это командная строка в любом случае ...