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