Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Git environment for CodeIgniter project

I'm starting of with a new CI project based on the CI 2.0 Reactor repository. Because the CI2 code is still changing, I would like to keep that code fresh, the question is how (using Git).

For the non-CI folks, the basic structure of a CI2 project looks like this:

system/  
application/  
index.php
...

The system directory contains the framework, index.php does the bootstrapping and application contains my project. Ideally, I would like to keep both index.php and the system folder up-to-date using Git. Another thing I would like to adhere to is name of the application folder. (You can change the path of your application folder in index.php.) Keeping the name the same makes it possible to just drop in the folder, and off you go.

I've tried to realize this by using git submodules (see below), but submodules don't let you specify a directory from the target repository.

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

Any clue how I can achieve this?

like image 918
joelcox Avatar asked Jan 20 '11 19:01

joelcox


2 Answers

I stumbled in the same problem too.

I really want use git to bring the codeigniter core with the application without copy and paste the updates every time! There are a lot of advantages to use git submodules (and who use git already know that).

So I did it in this way:

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 .

Now edit public/index.php and change:

$system_path = 'system';

to:

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

and:

$application_folder = 'application';

to:

$application_folder = '../application';

Now point your webserver to your "public" folder and it's done! Now you have a project with codeigniter as a submodule :)

like image 102
Sandro Cavazzoni Avatar answered Oct 19 '22 12:10

Sandro Cavazzoni


Sadly you cannot reference a specific folder in a sub-module, only the root of the sub-module itself. That would mean you need to put your application in a sub-folder, which would be crap.

You can however just set up two remotes on your Git application.

git init
git remote add origin git://whatever
git remote add reactor [email protected]:philsturgeon/codeigniter-reactor.git

Then update with reactor changes

git pull reactor master
git push origin master

Remember that this clone is really intended to help people get their CodeIgniter Reactor changes int without needing to learn Mercurial, but you are welcome to use it as long as it exists.

like image 5
Phil Sturgeon Avatar answered Oct 19 '22 11:10

Phil Sturgeon