Partial Git deployment strategy?
- by MatW
I need to setup a Kohana dev environment that allows me to make full use of shared module / system classes across separate applications. Each application typically belonging to a different client. I use Git for source control, but am struggling to come up with a clean deployment method that will allow me to pull only those parts of the dev environment specific to a client / app down into that client's production environment (assuming that the client's production environment will have Git installed).
Dev enviroment:
- kohana
- applications
- clientapp1
- clientapp2
- modules
- public_html
- clientapp1
- clientapp2
- system
- 3.0.1
- 3.0.5
Client 1's production environment:
- /
- applications
- clientapp1
- modules
- public_html
- client_app1
- system
- 3.0.5
Naturally, I want to have total control over each client "sub repo" as if it were an independent repo (in terms of gitignore, etc). I have seen topics that cover Git's sparse checkout feature, but it seems like it may cause a few problems down the line from a maintenance point of view, and I don't like the idea of the entire repo's metadata existing in client's production environment repo.
As you can probably tell, I'm not exactly a Git poweruser, so any suggestions / wisdom are very welcome!