Link to home
Start Free TrialLog in
Avatar of Andrew Barrington
Andrew BarringtonFlag for United Kingdom of Great Britain and Northern Ireland

asked on

Php project - need to manage code access and version control

We have a php project - which I want multiple coders to work on. The problem is I don't want to hinder them when developing but also I don't want to give them full access to all my code. Is there a software solution that takes a copy of your master code - gives it to a coder based on the access you want to give them - then allows you to review it before publishing it back to the master copy. As its a php project I would love them to be able to run the code to test themselves before finishing developing, but obviously they would need all the code in the background hidden from them to see if what they have done has worked before submitting for review ??

Is there anything that would work out there ??

Surely software companies around the world do this all the time ???
ASKER CERTIFIED SOLUTION
Avatar of Julian Hansen
Julian Hansen
Flag of South Africa image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Andrew Barrington

ASKER

doesn't github allow them access to all the files to work locally, potential chance of them taking all the code ?
agree with @Julian you could setup tortoise cvs. Which can be installed and store all your data  on local server
And this allows me to allow access to certain files ?? Plus lets me know what's been updated ??
Most version control systems are repository based. GH does provide hooks that allow you to control access to a certain extent - we don't use them. There is also gitolite which will do what you want.

One option is to break your project into several modules and assign access that way.

At the end of the day you have to ask why you are needing granular access. If it is to protect your code then you are not really going to solve much with a technical solution.

SVN also has options for securing parts of a repository http://svnbook.red-bean.com/en/1.4/svn.serverconfig.pathbasedauthz.html
If you're using GitHub, you can make the repository available selectively (you will have to pay for this - it will only be free if it's open source).  When your coders have finished their work and unit tests they can push* their changes back to the repository and send a pull* request.  You will have complete control over what gets pulled back into the project.

* Terms of art in project management - Google 'em.

Another alternative is to create an API that exposes the data to your coders.  If you do that, you can keep the API programming private.  The coders will program to the interface.  See the "I" and "D" in this article:
https://www.experts-exchange.com/articles/18329/SOLID-Design-in-PHP-Applications.html