В чем разница между всеми типами контроля версий? - PullRequest
21 голосов
/ 06 августа 2008

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

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

Ответы [ 13 ]

20 голосов
/ 06 августа 2008

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

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

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

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

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

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

15 голосов
/ 06 августа 2008

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

6 голосов
/ 06 августа 2008

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

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

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

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

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

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

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

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

tldr; Толпа:

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

5 голосов
/ 06 августа 2008

Я бы начал с:

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

5 голосов
/ 06 августа 2008

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

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

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

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

2 голосов
/ 07 августа 2008

Марк сказал:

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

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

2 голосов
/ 07 августа 2008

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

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

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

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

2 голосов
/ 06 августа 2008

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

Джон Воркс сказал:
Самое важное в управлении версиями:

ТОЛЬКО НАЧАЛО ИСПОЛЬЗОВАНИЯ ЭТОГО

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

1 голос
/ 06 августа 2008

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

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

1 голос
/ 06 августа 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...