Welcome Guest, Not a member yet? Register   Sign In
How to efficiently deploy a code revision system for CI projects (GIT, SVN, etc...)?
#1

[eluser]dejan[/eluser]
Hello all,

I use Codeigniter for a lot of projects. My projects all contain:

- latest codeigniter tarball contents
- my own codeigniter libraries, core files, etc. which I use across all projects and which are constantly developed and built upon
- controllers, models, config files, etc. for each specific project.

What is the best way to handle code revision / versioning in such situation? How can I set up either GIT or SVN or whatever else so I can accomplish this:

- have repository A which contains vanilla codeigniter and preferably can be updated from upstream
- have repository B which stores my own extensions which I use across all projects and which includes repository A in checkouts
- have repository C which includes both A and B and can be used for project specific files?

Essentially, if I have several trees for several projects, I want to be able to update them and commit back changes to repository "B", while keeping all project-specific files separate.

Any best practice experiences with this?
#2

[eluser]CroNiX[/eluser]
http://nvie.com/posts/a-successful-git-branching-model/
#3

[eluser]toopay[/eluser]
2 strategies that alleviate those challange, in Git :
1. Use your "componential" project as submodule.
2. Subtree merge strategy.
#4

[eluser]dejan[/eluser]
Thank you both. I'll give those methods a try and see how they pan out Smile
#5

[eluser]tomcode[/eluser]
I am working now since almost a year on several projects (new ones and existing ones converted) with a git submodule based project structure:

1 master repo containing a base folder structure
several subrepos:
the CodeIgniter repo
one or more application repos
one or more package repos (also for the language packs)
one or more repos for the front end

The whole is tailored so I can easily deploy 1:1, with no or the least amount of installation dependant code (maybe a db config which I do not want to hold in the repo).

Besides getting used to this very structured workflow and understanding enough git, the hardest part was to get my libraries standardized and update the existing projects to the standardized version.

Since I do not use branches on my libs every API change means quite some work, luckily my libs are now quite stable.

I have not yet figured out versioning, I am using the github flow for branching.

Working with submodules is tricky.

I am still experimenting, but here the link to my master repo




Theme © iAndrew 2016 - Forum software by © MyBB