Я - веб-разработчик, работающий самостоятельно, используя django, и я пытаюсь разгадать, как лучше всего развертывать сайты, используя меркурий. Я хотел бы иметь возможность хранить один репозиторий, который я могу использовать для производства и разработки. Между производством и развитием всегда будут какие-то различия (например, они могут использовать разные базы данных, при разработке всегда будет включен отладка), но по большому счету они будут синхронизироваться. Я также хотел бы иметь возможность вносить изменения непосредственно на производственный сервер (убирать html или css, простые исправления и т.д.).
Рабочий процесс, который я намерен использовать для этого, выглядит следующим образом:
- Создайте 2 ветки, prod и dev (все настройки изначально настроены на производственные настройки)
- Измените settings.py и еще несколько вещей в ветке dev. Итак, теперь у меня есть 2 головы, и теперь у репозитория всегда будет 2 головки.
- (На компьютере разработчика) Внесите изменения в dev, затем используйте "пересадку hg", чтобы скопировать соответствующие изменения в продукцию.
- нажмите на мастер-репозиторий
- (На рабочем сервере) Потяните из мастер-репо, обновите его до прогона
Примечание. Вы также можете внести изменения прямо в prod, пока вы пересаживаете изменения в dev.
Этот рабочий процесс имеет тот недостаток, что всякий раз, когда вы вносите изменения, вы должны не только фиксировать его на какую-либо ветку, в которую вы вносили изменения, но и пересаживать ее в другую ветку. Есть ли более разумный способ делать то, что я хочу здесь, возможно, используя патчи? Или, если это не так, есть способ автоматизировать процесс фиксации, чтобы автоматически пересадить набор изменений в другую ветвь, и будет ли это хорошей идеей?