tags:

views:

428

answers:

2

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:

  1. Every developer has a local, private repo for their own personal work.
  2. Every developer has a public repo to which they push changes that are to be consumed by others, or integrated into the main project.
  3. An integrator pulls desired changes from the developers' public repos into his own personal integration repo.
  4. When ready, the integrator pushes the collected ("integrated") changes from his integrator repo into the project's main public repo.
  5. The developers pull down changes from the project's main public repo. And the cycle repeats.

So you basically need two things:

  1. 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.)
  2. 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
So I have both needs, but I need specific direction for getting this going using gitosis.
Akeem
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