2011-01-20 3 views
6

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

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

system/ 
application/ 
index.php 
... 

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

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

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

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

ответ

5

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

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

мерзавец INIT
мерзавец удаленного добавить происхождение мерзавца: // все, что
мерзавец удаленного добавления реактора [email protected]: philsturgeon/CodeIgniter-reactor.git

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

мерзавец мастер тянуть реактор
мерзавец мастер толчок происхождения

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

+0

Спасибо, Фил, это должно сделать это. – joelcox

0

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

+0

Спасибо за головы. Проект, над которым я работаю, предназначен для тестирования и не будет запускаться в производственной среде и поддерживается модульными тестами. Он должен сломаться (и сообщить, почему он ломается ;-)). – joelcox

+0

Независимо от того, обновляете ли вы свои изменения вручную или обновляете их, запустив команду, в какой-то момент вы принимаете осознанное решение: «Да, я хочу эти изменения». Большинство людей просто ждут стабильных выпусков, но слишком много внимания уделяется «стабильным». Пока вы наблюдаете за внесенными изменениями, вы знаете, когда будете готовы к обновлению. –

1

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

+0

Спасибо, но я хочу сделать это автоматически. Я думал, что многие люди столкнутся с такими проблемами, как управление их зависимостями. – joelcox

5

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

Я действительно хочу использовать 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 . 

Теперь редактировать публичный/индекс.PHP и изменения:

$system_path = 'system'; 

к:

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

и:

$application_folder = 'application'; 

к:

$application_folder = '../application'; 

Теперь направьте ваш веб-сервер к вашей "общественности" папку, и это сделанный! Теперь у вас есть проект с codeigniter в качестве подмодуля :)

0

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

Смежные вопросы