2

For an archive of test data I need a revision control system that allows only the addition of files. Modifications, renaming and any other changes are prohibited.

This will make it possible to test any code revision with the current test data and reproduce the same results as before.

We are currently using Subversion for source code. However, the test data will probably be several hundred files with about 200 GBytes of data. I doubt that Subversion can handle it. I don't want to put the test data into the same Subversion archive as the code, which only has several MBytes.

Also, Subversion doesn't seem to be the right tool for such a simple problem.

How do I create a directory in my subversion repository with an add-only rule?

I noticed, that after checkout the test data doubled in size, because there is a .svn-directory with copies of every file. Can I avoid this waste of hard disk space? Someone, who only wants to use the data but doesn't want to add anything wouldn't need it. He could just delete .svn but would still need a lot of disk space at checkout.

4

2 回答 2

3

To answer the second part of your question you can do an svn export to only get one copy of your data. You will not be able to commit to that folder because it is not a working copy. I have a repository that is well over 200 GB. No problems so far.

于 2016-04-04T12:07:41.707 回答
2

Subversion is the right tool for such case and there should be no problems handling 200GB of data or event multi TBytes of data. Note that you haven't really stated any "problem" in the question except "how to prohibit modifications", so it's not really clear what problems you ask about.

To prohibit modifications but allow additions (I don't really understand why you ask about this, just because you use a fully-fledged and feature complete version control that will control the modifications itself), use path-based authorization and combine it with a pre-commit hook script. Write the hook script yourself or use svnperms hook script written in Python.

And don't forget to read the documentation: SVNBook 1.8.

于 2016-04-04T10:49:09.077 回答