I am setting up an environment for our team and our contractor team to develop a project.
Our team is sitting in network A. Our contractor team is sitting in network B. For security reason, Network A and B will be connected once a day (or a few days). Both networks cannot be connected to the Internet.
We decided to adopt GIT's integration manager workflow approach. We plan to setup our central repo in Network A. Then, setup a integration manager repo in network B.
Contractor team's developers will pushed their changes to integration manager repo. A system analyst in the contractor team will review and rebase the codes before pushing to Central repo and pulling the changes we made to central repo.
I would like to ask:
Should integration manager repo be bare or not? I am confused after reading posts from the web. If it cannot be bare, then should I set receive.denycurrentbranch=refuse or updateInstead?
Should the contractor's system analyst rebase codes in integration manager? If not, then what is the proper way to rebase the codes by the SA before pushing the changes to central repo?