Какие существуют способы работы с проектом в среде тестирования, где фиксация Git должна отличаться от кода PHP, используемого для тестирования и разработки?

0

В моем проекте для развертываемой версии должна быть копия каждой из внешних библиотек, другой файл конфигурации и установка и настройка файлов, в целях безопасности основной проект настроен на отказ от запуска, если они присутствуют. Таким образом, восходящие копии других проектов должны быть направлены на репо. Как я могу работать с кодом, запущенным на localhost, где макет файла, а иногда и содержимое файла из dev и тестирования отличаются от того, что мне нужно сделать?

Задний план

Я работаю над проектом, размещенным на github, и моя основная IDE - это netbeans, у которого есть несовершенная поддержка git (достаточно хорошая для> 99% моих потребностей). Проект находится в PHP и использует несколько других проектов в качестве библиотек.

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

Половина ответа

Мой инстинкт должен предполагать, что перед тем, как перейти к реформе github, вам нужно будет создать "этап сборки", но как я могу это сделать?

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

Я видел, что другие борются с некоторыми схожими проблемами без каких-либо выводов (во время запроса) (Как вытаскивать из github и не делиться конфиденциальной информацией? Smudge & clean?), Поэтому я ищу все, что могло бы помочь мне подойти с решением

  • 2
    Используйте Composer для обработки зависимостей, ваш composer.json можно сохранить в git-репо, но используйте gitignore, чтобы предотвратить включение папки vendors в репозиторий.
Теги:
netbeans
github

1 ответ

3
Лучший ответ

моя основная IDE - netbeans, которая имеет несовершенную поддержку git

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

Мой инстинкт должен предполагать, что для того, чтобы перейти к рефинансированию github, необходимо будет создать "этап сборки"

... если у нас не было ветки для сборки и ветки для рабочих копий

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

При развертывании существует множество вариантов. Первый - это Composer, который указывает Марк: при развертывании вы выдаете команду install или update, которая рекурсивно выбирает зависимости, которые удовлетворяют вашим требованиям к библиотеке. Вы можете использовать Bower, чтобы сделать то же самое для ваших зависимостей JavaScript.

Некоторые стратегии развертывания предпочитают строить локально, а затем scp/rsync на удаленный сервер. Композитор и Bower по-прежнему, вероятно, хорошая идея, но вы пишете сценарий сборки (например, с помощью Ant или Phing), чтобы создать копию сборки в локальной временной папке, а затем отправить ее на сервер. Здесь также распространять его на новую папку выпуска на сервере, а затем менять конфигурационный файл symlink или Apache, когда он готов к работе.

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

Предполагая, что это веб-проект, попробовали ли вы добавить данные конфиденциальной среды в свой конфигурационный файл Apache? Это может быть тривиально прочитано в PHP, и, конечно, PHP не заботится о том, чтобы эта информация различалась в зависимости от того, разрабатываете ли вы, тестируете, демонтируете филиал или работаете вживую.


Дальнейшее чтение: отличная книга для развертывания PHP, бесплатно, которая предлагает Phing и Capistrano.

  • 0
    Если кому-то нужна информация о конфигурации для каждой среды, пожалуйста, спросите - я могу добавить пару параграфов об этом тоже.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню