15.5.3 Автоматизированный контроль версий

15.5.3 Автоматизированный контроль версий

Для того чтобы избежать описанных выше проблем, можно использовать какую-либо систему контроля версий (Version-Control System— VCS), пакет программ, который автоматизирует большую часть рутинной работы по поддержанию аннотированной истории проекта и позволяет избежать конфликтов модификации.

Большинство VCS-систем используют одну и ту же базовую логику. Использование такой системы начинается с регистрации семейства файлов исходного кода, т.е. с указания VCS-системе начать архивирование файлов, описывая историю их изменения. После этого при необходимости отредактировать один из таких файлов требуется отметить (check out) данный файл — объявить его исключительную блокировку. По окончании редактирования необходимо сдать (check in) файл, добавляя внесенные изменения в архив, снимая блокировку и вводя комментарии, поясняющие суть внесенных изменений.

История проекта не обязательно имеет линейный характер. Все широко используемые VCS-системы фактически позволяют разработчику поддерживать дерево вариантных версий (например, версии для других машин) с помощью инструментов для объединения ветвей обратно в главную "стволовую" версию. Данная функция становится важной по мере увеличения размера и дисперсии группы разработки. Однако ее следует использовать с осторожностью. Множество активных вариантов кодовой базы могут создавать путаницу (только связанные с правильной версией отчеты об ошибках не всегда оказываются простыми), и автоматизированное слияние ветвей не гарантирует, что комбинированный код будет работать.

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

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

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

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

Кроме того, системы VCS полезны не только для программного кода. Рукопись данной книги во время написания поддерживалась как совокупность файлов в системе RCS.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

17.2. Нумерация версий ядра

Из книги Linux для пользователя автора Костромин Виктор Алексеевич

17.2. Нумерация версий ядра Прежде, чем браться за обновление ядра вы должны четко представлять себе, что за версию вы собираетесь установить. В первую очередь необходимо иметь в виду, что разработчики ядра поддерживают две ветки ядра: стабильную и экспериментальную. Все


15.5. Системы контроля версий

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

15.5. Системы контроля версий Как известно, по мере того как проект движется от первого прототипа к распространяемой версии, код проходит через несколько циклов развития, в ходе которых разработчик исследует новые области, отлаживает, а затем стабилизирует достижения.И


15.5.1. Для чего используется контроль версий

Из книги Эффективное использование STL автора Мейерс Скотт

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


15.5.2. Контроль версий вручную

Из книги Реферат, курсовая, диплом на компьютере автора Баловсяк Надежда Васильевна

15.5.2. Контроль версий вручную Самым примитивным (но все еще очень распространенным) является ручной метод. Разработчик периодически делает снимки проекта, создавая его резервные копии, включает исторические комментарии в файлы исходного кода, а также устно или по


15.8.3. Emacs и контроль версий

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

15.8.3. Emacs и контроль версий Сразу после исправления программного синтаксиса и устранения ошибок времени выполнения часто требуется сохранить внесенные изменения в архив системы контроля версий. Однако не многие разработчики хотят вводить команды входного и выходного


MSVC версий 4-6

Из книги Windows Script Host для Windows 2000/XP автора Попов Андрей Владимирович

MSVC версий 4-6 К сожалению, в реализации STL, входящей в комплект поставки версий 4-6, шаблоны функций не объявляются. Библиотека изначально разрабатывалась для MSVC версии 4, а этот компилятор, как и большинство компиляторов того времени, не обладал поддержкой шаблонов функций


Сохранение версий

Из книги Rational Rose 2000 и UML Визуальное моделирование автора Кватрани Терри

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


15.5. Системы контроля версий

Из книги Инфобизнес за один день автора Ушанов Азамат

15.5. Системы контроля версий Как известно, по мере того как проект движется от первого прототипа к распространяемой версии, код проходит через несколько циклов развития, в ходе которых разработчик исследует новые области, отлаживает, а затем стабилизирует достижения.И


15.5.1. Для чего используется контроль версий

Из книги Идеальный программист. Как стать профессионалом разработки ПО автора Мартин Роберт С.

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


15.5.2. Контроль версий вручную

Из книги автора

15.5.2. Контроль версий вручную Самым примитивным (но все еще очень распространенным) является ручной метод. Разработчик периодически делает снимки проекта, создавая его резервные копии, включает исторические комментарии в файлы исходного кода, а также устно или по


15.5.3 Автоматизированный контроль версий

Из книги автора

15.5.3 Автоматизированный контроль версий Для того чтобы избежать описанных выше проблем, можно использовать какую- либо систему контроля версий (Version-Control System — VCS), пакет программ, который автоматизирует большую часть рутинной работы по поддержанию аннотированной истории


15.8.3. Emacs и контроль версий

Из книги автора

15.8.3. Emacs и контроль версий Сразу после исправления программного синтаксиса и устранения ошибок времени выполнения часто требуется сохранить внесенные изменения в архив системы контроля версий. Однако не многие разработчики хотят вводить команды входного и выходного


Нумерация версий WSH

Из книги автора

Нумерация версий WSH Скажем несколько слов относительно нумерации версий WSH. Самая первая версия WSH, входившая в качестве стандартного компонента в Windows 98, имела номер 1.0. С другой стороны, эта версия опиралась на языки сценариев JScript и VBScript версии 5.0, которые поддерживались


Глава 12. Выпуск версий

Из книги автора

Глава 12. Выпуск версий Процесс планирования версийВ плане выпуска версий (iteration release plan) представлены расписания для каждого шага развития системы. «Такой план должен определять серию архитектурных выпусков, постепенно расширяющихся по функциональности и в конечном


1. Предложение разных версий продукта

Из книги автора

1. Предложение разных версий продукта В продающем тексте вы можете предложить три версии своего продукта: «Стандартную», «Голд» и «Платинум». Однозначно, у вас будут заказывать не только стандарт. В запусках многих тренингов есть целая таблица разных


Автоматизированный контроль качества

Из книги автора

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