Существует три недостатка:
Таким образом вышеупомянутые недостатки являются большим количеством проблемы, если Ваш EXE или DLLs содержат много ресурсов, но иначе, они не могут быть большой частью фактора на практике, учитывая относительный размер исполняемых файлов и доступной памяти, если Вы не говорите о DLLs, используемом партиями исполняемых файлов (как система DLLs).
Для рассеивания некоторой неправильной информации в других ответах:
В проекте Gemcutter у нас просто есть производственная ветка. Любые изменения, которые мы хотим видеть на рабочем сайте, объединяются в эту ветвь, а затем развертываются с помощью:
git push heroku production:master
Промежуточная ветвь
служит той же цели для промежуточного сайта (также на Heroku)
Есть множество способов пойти об этом, и это действительно зависит от ваших предпочтений.
I ' Я дам вам одну возможную стратегию, которую я не знаю: учитывая, что у вас уже есть автоматическая промежуточная установка, использующая master, я бы предложил создать ветвь 'production'. Если вы хотите продвинуть исправление / функцию в рабочую среду, вы просто объедините тематическую ветку в свою «производственную» ветку.
git checkout production
git pull . my-topic-branch
(resolve any conflicts)
Когда вы будете готовы отправить этот код на рабочий сервер, вам следует пометить ветку, используя уникальное имя (возможно, с меткой времени). Затем вы просто отправляете производственную ветку в Heroku.
git checkout production
git tag release-200910201249
Я бы предложил создать сценарий или псевдоним git для автоматизации тегирования для временных меток, поскольку важно использовать согласованную схему именования. Я использую что-то вроде этого:
git config alias.dtag '!git tag release-`date "+%Y%m%d%H%M"`'
Это позволяет мне просто набрать git dtag
, когда я хочу пометить выпуск меткой времени.
Вы можете просматривать свои теги с помощью git tag
и просматривать их с помощью git show release-1234
. Для получения дополнительной информации о тегах запустите git help tag
. Вы также можете найти это руководство Github по тегам. Я также рекомендовал бы ознакомиться с рабочими процессами других людей (вот отличное описание ) и выбрать то, что работает для вас.