Как мне настроить проекты и решения Visual Studio в хранилище Mercurial?
В моей компании у нас есть несколько различных веб-приложений, в которых есть общие библиотеки. Настройка Visual Studio выглядит следующим образом.
Website 1 Solution
Website 1
Shared Library 1 Project
Shared Library 2 Project
Website 2 Solution
Website 2
Shared Library 1 Project
Shared Library 2 Project
Windows Service Solution
Windows Service Project
Shared Library 1 Project
Shared Library 2 Project
Shared Library Solution
Shared Library 1 Project
Shared Library 2 Project
All Projects Solution
Website 1
Website 2
Windows Service Project
Shared Library 1 Project
Shared Library 2 Project
Мы хотим начать использовать Mercurial для управления версиями, но я все еще не уверен, что это лучший способ сделать это.
Из того, что я прочитал, вы должны использовать отдельный репозиторий для каждого проекта. Там нет проблем, но где идут файлы решений Visual Studio (.sln)? Должен ли быть отдельный репозиторий с только .sln файлом?
В идеале проекты, использующие разделяемые библиотеки, должны использовать одну и ту же версию, а решение "All Projects Solution" должно строиться без ошибок, но иногда нам нужно разветвлять разделяемые библиотеки. Каков наилучший способ сделать это и как будут устанавливаться репозитории?
Как получить рабочую копию определенного ветки/тега решения для сайта 1, когда каждый проект находится в отдельном репозитории. Должен ли я каждый раз тянуть каждый отдельно или писать script, чтобы сделать все сразу? Может ли черепаха hg сделать это для меня?
Любые другие советы, чтобы облегчить этот процесс?
Ответы
Ответ 1
В идеале я бы использовал mercurial subrepositories для этого. Затем вы можете разместить свое "все" решение в основных репозиториях. Остальные ваши проекты затем могут быть подотчетны этому. Mercurial также поддерживает рекурсивные субрепозитории.
К сожалению, TortoiseHg перечисляет рудиментарную поддержку субрепозиториев, поэтому вам, возможно, придется сделать несколько вариантов того, как вы предпочитаете задавать вопросы.
Если subrepositores являются слишком большой нагрузкой, вы должны быть в порядке с помещением всего в один репозиторий. Что касается Mercurial, то неважно, разделили ли вы вещи в репозиториях или нет. Единственный предел - ваша ситуация. Если проекты окажутся настолько большими или слишком часты, что управление репозиторией слишком сильное, например, боль.
Или разделите все на отдельные репозитории и script на него. Это полностью зависит от вас.