Python, SVN, развертывание приложений с общим кодом - PullRequest
0 голосов
/ 05 августа 2010

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

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

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

На одном компьютере: svn checkout client1.По другому: svn checkout server1.По другому: svn checkout client2.Затем, если я изменю некоторый код client2, который является общим для client2 и client1, оба будут обновлены, когда я сделаю svn update.Кроме того, в идеале мне не нужно было бы выбирать нужные мне файлы вручную, поскольку это может раздражать, но я могу с этим справиться.

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

1 Ответ

2 голосов
/ 05 августа 2010

Когда его можно разбить на модули, перейдите к репо / ветке со всем «базовым» кодом, а в реальном проекте включите их как svn:externals (тот же репозиторий или другой не имеет значения).Таким образом, вы можете независимо обновлять / работать с модулями, прикреплять определенные проекты к определенным версиям этого модуля или сохранять их в HEAD.

Для нового проекта потребуется либо разветвление базового проекта с большинством уже настроенных внешних элементов, либо ручное добавление необходимых внешних элементов.Простой сценарий оболочки, устанавливающий точные внешние параметры, которые вам нужны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...