Различные базы данных для конкретных веток проекта git - PullRequest
1 голос
/ 02 сентября 2011

У нас есть несколько веток одного проекта, которые совместно используют около половины кода и разрабатывают их одновременно с помощью git checkout.Теперь проблема возникла, когда модель стала настолько отличаться, что больше нельзя было поддерживать одну и ту же базу данных для их разработки.Я мог бы указать имя базы данных в config / database.yml специально для каждой ветви, но оно не отслеживается.Другим решением было бы отследить какой-нибудь внешний файл с именем ветви, например, config / branch.txt, и сослаться на него в config / database.yml:

all:
  doctrine:
    class: sfDoctrineDatabase
    param:
      dsn: 'pgsql:host=localhost;dbname=<?php echo file_get_contents (realpath(__DIR__ . '/branch.txt')) ?>'

В любом случае, как вы справляетесь с этим?

1 Ответ

3 голосов
/ 02 сентября 2011

Что обычно делается для управления одним и тем же файлом с различным содержимым в ветке (без необходимости решать проблему слияния):

  • используйте драйвер слияния (например, keepmine ), чтобы всегда сохранять локальную версию файла во время слияния

  • или используйте драйвер фильтра с:

    • a config/databases.yml.tpl версия
    • способ вернуть правильное значение в зависимости от среды (например, название текущей ветви)
    • сценарий 'smudge' (версионный), который при оформлении заказа объединит шаблон и правильные значения для получения полного config/databases.yml

smudge/clean

Сценарий и файл шаблона всегда одинаковы для разных веток (без слияния).
Полученный config/databases.yml остается приватным, а не версионным.

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