Question

We have a following scenario where a team A develops a large Visual Studion asp.net MVC project and uses github as a version control tool.

In case team A needs an outside help completing a part of this project, how can we achieve so that team B (outsourced) gets access to only a part of a project that is necessary for team B to complete it? We obviously do not want for team B to have access of the entire project code.

Do we a) create new project containing only information relevant to team B task and then manually merge it afterwards to main project b) create a branch? or there is some other way to do this?

Was it helpful?

Solution

It might be more a matter of trust, or of legal matters (i.e. having the right legal contract, with help from lawyers), than a technical question. BTW, I am very skeptical to the idea of hiding some of your source code from your partners. Read about leaky abstractions and about software obfuscation.

how can we achieve so that team B (outsourced) gets access to only a part of a project that is necessary for team B to complete it?

You might design and organize the shared (or shareable) source code as a self contained library. Or perhaps as some plugin. Of course, you need to design wisely a stable API. You could also define and use some application protocol between the two parts (perhaps running in different processes and using some inter-process communication).

But this has to be thought very early in the design stage of your software architecture.

Notice that git has submodules. Perhaps that could be useful to you.

But you still need to refactor and re-architecture your project wisely.

(I am a free software enthusiast, so I don't really understand your constraints; but if you have not thought of them early, you are in a big mess)

Perhaps you need to explain to your manager or client that source code has to be shared between several teams working on it. IMHO this is the most (technically) realistic approach. But that is not a technical question, so it is off-topic here.

Licensed under: CC-BY-SA with attribution
scroll top