Какова ценность использования контроля версий?

19

Я новичок в управлении версиями (в настоящее время использую SVN), но я не понимаю, как это помогает разработчикам. Что делает контроль версий, что делает его полезным в среде разработки?

Джон Райан
источник
4
Просто прочитайте превосходный HOWTO-сериал Эрика Синка по управлению исходным кодом: ericsink.com/scm/source_control.html . В остальном, здесь не так много, чтобы ответить или обсудить.
Deckard
4
Контроль источников - это одна из тех вещей, которая кажется бессмысленной, пока она вам не понадобится. Тогда вы понимаете, что без этого не обойтись. К сожалению, к тому времени уже слишком поздно. Вроде как страхование от наводнения, за исключением того, что я считаю, что контроль над источниками гораздо полезнее.
Рейн Хенрикс
2
@rahmanisback, вы хотите это сразу после того, как вы запустите File | New Project ... вам это нужно, как только у вас будет> 1 разработчик в проекте (моя стандартная линия> 0 разработчиков - и я считаю, что сейчас это как никогда верно)
Мерф
8
Работа без контроля версий - это все равно, что удалить команду «Отменить» из текстового процессора, который вы используете для ввода эссе, или удалить все ластики и корректирующие жидкости со своего стола.
Руонг
2
@rahmanisback Как только вы случайно удалите файл или иным образом потеряете данные. @ Хорошая аналогия.
Рейн Хенрикс

Ответы:

21

VisualSVN и TortoiseSVN являются просто клиентами UI для сервера SVN. SVN-сервер является системой контроля версий / версий. Система контроля версий является ключевым активом для любой реальной разработки, потому что она хранит версии ваших исходных кодов. При использовании системы контроля версий вы сохраняете только локальную копию исходных кодов. Основная копия хранится в системе контроля версий, и вы вносите изменения в систему.

SVN позволяет:

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

VisualSVN является расширением Visual Studio, которое позволяет использовать хранилище SVN непосредственно из пользовательского интерфейса Visual Studio. TortoiseSVN - это расширение для Windows Explorer, которое позволяет вам использовать SVN-репозиторий непосредственно при просмотре папок и файлов.

Ладислав Мрнка
источник
+1. Хааа .. после использования VCS более десяти лет, довольно сложно ответить «почему». Я имею в виду, что это так очевидно - но очень трудно четко сформулировать «почему» так, как вы это сделали! Отличный ответ.
Дипан Мехта
Я полагаю, что AnkhSVN также делает убийственную работу по интеграции SVN в Visual Studio.
Сол Дельгадо
6

Контроль версий предлагает ряд вещей:

  • Архивируйте свое программное обеспечение, чтобы вы могли видеть состояние, в котором оно было в предыдущие моменты времени. Очень полезно для нахождения ошибки.
  • Разрешить нескольким разработчикам в одном проекте делиться и координировать свою работу, одновременно помогая избежать перезаписи работы друг друга.
  • Обеспечение непрерывности работы отдельных лиц и бизнеса, в частности, через центральный сервер, который защищен и резервируется.

Это минимум для любой работы по разработке программного обеспечения, за исключением того, чтобы просто посмотреть, что происходит.

Я всегда предупреждаю всех, кто впервые работает с системой контроля версий, что избегать ее - это только неприятность. Они БУДУТ столкнулись с проблемой , что , когда они оглядываются назад они БУДУТ понимают , что бы не случились , если бы они использовали систему.

отметка
источник
0

Самый продуктивный разработчик один. Одинокий разработчик никогда не должен беспокоиться о координации с кем-либо еще. Но как только проект становится множественным, появляются накладные расходы. И с каждым разработчиком, добавленным в команду, накладные расходы ухудшаются. Задача VCS - помочь справиться с этими издержками и минимизировать последствия.

http://www.ericsink.com/vcbe/html/dvcs_private_workspace.html

Джейс Браунинг
источник
8
Даже одинокий разработчик нуждается в контроле версий. VCS не просто «управляет накладными расходами», как следует из этой цитаты.
Alroc
5
Даже одинокий разработчик может понять, что они сделали что-то не так неделю назад и хотят вернуть старый код. Даже одинокий разработчик может захотеть опробовать большой, сложный набор рефакторингов, не рискуя исходной базой кода.
Gort the Robot
Я думаю, что аспекты «резервного копирования» и «восстановления» контроля версий очевидны для большинства, но пока вы не поймете, как контроль версий помогает сократить издержки совместной работы, кто-то действительно понимает его ценность.
Джейс Браунинг