В чем разница между всеми типами контроля версий?

StackOverflow https://stackoverflow.com/questions/3859

  •  08-06-2019
  •  | 
  •  

Вопрос

После того, как по крайней мере 10 человек в SO сказали, что контроль версий - это хорошо, даже если это только я, у меня теперь есть дополнительный вопрос.

В чем разница между всеми типами контроля версий и существует ли кто-нибудь известное руководство по управлению версиями, которое было бы очень простым и понятным?

Это было полезно?

Решение

У Эрика Синка есть хороший обзор системы контроля версий.Есть также некоторые существующий вопросы здесь, на ТАК.

Другие советы

Похоже, мы переживаем золотой век контроля версий, когда существует масса вариантов, каждый из которых имеет свои плюсы и минусы.

Вот те, которые я вижу наиболее часто используемыми:

  • svn — на данный момент самый популярный проект с открытым исходным кодом?
  • git — очень жарко с тех пор, как Линус перешёл на него
  • ртутный - некоторые умные люди, которых я знаю, клянутся этим
  • cvs — тот, с которого все переходят
  • perforce - имхо, лучшие функции, но это не открытый исходный код.Однако лицензия на двух пользователей бесплатна.
  • Visual Sourcesafe — я не особо разбираюсь в мире Microsoft, поэтому понятия не имею об этом, за исключением того, что людям нравится ругаться на него, как они ругаются на все, что от Microsoft.
  • sccs - ради исторического интереса упомянем этого, прадеда многих из вышеперечисленных
  • rcs — и дедушка многих из вышеперечисленных

Моя рекомендация:безопаснее всего использовать git, svn или perforce, поскольку их используют многие люди, они кроссплатформенные, имеют хороший графический интерфейс, вы можете покупать о них книги и т. д.

Не рассматривайте cvs, sccs, rcs, они устарели.

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

Для всех, кто только начинает использовать контроль версий:

Пожалуйста, не используйте git (или hg или bzr) из-за шумихи.

Используйте git (или hg или bzr), потому что они лучшие инструменты для управления исходным кодом, чем SVN.

Я использовал SVN на работе несколько лет и перешел на git 6 месяцев назад.Без предварительного изучения SVN я бы совершенно запутался в использовании DVCS.

Для людей, которые только начинают работать с контролем версий:

  • Начните с загрузки SVN
  • Учиться почему вам нужен контроль версий
  • Узнайте, как совершать коммит, оформлять заказ и ветвляться.
  • Узнайте, почему слияние в SVN является такой проблемой

Затем переключитесь на DVCS и узнайте:

  • Как клонировать/разветвлять/фиксировать
  • Как легко объединить ваши ветки обратно (с ума сойти с веток!)
  • Как легко переписать историю коммитов и сохранить ветки
    в курсе основной линии (git перебазировать -i, )
  • Как опубликовать ваши изменения, чтобы другие могли ими воспользоваться

тлдр;толпа:

Начните с SVN и изучите основы, а затем перейдите к DVCS.

Я бы начал с:

Затем, как только вы прочитаете это, загрузите и установите СВН, ЧерепахаSVN и просмотрите первые несколько глав книга и начать.

Контроль версий необходим для разработки, даже если вы работаете самостоятельно, поскольку он защищает вас от самих себя.Если вы допустили ошибку, достаточно просто вернуться к предыдущей версии вашего кода, которая, как вы знаете, работает.Это также освобождает вас для исследования и экспериментирования с вашим кодом, поскольку вам не нужно беспокоиться о том, является ли то, что вы делаете, обратимым или нет.Существует две основные ветви систем контроля версий (VCS): централизованная и распределенная.

Централизованные системы контроля версий основаны на использовании центрального сервера, где каждый «проверяет» проект, работает над ним и «фиксирует» свои изменения обратно на сервер, чтобы их мог использовать кто-то еще.Основными централизованными VCS являются CVS и SVN.Оба подверглись резкой критике, поскольку «слияние» «ветвей» для них крайне болезненно.[ДЕЛАТЬ:напишите объяснение, что такое ветки и почему слияние с CVS и SVN затруднено]

Распределенная система контроля версий позволяет каждому иметь собственный сервер, на котором вы можете «извлекать» изменения от других людей и «переносить» изменения на сервер.Наиболее распространенными распределенными системами управления версиями являются Git и Mercurial.[ДЕЛАТЬ:напишите больше о распределенных VCS]

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

А отвечать к Другой вопрос и здесь тоже применимо, что самое главное

Джон Уоркс сказал:
Самое важное в контроле версий:

ПРОСТО НАЧНИТЕ ЭТО ИСПОЛЬЗОВАТЬ

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

Ответ простой: вам нравятся кнопки «Отменить»?Ответ, конечно, да, потому что мы, люди, постоянно совершаем ошибки.

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

Таким образом, Source Control представляет собой огромную кнопку «Отменить», позволяющую вернуть код к более раннему времени, когда трава была зеленой, а еды было много.И не только это, из-за того, как работает система контроля версий, вы все равно можете сохранить копию своего сломанного кода на случай, если через несколько недель вы захотите снова обратиться к нему и выбрать любые хорошие идеи, которые действительно вышли из него. .

Лично я (хотя это можно назвать излишним) использую бесплатную версию Source Gear Fortress с однопользовательской лицензией (это их продукт для контроля версий Vault с функциями отслеживания ошибок).Я считаю, что пользовательский интерфейс очень прост в использовании, он поддерживает как модель оформления заказа > редактирования > возврата, так и модель редактирования > слияния > фиксации.Однако его настройка может оказаться немного сложной, поскольку вам потребуется запустить локальную копию ISS и SQL-сервера.Возможно, вы захотите попробовать программу меньшего размера, например, рекомендованную другими ответами здесь.Посмотрите, что вам нравится и что вы можете себе позволить.

Марк сказал:

git — очень жарко с тех пор, как Линус перешёл на него

Я просто хочу отметить, что Лайнус не переключился на это, Лайнус написал это.

Если вы работаете самостоятельно в среде Windows, то однопользовательская лицензия для SourceGear's Vault бесплатен.

Мы используем и нам нравится Меркуриальный.Он следует распределенной модели — это устраняет необходимость «проверять» работу.У Mozilla есть перешел в Меркуриал, что является хорошим знаком того, что в ближайшее время оно не исчезнет.На мой взгляд, одним из недостатков является то, что для этого не очень хороший графический интерфейс.Однако если вам комфортно работать с командной строкой, это довольно удобно.

Документация Mercurial Неофициальное руководство

Просто начните использовать систему контроля версий, независимо от того, какой тип вы используете.То, что вы используете, не имеет значения;важно его использование

Как и все остальные, SC действительно зависит от ваших потребностей, вашего бюджета, вашей среды и т. д.

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

Каждый существующий продукт начинает проявляться (так сказать), когда вы начинаете смотреть на то, как вы хотите или должны внедрить SC в свою среду (будь то ваш личный код и документы или крупная корпорация).И по мере того, как люди их используют, они обнаруживают, что у этого инструмента есть ограничения, поэтому люди пишут новые.SVN родился из-за ограничений, которые создатели увидели в CVS.Линусу хотелось чего-то лучшего для ядра Linux, и теперь у нас есть мерзавец.

Я бы посоветовал начать использовать один из них (что-то вроде SVN, который очень популярен и довольно прост в использовании) и посмотреть, как пойдет.Со временем вы можете обнаружить, что вам нужны какие-то другие функции или необходимо взаимодействовать с другими системами, поэтому вам может понадобиться SourceSafe или другой инструмент.

Контроль версий всегда важен, и хотя вам может сойти с рук перенумерация версий PSD-файлов или что-то еще во время работы над ними, вы забудете запустить этот пакетный скрипт один или два раза или, вероятно, забудете, какой номер был с каким изменением.Именно здесь могут помочь большинство этих инструментов SC (при условии, что вы регистрируетесь/выезжаете).

См. также этот вопрос SO:

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top