В моем проекте для развертываемой версии должна быть копия каждой из внешних библиотек, другой файл конфигурации и установка и настройка файлов, в целях безопасности основной проект настроен на отказ от запуска, если они присутствуют. Таким образом, восходящие копии других проектов должны быть направлены на репо. Как я могу работать с кодом, запущенным на localhost, где макет файла, а иногда и содержимое файла из dev и тестирования отличаются от того, что мне нужно сделать?
Я работаю над проектом, размещенным на github, и моя основная IDE - это netbeans, у которого есть несовершенная поддержка git (достаточно хорошая для> 99% моих потребностей). Проект находится в PHP и использует несколько других проектов в качестве библиотек.
Поскольку Netbeans не имеет лучшей поддержки для субрепозиций, я решил сохранить каждый дополнительный проект в отдельном проекте. Это прекрасно, так как центральный проект просматривает конфигурационные данные для того, где можно найти эти внешние библиотеки.
Мой инстинкт должен предполагать, что перед тем, как перейти к реформе github, вам нужно будет создать "этап сборки", но как я могу это сделать?
Я мог бы написать какую-то доморощенную вещь, но тогда, когда я вытаскиваю вклады других людей, мне нужно будет отменить процесс, если у нас не будет ветки для сборщиков и ветка для рабочих копий, которая кажется излишне сложной и может оставить конфигурационные данные dev (s) на публичном дисплее (не говоря уже о том, что обновления являются беспорядком).
Я видел, что другие борются с некоторыми схожими проблемами без каких-либо выводов (во время запроса) (Как вытаскивать из github и не делиться конфиденциальной информацией? Smudge & clean?), Поэтому я ищу все, что могло бы помочь мне подойти с решением
моя основная IDE - netbeans, которая имеет несовершенную поддержку git
Большинство разработчиков просто используют командную строку. Иногда я переключаюсь на средство разрешения конфликтов NetBeans, что очень хорошо, но для обычных вещей консоль обычно быстрее.
Мой инстинкт должен предполагать, что для того, чтобы перейти к рефинансированию github, необходимо будет создать "этап сборки"
... если у нас не было ветки для сборки и ветки для рабочих копий
Нет, существует только один репозиторий. Лучше подумать о своем репо как о своей истории кода, а не о состоянии вашего развертывания. Филиалы должны быть только для функций или больших изменений, которые сливаются в вашу главную/ведущую.
При развертывании существует множество вариантов. Первый - это Composer, который указывает Марк: при развертывании вы выдаете команду install
или update
, которая рекурсивно выбирает зависимости, которые удовлетворяют вашим требованиям к библиотеке. Вы можете использовать Bower, чтобы сделать то же самое для ваших зависимостей JavaScript.
Некоторые стратегии развертывания предпочитают строить локально, а затем scp
/rsync
на удаленный сервер. Композитор и Bower по-прежнему, вероятно, хорошая идея, но вы пишете сценарий сборки (например, с помощью Ant или Phing), чтобы создать копию сборки в локальной временной папке, а затем отправить ее на сервер. Здесь также распространять его на новую папку выпуска на сервере, а затем менять конфигурационный файл symlink или Apache, когда он готов к работе.
версия для развертывания должна иметь копию каждой из внешних библиотек, другой файл конфигурации и устанавливать и устанавливать файлы для обеспечения безопасности
Предполагая, что это веб-проект, попробовали ли вы добавить данные конфиденциальной среды в свой конфигурационный файл Apache? Это может быть тривиально прочитано в PHP, и, конечно, PHP не заботится о том, чтобы эта информация различалась в зависимости от того, разрабатываете ли вы, тестируете, демонтируете филиал или работаете вживую.
Дальнейшее чтение: отличная книга для развертывания PHP, бесплатно, которая предлагает Phing и Capistrano.