Среда Git для проекта CodeIgniter

Я начинаю с нового проекта CI на основе репозитория CI 2.0 Reactor. Поскольку код CI2 все еще меняется, я хотел бы сохранить этот код свежим, вопрос в том, как (используя Git).

Для тех, кто не занимается CI, базовая структура проекта CI2 выглядит так:

system/  
application/  
index.php
...

Системный каталог содержит фреймворк, index.php выполняет загрузку, а приложение содержит мой проект. В идеале я хотел бы обновлять как index.php, так и системную папку с помощью Git. Еще одна вещь, которой я хотел бы придерживаться, это имя папки приложения. (Вы можете изменить путь к папке вашего приложения в index.php.) Сохранение того же имени позволяет просто зайти в папку, и все готово.

Я пытался реализовать это с помощью подмодулей git (см. ниже), но подмодули не не позволяет указать каталог из целевого репозитория.

git submodule add https://github.com/philsturgeon/codeigniter-reactor.git/code-igniter/system system

Любая подсказка, как я могу этого добиться?


person joelcox    schedule 20.01.2011    source источник


Ответы (5)


К сожалению, вы не можете ссылаться на конкретную папку в подмодуле, только на корень самого подмодуля. Это означало бы, что вам нужно поместить свое приложение в подпапку, что было бы дерьмом.

Однако вы можете просто настроить два пульта в своем приложении Git.

git init
git удаленное добавление источника git://что угодно
git удаленное добавление реактора [email protected]:philsturgeon/codeigniter-reactor.git

Затем обновите с изменениями реактора

мастер-реактор git pull
мастер-источник git push

Помните, что этот клон действительно предназначен для того, чтобы помочь людям получать изменения CodeIgniter Reactor без необходимости изучения Mercurial, но вы можете использовать его, пока он существует.

person Phil Sturgeon    schedule 21.01.2011
comment
Спасибо, Фил, так и должно быть. - person joelcox; 21.01.2011

Я тоже столкнулся с той же проблемой.

Я действительно хочу использовать git, чтобы принести ядро ​​codeigniter с приложением без копирования и вставки обновлений каждый раз! Есть много преимуществ использования подмодулей git (и те, кто использует git, уже знают об этом).

Поэтому я сделал это следующим образом:

mkdir yourapp
cd yourapp
git init
git sudmodule add git://github.com/EllisLab/CodeIgniter.git codeigniter
mkdir public
cp codeigniter/index.php public/
cp -rp codeigniter/application .

Теперь отредактируйте public/index.php и измените:

$system_path = 'system';

to:

$system_path = '../codeigniter/system';

а также:

$application_folder = 'application';

to:

$application_folder = '../application';

Теперь укажите ваш веб-сервер на вашу «общедоступную» папку, и все готово! Теперь у вас есть проект с codeigniter в качестве подмодуля :)

person Sandro Cavazzoni    schedule 18.05.2013

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

person Abdelrahman Ahmed    schedule 21.01.2011
comment
Спасибо, но я хочу сделать это автоматически. Я думал, что многие люди столкнутся с подобными проблемами при управлении своими зависимостями. - person joelcox; 21.01.2011

Не настоящий ответ на ваш вопрос, но в целом не стоит доверять изменяющимся сторонним проектам: обновление может сломать ваше приложение без предупреждения. Я бы посоветовал время от времени обновлять его вручную и тестировать ваше приложение после обновления. Таким образом, внезапные сбои в работе вашего приложения будут менее вероятными.

person Dirk    schedule 20.01.2011
comment
Спасибо за внимание. Проект, над которым я работаю, предназначен для целей тестирования и не будет запускаться в производственной среде и поддерживается модульными тестами. Он должен сломаться (и сообщить, почему он сломается ;-)). - person joelcox; 20.01.2011
comment
Независимо от того, обновляете ли вы свои изменения вручную или обновляете их с помощью команды, в какой-то момент вы принимаете сознательное решение: «Да, я хочу эти изменения». Большинство людей просто ждут стабильных выпусков, но слишком много внимания уделяется стабильной версии. Пока вы наблюдаете за вносимыми изменениями, вы знаете, когда будете готовы к обновлению. - person Phil Sturgeon; 21.01.2011

Я никогда не сталкивался с проектом или фреймворком, где вы сохраняете ядро ​​фреймворка в своем репозитории github ИЛИ загружаете его напрямую через другой репозиторий. Вы должны полагаться на composer для таких вещей.

person Luke James    schedule 11.06.2017