4

Кто-нибудь знает о решении (веб-хостинге или о другом) для системы управления исходным кодом, которая бы хорошо работала в университетской среде, где важны информационные технологии ? Мы хотели бы предложить его как общедоступную «службу контроля версий», как университеты с помощью электронной почты. В частности, я говорю о следующих особенностях:Лучший исходный код для университетской среды (низкие накладные расходы для управления репозиториями)

  1. Есть целое большого количества новых хранилищ, созданных/управляемых каждый семестр. Любой учебный курс или исследовательский проект могут потребовать от учащихся использования контроля исходного кода в различных средах исходного кода (включая .NET, Java, C++, LaTeX).
  2. Студенты должны иметь возможность создавать и управлять репозиториями. Привлечение администратора/инструктора/и т. Д. в противном случае не масштабируется.
  3. Хранилище хранилища должно быть защищенным (частным) и архивируемым для уважения интеллектуальной собственности (предотвращение плагиата, защита исследований IP).
  4. Любой или все варианты управления исходным кодом (например, CVS/SVN/GIT) будут приемлемыми.
  5. Необходим удаленный доступ к репозиториям. Студенты/исследователи имеют свободу работать либо в определенных лабораторных помещениях, либо дистанционно. Маркировка назначений может выполняться инструкторами, которые «проверили» код в любом месте.
  6. Если академическая лицензия существует, она должна шкала для> 500 студентов.

Многие коммерческие/бесплатные продукты (на основе Интернета или иным образом) не удовлетворяют условиям № 1 и № 2, так как им требуются суперпользователи для администрирования учетных записей/репозиториев/доступа. Такие решения, как Google Code, sourceforge.net, GitHub и т. Д., Не удовлетворяют условию №3, поскольку хранилища всегда являются общедоступными.

+0

Ответы на соответствующий вопрос http://stackoverflow.com/questions/326429/what-version-control-system-is-most-trivial-to-set-up-and-use-for-toy-projects несколько полезны, хотя контекст там ограничен одним курсом (и некоторые из ответов вернутся к 2008 году). Я ищу решение для всего университета с использованием современных технологий. – Fuhrmanator

ответ

2

Бесплатно: http://gitlabhq.com/ Вы можете добавить репозитории для этого инструмента. Для обеспечения безопасности вы используете RSA Keys.

И я бы предложил использовать Git. SVN и CVS устарели.

+0

Спасибо. Я начал дискуссию [thread] (https://groups.google.com/group/gitlabhq/browse_thread/thread/d026caa3f89b95) в группе обсуждения gitlabhq, если кто-то захочет следить за ответами. – Fuhrmanator

+0

GitLab построен на гитолите, который, как представляется, обеспечивает [легкую модель пользователя] (http://sitaramc.github.com/gitolite/users.html), которая поддерживает критерии №2 и №3 в моем вопросе. – Fuhrmanator

+0

Я принимаю этот ответ, поскольку локальное решение GitLab - это, наконец, то, что мы использовали. Тем не менее, это было невозможно из коробки (наши администраторы должны были закодировать решение, чтобы разрешить создание самообслуживания, и они все еще гладят изломы в системе). Посещение исследователей должно заставить администратора создать свою учетную запись, но это довольно редкий случай использования. – Fuhrmanator

1

Вы можете использовать git в частном хранилище файлов учеников, если у них есть такая вещь, git не требует хостинга, кроме места для хранения файлов.

+2

Я думаю, что вы можете использовать почти любую систему управления версиями в этих условиях. Каждый, который я использовал, имеет локальную опцию хранения файловой системы (SVN, git и Mercurial all do) –

+0

В этом ответе, означает ли это, что все работают локально на одной и той же машине? Это не будет летать, учитывая разнообразие сред кодирования (все от .NET в среде Microsoft IDE до Java в Eclipse/Netbeans до LaTeX в Emacs). Я понимаю, как GIT или SVN могли бы работать локально, если бы каждый использовал компилятор C++ на одном компьютере, но не мог управлять удаленным доступом/совместным доступом без sysadmin. Я неправильно понял? – Fuhrmanator

+1

Нет, системы DVCS позволяют начинать с частного репо на локальном компьютере, а затем совместно использовать его на центральном сервере или, фактически, на любой другой машине или пользователе. Современные VCS, такие как bzr, Darcs, Mercurial и Git, основаны на этой модели. Вы можете использовать центральное репо, если хотите, но это не требование. – tripleee

0

Одним из решений, которое я использую, является создание главного репозитория GIT в зашифрованном контейнере переменной размера Truecrypt. Контейнер помещается в папку Dropbox. Репозиторий клонируется на локальный жесткий диск, который становится рабочим каталогом. Вся работа выполняется и проверяется в локальном репозитории. Я написал сценарии, которые монтируют зашифрованный контейнер, толкает/вытаскивает локальное репо на мастер-репо и снимает зашифрованный контейнер. Dropbox обнаруживает изменения в зашифрованном контейнере и синхронизирует его с сервером Dropbox. Безопасность поддерживается, так как зашифрованный файл - единственное, что отправлено на сервер. Только реальный способ обеспечения безопасности делает шифрование самостоятельно.

Все, что вам нужно, чтобы установить это несколько скриптов, truecrypt и Dropbox. Возможно, можно написать некоторое базовое программное обеспечение для автоматизации некоторых этапов. Чтобы сделать его масштабируемым и недорогим, основные шаги все еще действительны. Создайте главный и локальный репозиторий, зашифруйте мастер-репо, обработайте локальные изменения репо и синхронизацию с мастером, создайте резервную копию зашифрованного основного репо онлайн или на сервере.

1
  • Redmine (SVN, CVS, Git, Mercurial, Bazaar и Darcs)
  • UberSVN (SVN)
  • Private Assembla (?) (SVN, Git, Mercurial)
+0

[См.] (Http://www.redmine.org/boards/1/topics/3315) Redmine требует вмешательства администратора для создания репозиториев. – Fuhrmanator

+0

@Fuhrmanator - потому что Redmine может использовать LDAP, с [плагином LDAP] (http://www.redmine.org/plugins/redmine_ldap_sync) или [это fork] (https://github.com/Utopism/redmine_ldap_sync), вы (по крайней мере, кажется, так) –

+0

Я начал [thread] (http://www.redmine.org/boards/1/topics/29540) на форуме Redmine.org, если кто-то захочет следуйте ответам там. – Fuhrmanator

2

GitHub, казалось бы, удовлетворяет вашим требованиям. Вы можете настроить свой собственный экземпляр в своей интрасети; https://enterprise.github.com/

+0

Да, это лучший! –

+3

Надеюсь, у них есть академические лицензии! Ввод ** 500 ** студентов на поле «Размер группы/Все пользователи, которым потребуются учетные записи» для калькулятора цен на странице https://enterprise.github.com/pricing, дает стоимость ** 125 000,00 долларов США ** в год. Это не полетит наверняка! – Fuhrmanator

+0

Это бесплатно, если все репозитории просто общедоступны, и просто скажите каждому учащемуся сделать свой собственный счет. – bmargulies