Система контроля версий для небольшой лаборатории?

Я аспирант электротехники, и в моей лаборатории есть различные проекты, связанные с ультразвуком. У нас есть много кода для моделирования, но сейчас наша ситуация такова, что любой скрипт имеет ~ 5 разных версий. Кроме того, один человек может разработать код для моделирования распространения волн, а другому потребуется этот код для выполнения другого моделирования. Это приводит к тому, что код довольно часто пересылается по электронной почте.

Я предложил своему консультанту управление версиями, и она сказала, что ей это нравится, но у нее нет времени на управление VCS, поэтому ее нужно настроить таким образом, чтобы требовать минимального обслуживания. Очевидно, что мы не выпускаем программное обеспечение для широкой публики, поэтому не имеет значения, нестандартна ли внутренняя структура.

Большинство сотрудников лаборатории не являются профессиональными программистами, но нам всем нужно писать код MATLAB, а также некоторые другие вещи. Итак, я не ожидаю, что пользователи так хорошо разбираются в чистых коммитах и ​​тому подобном, поэтому было бы хорошо, если бы у каждого было свое «рабочее место» или что-то в этом роде. Но, честно говоря, я когда-либо использовал контроль версий только для трех человек одновременно, поэтому я не уверен, как это настроить.

Итак, я спрашиваю, как лучше всего это сделать. Я использовал только Subversion, но мне интересно, правильный ли это выбор. Нам нужна система, которая (по важности, по убыванию):

  • требует небольшого обслуживания
  • быть простым в использовании и изучении, поскольку не все использовали контроль версий
  • есть интеграция с оболочкой (все мы используем Windows XP)
  • легко настраивать разрешения и предоставлять каждому собственное рабочее пространство
  • быть легким в настройке и приступить к работе

Итак, (1) какая VCS является лучшим выбором и (2) как мы должны ее структурировать. Спасибо за помощь.


person rlbond    schedule 26.01.2010    source источник
comment
Требование простоты освоения, вероятно, является самым сложным для удовлетворения. Я заметил, что даже опытные разработчики время от времени теряют код, потому что они не думают тщательно о том, как они возвращают / выгружают файлы.   -  person AaronLS    schedule 26.01.2010


Ответы (7)


Мы используем subverrer и любим его за простоту, удобство использования, интеграцию в среду оболочки и возможность не только версии, кода, но и документов спецификации pdf и других ресурсов, которые у нас есть.

Что касается ее структурирования, постарайтесь как можно точнее использовать вашу логическую структуру. Будь проще :)

person Rihan Meij    schedule 26.01.2010

Я не вижу причин, по которым вам следует искать дальше от Subversion. Хотя для дополнительного небольшого обслуживания вы можете проверить GitHub (поскольку это размещенное решение, поэтому не беспокойтесь о резервном копировании, серверах и т. Д.), Но есть также размещенные репозитории Subversion.

Особенно, если вы уже знакомы с этим, так что вы можете познакомить других и получить дополнительный балл :)

person Vnuk    schedule 26.01.2010

После полной настройки Subversion требует очень небольшого обслуживания, ее модель проста для понимания, она интегрирована в оболочку, поддерживает списки управления доступом, которые прекрасно работают, и ее настройка хорошо документирована.

вы можете настроить Subversion на веб-сервере, при необходимости интегрировать его с доменом Windows для аутентификации (в противном случае вам придется добавлять / удалять пользователей, менять пароли на svn-сервере)

Вы также можете пойти по пути распределенного vcs, с размещенными решениями без настройки сервера, но донести это до ума вашего пользователя будет намного сложнее, чем svn. Не говоря уже о том, чтобы сначала подумать об этом.

Если у вас нет сложных, динамичных, параллельных моделей разработки, я бы не рекомендовал dvcs, я бы придерживался SVN.

person Jean    schedule 26.01.2010

Я согласен с тем, что подрывная деятельность - очень хороший выбор. Но вы также можете рассмотреть меркуриальный: это проще, и в нем также есть черепаха интегрированный интерфейс.

person sergiom    schedule 26.01.2010
comment
Вы можете быть конкретными? Что лучше против SVN? - person rlbond; 26.01.2010
comment
@ribond Это не мой прямой опыт. Мне сказали, что это легко установить и использовать. Одно большое отличие состоит в том, что mercurial - это распределенная система контроля версий, такая как git. Я попробую Mercurial для своего следующего проекта. - person sergiom; 27.01.2010
comment
@ribond эта старая тема выглядит интересной: stackoverflow.com/questions/224396/ - person sergiom; 27.01.2010

Я бы порекомендовал www.assembla.com. Они предлагают платные подписки, но для академических проектов вы можете подать заявку на бесплатную профессиональную учетную запись.

Я использовал его в своих академических проектах и ​​был на 100% удовлетворен простотой обслуживания, времени безотказной работы и простотой.

person Victor Hurdugaci    schedule 26.01.2010

Самый простой способ - использовать Subversion. Но чтобы заставить его работать наиболее простым способом (под Windows), вам обязательно нужно использовать TortoiseSVN.

После установки он работает прямо в проводнике, всего в одном щелчке правой кнопкой мыши от использования. Может быть, кому-то из ваших парней следует глубже изучить всю документацию, чтобы при необходимости помочь . Всем остальным следует ознакомиться с Ежедневным руководством по использованию, чтобы получить первый старт.

Также вам следует позаботиться о том, чтобы структурируйте свой репозиторий!

person Oliver    schedule 26.01.2010

Subversion имеет слишком много ограничений, связанных с моделью «всегда онлайн + центральный сервер». Я настоятельно рекомендую использовать распределенную систему контроля версий.

Из трех основных - Git, Mercurial, Bazaar; По моему опыту, Bazaar, безусловно, является самым простым в использовании и настройке.

person rodrigob    schedule 26.01.2010