VS Solution и макет репозитория Mercurial для проекта c # с плагинами и внешними библиотеками - PullRequest
1 голос
/ 21 мая 2010

Я разрабатываю проект в .NET (точнее, используя C #).
Использование Visual Studio в качестве IDE.
Использование Mercurial для контроля версий.

Я буду использовать сторонние библиотеки:

ThirdParty.Foo.dll
ThirdParty.Bar.dll
ThirdParty.Baz.dll

И некоторые внутренние библиотеки:

Company.A
Company.B
Company.C
Company.D (Ссылки на сторонние библиотеки)
Company.E (Справочная Компания.A)

Сам проект будет иметь следующие компоненты:

Project.Core
Project.DataModel (ссылки на собственные / сторонние библиотеки)
Project.GUI (ссылается на Core, DataModel и собственные / сторонние библиотеки)
Project.PluginOne (ссылается на Core, DataModel и собственные / сторонние библиотеки)
Project.PluginTwo (ссылается на Core, DataModel и собственные / сторонние библиотеки)
* может быть произвольным количеством плагинов *

Я довольно новичок в Mercurial, поэтому я не знаю, как лучше структурировать свои репозитории для такого проекта, с большим количеством взаимосвязанных компонентов.

Внутренние библиотеки довольно различны, поэтому я бы сказал, что у каждой из них должен быть свой собственный репозиторий. Однако некоторые из них используют функциональность, предоставленную другими. Как управлять этими зависимостями?

Плагины проекта должны отличаться друг от друга, поэтому я думаю, что у каждого будет свой репозиторий. Как следует управлять зависимостями от внутренних / сторонних библиотек и остальной части проекта (Project.DataModel и Project.Core) с учетом схемы решения и схемы хранилища?

Итак, для проекта, подобного этому, каков наилучший способ структурирования?
(а) мои визуальные студийные решения
(б) мой исходный репозиторий / репозитории

1 Ответ

1 голос
/ 21 мая 2010

Вам стоит взглянуть на Mercurial subrepos . В более старых версиях Mercurial это было сделано расширением forest . Это позволяет вам вкладывать репозитории, просто помещая другие репозитории в (глубокий) подкаталог, но вытягивая / клонируя / обновляя их все вместе.

...