Fuhrmanator
Fuhrmanator

Reputation: 12882

Best source code control for a university environment (low overhead to manage repositories)

Does anyone know of a solution (web hosted or otherwise) for a source code control system that would work well in a university environment where information technology is the focus? We'd like to offer it as a campus-wide "version-control service", much like universities do with an email service. Specifically, I'm talking about the following peculiarities:

  1. There are a large number of new repositories created/managed each semester. Any programming course or research project could require students to use source code control, in various source code environments (including .NET, Java, C++, LaTeX).
  2. Students should be able to create and manage themselves the repositories. Involving an administrator/instructor/etc. is not scalable otherwise.
  3. Repository storage should be secure (private), and archivable for respecting intellectual property (preventing plagiarism, protecting research IP).
  4. Any or all of the flavors of source code control (e.g., CVS/SVN/GIT) would be acceptable.
  5. Remote access to repositories is essential. Student/researchers have freedom to work either in designated lab spaces or remotely. Marking of assignments can be done by instructors who've "checked out" the code anywhere.
  6. If an academic license exists, it must scale for >500 students.

Many commercial/free products (web-based or otherwise) don't satisfy conditions #1 and #2, as they require superusers to administer accounts/repositories/accesses. Solutions such as Google Code, sourceforge.net, GitHub, etc. don't satisfy condition #3, as the repositories are always public.

Upvotes: 4

Views: 1233

Answers (5)

Roman Newaza
Roman Newaza

Reputation: 11690

Here's free one: http://gitlabhq.com/ You can add repositories over this tool. For security you use RSA Keys.

And I would suggest to use Git. SVN and CVS are outdated.

Upvotes: 2

tripleee
tripleee

Reputation: 189397

GitHub would appear to satisfy your requirements. You can set up your own instance in your intranet; https://enterprise.github.com/

Upvotes: 2

Lazy Badger
Lazy Badger

Reputation: 97282

  • Redmine (SVN, CVS, Git, Mercurial, Bazaar and Darcs)
  • UberSVN (SVN)
  • Private Assembla (?) (SVN, Git, Mercurial)

Upvotes: 1

Ben
Ben

Reputation: 559

One solution I use is to create a master GIT repository in a Truecrypt variable size encrypted container. The container is placed in a Dropbox folder. The repository is cloned to the local hard drive which becomes the working directory. All the work is done and checked in on the local repository. I wrote scripts that mount the encrypted container, pushes/pulls the local repo to the master repo and dismounts the encrypted container. Dropbox detects the changes in the encrypted container and syncs it to the Dropbox server. Security is maintained as an encrypted file is the only thing sent to the server. Only real way to ensure security is doing the encryption yourself.

All you need to set this up is a few scripts, truecrypt installed and a Dropbox account. Could probably write some basic software to automate some of the steps. To make it scaleable and low cost, the basic steps are still valid. Create a master and local repository, encrypt the master repo, work on the local repo and sync changes to the master, back up the encrypted master repo online or on a server.

Upvotes: 0

evarsanyi
evarsanyi

Reputation: 31

You could use git in the students private file storage if they have such a thing, git doesn't require hosting other than a place to store files.

Upvotes: 1

Related Questions