Изучение контроля версий и хорошее изучение

Где я должен начать изучать системы контроля версий? Я использовал SVN, Team Foundation и Sourcesafe в прошлом, но я действительно не чувствую, что полностью понимаю его, и моя команда тоже не понимает этого.

Какие точки наиболее важны для освоения? Я понимаю, что это отличается от VCS до VCS, но ради этого вопроса мы можем предположить, что Subversion - это VCS, о котором я больше всего интересуюсь.

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

Ответ 1

Статья в Википедии об Revision Control - отличное место для запуска

Контроль версий

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

Не знаете, что такое ветка? Пойдите, узнайте и как они работают:)

Там есть бесплатная онлайн-книга подрывной работы в Version Control with Subversion, которая предоставляет бесценную ссылку.

Ответ 3

Я думаю, что наиболее важные моменты, которые нужно изучить в отношении систем управления версиями, следующие:

  • значение малых, частых check-ins/commits
  • тегирование, ветвление и слияние
  • откаты
  • разрешение конфликтов
  • эксклюзивный и неэксклюзивный чек
  • непрерывное интегрирование
  • Испытательные разработки и автоматизированные модульные тесты в отношении систем управления версиями.
  • разветвление

Если у вас есть эти основные концепции, то почти все, что вам когда-либо понадобится для управления версиями:)

Ответ 4

Есть несколько бесплатных книг по этому вопросу. Попробуйте:

Управление версиями с помощью Subversion: Управление версиями с помощью Subversion

Управление версиями Subversion (PDF): Контроль версий Subversion

Я прочитал и порекомендую первое. Не читал "Контроль версий Subversion", но он выглядит довольно подробно.

Ответ 5

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

Ответ 6

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

В Subversion Book, о которой упоминалось выше, я бы рекомендовал главу 1, хотя это может быть на уровне, который слишком низок, если у вас уже есть опыт работы с Svn. Глава 4 охватывает ветвление и слияние в деталях, но это довольно технический.

Что мне очень помогло, это ежедневное руководство по использованию в документации TortoiseSVN; он охватывает наиболее важные операции в стиле учебника.

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

Но, конечно, я все еще изучаю:)

Ответ 7

Я также, как и вы, никогда не чувствовал себя на 100% комфортно с SVN или SourceSafe.

Проверьте Mercurial. Quickstart и Cheatsheets
также отличный чит-лист от DongWoo Lee (его сайт кажется пустым, поэтому я просмотрел его и загрузил на мой)

С Mercurial все казалось намного более гладким и легким, не уверен, почему, потому что это не то, что отличается от команд другим.

Ответ 8

Я не уверен, сколько опыта у вас есть с системами контроля версий, но для тех, у кого нет предварительных знаний о концепции, я рекомендую прочитать первые несколько глав Книга подрывников. Некоторые из описанных там вещей специфичны для Subversion, но многие из них являются "универсальными" для систем управления версиями и как работать с ними.

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

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

Ответ 10

Проверьте GIT. Разговор об этом здесь.

Ответ 11

IMHO, лучшим сетевым ресурсом для управления конфигурацией будет Проект ACME от Brad Appleton

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

Это, вероятно, даст вам достаточно теоретического фона для обработки любого конкретного инструмента версии.

Что касается книги Subversion, вероятно, это будет официальная книга Subversion, о которой говорилось выше. Он доступен онлайн бесплатно или вы можете приобрести бумажную копию.

Ответ 12

ИМХО, это Книга: книга Берчука о шаблонах SCM