Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 2

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

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

  • svn - в настоящее время самый популярный open source?
  • git - очень жарко, так как Linus переключился на него
  • mercurial - некоторые умные люди, которых я знаю, клянутся им.
  • cvs - тот, с которого все переключаются
  • perforce - imho, лучшие функции, но он не с открытым исходным кодом. Однако двухсторонняя лицензия бесплатна.
  • visual sourcesafe - я не так много в мире Microsoft, поэтому я понятия не имею об этом, кроме людей, которым нравится обманывать его, поскольку они трясутсь от всего от Microsoft.
  • sccs - для исторического интереса мы упомянули об этом, великий дедушка многих из вышеперечисленных
  • rcs - и grandaddy из многих из вышеперечисленных

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

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

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

Ответ 3

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

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

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

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

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

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

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

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

TL;DR; толпа:

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

Ответ 4

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

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

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

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

Ответ 6

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

Jon Works сказал:
Самое главное в управлении версиями:

ТОЛЬКО НАЧАТЬ ИСПОЛЬЗОВАНИЕ IT

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

Ответ 7

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

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

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

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

Ответ 8

Марк сказал:

git - очень жарко, так как Linus переключился на него

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

Ответ 10

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

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

Ответ 11

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

Ответ 12

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

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

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

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

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