Я аспирант электротехники, и в моей лаборатории есть различные проекты, связанные с ультразвуком. У нас есть много кода для моделирования, но сейчас наша ситуация такова, что любой скрипт имеет ~ 5 разных версий. Кроме того, один человек может разработать код для моделирования распространения волн, а другому потребуется этот код для выполнения другого моделирования. Это приводит к тому, что код довольно часто пересылается по электронной почте.
Я предложил своему консультанту управление версиями, и она сказала, что ей это нравится, но у нее нет времени на управление VCS, поэтому ее нужно настроить таким образом, чтобы требовать минимального обслуживания. Очевидно, что мы не выпускаем программное обеспечение для широкой публики, поэтому не имеет значения, нестандартна ли внутренняя структура.
Большинство сотрудников лаборатории не являются профессиональными программистами, но нам всем нужно писать код MATLAB, а также некоторые другие вещи. Итак, я не ожидаю, что пользователи так хорошо разбираются в чистых коммитах и тому подобном, поэтому было бы хорошо, если бы у каждого было свое «рабочее место» или что-то в этом роде. Но, честно говоря, я когда-либо использовал контроль версий только для трех человек одновременно, поэтому я не уверен, как это настроить.
Итак, я спрашиваю, как лучше всего это сделать. Я использовал только Subversion, но мне интересно, правильный ли это выбор. Нам нужна система, которая (по важности, по убыванию):
- требует небольшого обслуживания
- быть простым в использовании и изучении, поскольку не все использовали контроль версий
- есть интеграция с оболочкой (все мы используем Windows XP)
- легко настраивать разрешения и предоставлять каждому собственное рабочее пространство
- быть легким в настройке и приступить к работе
Итак, (1) какая VCS является лучшим выбором и (2) как мы должны ее структурировать. Спасибо за помощь.