Mercurial репозиторий и MSVS - два проекта и общие файлы

В настоящее время я разрабатываю приложение в MS VS2010, основанное на архитектуре клиент-сервер, с одним проектом для каждой части в VS. До недавнего времени у них обоих были свои собственные репозитории в Hg, но я решил переместить их вместе, так как есть довольно много файлов, которыми теперь делятся.

Я использовал жесткие ссылки, чтобы убедиться, что изменения в одном файле распространяются на тот же файл в другой папке / проекте. Однако, если вы клонируете репозиторий или извлекаете его из онлайн-репозитория, жесткие ссылки нарушаются.

Я прочитал столько, сколько мог, как по мягким, так и по жестким ссылкам с Hg, и на данный момент ни одно из них не является хорошим, портативным решением. Какой метод обмена файлами между двумя проектами вы бы порекомендовали, имея в виду, что в идеале мне бы хотелось иметь чистую структуру, которая также отражается в VS?

С наилучшими пожеланиями, Макс.

1 ответ

Вы можете использовать функцию вспомогательного репозитория Mercurial, чтобы разместить ваши общие файлы во внешнем репозитории и поделиться ими в нужных вам местах. Также имеется расширение гостевого репозитория, которое является относительно новым и более легким по сравнению с суб-репо.

Однако вместо решения этой проблемы в управлении версиями я бы перестроил ваш проект Visual Studio так, чтобы ваш общий код компилировался в сборку, которая используется и зависит от ваших клиентских и серверных сборок. Поделиться кодом на уровне сборки, а не на уровне кода.

Если вам действительно нужно сохранить существующую структуру, я бы использовал соединения NTFS (аналогичные программным ссылкам в стиле UNIX) для соединения в общем коде, куда он должен идти. Затем вы добавите эти переходы в список игнорирования вашего репозитория (в .hgignore). Создайте сценарий PowerShell, который вы и другие разработчики можете запустить, который инициализирует ваш репозиторий с правильными соединениями.

Другие вопросы по тегам