You could do this by doing the following:
- Move the source files with non-critical functionality to another location in the repository - I'd suggest at a folder level the same as the trunk.
- Set up the permissions for the consultants to have read-only access to the existing repository and read / write access to the new directory created in step 1
- Add an SVN:Externals for the files you moved in step 1. As from SVN 1.6 you can have individual file externals
Make sure you give your consultants read-only access to the trunk and read-write access to the new directory
Step 3 is the tricky bit so I'll attempt to explain further. Say your original repository has a file structure like this
/trunk
/lib
- Non Critical File 1.txt
- Non Critical File 2.txt
- Other files.h
After you have completed step 3 your repository would look something like this:
/trunk
/lib
- SVN: External to Non Critical File 1.txt
- SVN: External to Non Critical File 2.txt
- Other files.h
/NewDirectory
- Non Critical File 1.txt
- Non Critical File 2.txt
Do this for each of the non-critical files.
This will allow your consultants to only view the files in the existing repository, but only update the files in the newly created directory
To set up SVN:Externals see this stack overflow post