I am trying to setup a git server at work that uses the integration manager workflow detailed here (which is what github uses). I've followed getting started tutorials and already setup a server with gitosis installed and everything and I'm looking for direction with regaards to implementation of this specific workflow.
+1
A:
The basic gist of that workflow is this:
- Every developer has a local, private repo for their own personal work.
- Every developer has a public repo to which they push changes that are to be consumed by others, or integrated into the main project.
- An integrator pulls desired changes from the developers' public repos into his own personal integration repo.
- When ready, the integrator pushes the collected ("integrated") changes from his integrator repo into the project's main public repo.
- The developers pull down changes from the project's main public repo. And the cycle repeats.
So you basically need two things:
- A server on which to store a main, public, canonical repo of the project. (It doesn't have to be "public" in the sense that everyone can see it -- just public in the sense that the whole dev team has access.)
- A place to store developers' public repos, so the integrator can easily pull from them.
These two things are easily possible as long as you have a server machine running a Git server (either via the Git daemon, SSH, http/https, or any of the other supported Git protocols).
mipadi
2009-09-03 13:02:19
So I have both needs, but I need specific direction for getting this going using gitosis.
Akeem
2009-09-03 13:31:43
A:
So to get it to an acceptable architecture of integration manager I ended up installing gitosis and setting up developers as users in gitosis. Then repositories were cloned in gitosis e.g. devA/projectA.git devB/projectA.git. I had permissions problems cloning on the server (be sure to NOT have the hooks folder executable), and what I did felt a bit hacky but it works.
Akeem
2009-09-05 00:02:44