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

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

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

6.08.2008 18:58:53
Еще один недавний вопрос на ту же тему
Yaakov Ellis♦ 6.08.2008 19:04:03
13 ОТВЕТОВ
РЕШЕНИЕ

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

15
23.05.2017 12:02:29

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

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

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

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

5
6.08.2008 19:17:10

Я бы начал с:

Затем, прочитав его, загрузите и установите SVN , TortoiseSVN, просмотрите первые несколько глав книги и приступайте к работе.

5
6.08.2008 19:02:22

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

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

  • SVN - в настоящее время самый популярный открытый исходный код?
  • мерзавец - очень жарко, так как Линус переключился на это
  • Mercurial - некоторые умные люди, которых я знаю, клянутся этим
  • cvs - тот, с которого все переключаются
  • Производительность - имхо, лучшие функции, но это не с открытым исходным кодом. Однако лицензия на двух пользователей бесплатна.
  • визуальные источники безопасны - я не очень в мире Microsoft, поэтому я понятия не имею об этом, кроме людей, которым нравится тряпка на них, поскольку они тряпки на все от Microsoft.
  • sccs - для исторического интереса мы упоминаем об этом, пра-прадедушка многих из вышеперечисленных
  • rcs - и дедушка многих из перечисленных

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

Не считайте cvs, sccs, rcs, они старинные.

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

20
31.08.2008 20:17:40
К сожалению, во время профессиональной карьеры также почти неизбежно встретить ClearCase и CA SCM. Однако нормальные люди никогда не выберут их для своих собственных проектов.
maksimov 6.06.2012 15:10:25
@maksimov, раньше я работал в магазине ClearCase. Я просто притворяюсь, что этого никогда не было, и отрицаю это жестоко, если кто-то скажет, что я это сделал!
Mark Harrison 6.06.2012 22:46:01

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

1
6.08.2008 19:15:30

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

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

Просто начните использовать его

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

2
23.05.2017 12:17:53

Всем, кто только начинает использовать контроль версий:

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

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

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

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

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

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

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

tldr; толпа людей:

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

6
6.08.2008 19:49:57
Я не понимаю весь этот мем "DVCS сложнее". В своих основных воплощениях hg и bzr по крайней мере так же просты в использовании, как svn; на самом деле, я бы сказал, что проще запустить git init, чем каким-либо образом настроить сервер SVN.
Will Robertson 7.10.2008 12:56:33
@ Вилл Робертсон: Я согласен, я никогда не находил DVCS более сложным, чем CVCS. Наоборот, проще было грокать. Например, намного проще настроить репо в git, в то время как svn имеет многоэтапный процесс, просто следуя условным транкам / веткам / тегам, даже если это локально на вашем собственном компьютере.
Spoike 4.11.2008 10:07:07
Привет @Will и @Spoike, я не могу точно сказать, сложнее ли освоить распределенный контроль версий для нового пользователя, чем централизованный. Однако я могу сравнить мои переходы из Source Safe в CVS и оттуда в SVN с моим переходом из SVN в Bazaar. Когда вы переходите от одного централизованного инструмента к другому, они имеют в основном те же функции с другим (надеюсь, улучшенным) интерфейсом. Когда вы переходите к распределенному инструменту, происходит фундаментальное изменение в том, как используется репозиторий и как выглядит ваш рабочий процесс. Мне было труднее обернуть голову.
Don Kirkby 9.03.2010 23:45:42

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

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

1
6.08.2008 19:59:33
Проект OpenJDK также переключился, и язык Python находится в процессе перехода на Mercurial.
Martin Geisler 30.05.2009 21:49:14

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

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

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

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

2
6.08.2008 23:31:21

Марк сказал:

мерзавец - очень жарко, так как Линус переключился на это

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

2
6.08.2008 23:33:52
он переключился с использования Bitkeeper на написание и использование git.
Craig McQueen 21.05.2009 05:12:29

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

0
7.10.2008 12:13:27

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

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

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

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

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

0
7.10.2008 12:36:31

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

0
23.05.2017 12:17:53