Subversion repository protection
I've come across various questions regarding subversion here but nothing specific to what i'm looking for.
I'm going to hire a freelancer to work remotely on my existing projects(extending functionality and code maintenacne for already existing code.
While i'm going to trust him with the code and let him have all the access he needs to work and test the application..... how do i prevent someone from deleting, corrupting or damaging the code repository in any way supposing there is a dispu开发者_开发百科te between us about something and the freelancer reverts back by causing damage to code.
Now i think there is a remote possibility of anything like this happening but still i'd like to take the precaution.
How do we achieve something like this in subversion?
And secondly,
Any suggestion for a good subversion hosting that makes it real easy to perform all svn actions ... maybe a Web Interface....(paid hosting is fine but not too costly..)
Giving someone access to check in or checkout code from an SVN repository will not let them corrupt or delete the repository. Any changes they make can be reverted. This is the whole point of revision control systems. Just do not give the developer full access to the server hosting SVN (e.g., RDP access).
It is the sys admins (your?) responsibility, though, to ensure that the repository itself is backed up frequently, in case loss or corruption of the data occurs for other reasons.
Regarding how to provide access to the repository, I have had good luck using VisualSVN to setup access to the repositories. It gives the end users https
access to the repos, and they can use whatever client tool they wish to access the code. I have personally never found much use for SVN web interfaces as a developer.
I'm not sure about what your particular concern is. The whole point of version control software (and more specifically Subversion) is to make it impossible for anyone to delete, corrupt or damage the code repository.
I presume you just don't want to waste your time reverting changes. Well, to begin with, you're supposed to put an amount of trust into your freelance. It's not a teen intern after all but someone you're paying. If didn't think he can do the job you would not be hiring him. In second place, no automated system can replace communication. If you are working in certain area of the app and you don't want to deal with unexpected updates from your co-worker, just tell him!
Some features that can help you:
Branches: complex or experimental features are best accomplished by parallel development and a final merge into the trunk once finished.
Access control: you can configure the repository so certain paths are not readable or writeable by certain users.
All the changes and damages can be reverted in subversion; but If you still want to be extermely sure, you can always take backup of your essential code somewhere else where the said freelancer will not be able to see.
精彩评论