I plan to use git/gitolite to provide managed read/write access for approximately 30 developers and project managers to a shared SAN with the following file structure:
base/ clients/ clientA/ dirA/ xxx-config.xml-app1 xxx-config.xml-app2 app1/ conf/ deploy/ app1.tgz app2/ app3/ ... clientB ...
I can use gitolite to to configure R / RW access for different groups of devs. The files the developers need to read / modify are the xxx-config.xml-appX and the files in the conf/ and deploy/ folders. Further, whenever anything in conf/ or deploy/ are modified (via "git push"?), I need a git hook script to recreate the appX.tgz file containing all the new contents of the appX folder.
I'm assuming each developer could do a "git clone" to their local computer and do periodic "git fetch" to refresh or "git push" whenever they make changes.
The "git hook" requirement has me wondering whether I should have one git repo for each client folder: /base/clients/clientA, .../clientB, etc. or one repo for each clientX/appX folder.
The following comes from the gitolite samples:
repo clientA RW+ = @clientA-grp option hook.post-receive = deploy
If there is one repo for each client folder, how would the "deploy" script know which appX.tgz file needs to be recreated? Or would it just recreate them all indiscriminately? The second option clearly doesn't scale.