Mercurial репозиторий и MSVS - два проекта и общие файлы
В настоящее время я разрабатываю приложение в MS VS2010, основанное на архитектуре клиент-сервер, с одним проектом для каждой части в VS. До недавнего времени у них обоих были свои собственные репозитории в Hg, но я решил переместить их вместе, так как есть довольно много файлов, которыми теперь делятся.
Я использовал жесткие ссылки, чтобы убедиться, что изменения в одном файле распространяются на тот же файл в другой папке / проекте. Однако, если вы клонируете репозиторий или извлекаете его из онлайн-репозитория, жесткие ссылки нарушаются.
Я прочитал столько, сколько мог, как по мягким, так и по жестким ссылкам с Hg, и на данный момент ни одно из них не является хорошим, портативным решением. Какой метод обмена файлами между двумя проектами вы бы порекомендовали, имея в виду, что в идеале мне бы хотелось иметь чистую структуру, которая также отражается в VS?
С наилучшими пожеланиями, Макс.
1 ответ
Вы можете использовать функцию вспомогательного репозитория Mercurial, чтобы разместить ваши общие файлы во внешнем репозитории и поделиться ими в нужных вам местах. Также имеется расширение гостевого репозитория, которое является относительно новым и более легким по сравнению с суб-репо.
Однако вместо решения этой проблемы в управлении версиями я бы перестроил ваш проект Visual Studio так, чтобы ваш общий код компилировался в сборку, которая используется и зависит от ваших клиентских и серверных сборок. Поделиться кодом на уровне сборки, а не на уровне кода.
Если вам действительно нужно сохранить существующую структуру, я бы использовал соединения NTFS (аналогичные программным ссылкам в стиле UNIX) для соединения в общем коде, куда он должен идти. Затем вы добавите эти переходы в список игнорирования вашего репозитория (в .hgignore
). Создайте сценарий PowerShell, который вы и другие разработчики можете запустить, который инициализирует ваш репозиторий с правильными соединениями.