
ЗАДАНИЕ
НА ВЫПОЛНЕНИЕ КУРСОВОГО ПРОЕКТА (КУРСОВОЙ РАБОТЫ)
студенту группы |
53504/12 |
|
Егоров Алексей Сергеевич |
||||||||||
|
(номер группы) |
|
(фамилия, имя, отчество) |
||||||||||
1. Тема проекта (работы) |
Использование системы контроля версий на |
||||||||||||
примере Subversion |
|||||||||||||
2. Срок сдачи студентом законченного проекта (работы) |
27.12.13 |
||||||||||||
3. Исходные данные к проекту (работе) |
Материалы лекций, |
||||||||||||
шаблон и примеры проектного плана управления конфигурацией |
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
4.Содержание пояснительной записки (перечень подлежащих разработке вопросов): введение, основная часть (раскрывается структура основной части), заключение, список использованных источников, приложения). |
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
|
|||||||||||||
Примерный объем пояснительной записки |
1 |
страница машинописного |
|||||||||||
текста |
|||||||||||||
5. Перечень графического материала ( с указанием обязательных чертежей и |
|||||||||||||
плакатов) |
Презентация в PowerPoint, видео в формате avi |
||||||||||||
|
|||||||||||||
6. Консультанты |
|
||||||||||||
|
|||||||||||||
7. Дата получения задания: «06» 11 2013 г. |
|||||||||||||
|
|||||||||||||
Руководитель |
|
|
А. В. Баранов |
||||||||||
|
(подпись) |
|
(инициалы, фамилия) |
||||||||||
Задание принял к исполнению |
|
|
А. С. Егоров |
||||||||||
|
(подпись) |
|
(инициалы, фамилия) |
||||||||||
|
06.11.2013 |
||||||||||||
|
|
Санкт-Петербургский государственный политехнический университет
Институт информационных технологий и управления
Кафедра «Информационные и управляющие системы»
КУРСОВАЯ РАБОТА
Использование системы контроля версий
на примере Subversion
по дисциплине «Управление программным проектом и управление конфигурацией»
Выполнил
студент гр.53504/12 < > Егоров А. С.
Р уководитель
ст. преподаватель < > > > Баранов А. В.
«27» 12 2013 г
Оглавление
Введение 5
История развития Subversion 5
Особенности Subversion 6
Возможности SVN 8
Tortoise SVN 8
Достоинства SVN 10
Недостатки SVN 10
Заключение 10
Список литературы 13
Введение
Что же такое система контроля версий? Каждый программный проект проходит несколько стадий: постановка задачи, поиск вариантов решения, написание кода программы и её отладка, дальнейшая поддержка проекта. При этом многие “неопытные” разработчики вручную фиксируют историю изменений проекта, осуществляют формирование готовых релизов, ветвление проекта. Естественно, что такая работа с изменяющейся информацией чревата путаницей и частыми ошибками. Для автоматизации этой работы и были разработаны системы контроля версий.
Существует достаточно большое количество систем управления версиями файлов: CVS, SVN, Bazzar, Git и т. д. Выбор той или иной системы определяется личными предпочтениями разработчика и его требованиями. Но с точки зрения пользователя все эти системы похожи и решают одну задачу: контроль и управление версиями файлов.
К слову, системы контроля версий могут работать не только с проектами, состоящими из исходников и бинарников, но и с документами и другими информационными объектами. Основные возможности, которые даёт любая такая системы:
Хранение версий программных артефактов(коды, документы)
Мгновенный доступ к любой версии
Обеспечение совместной работы программы
Система контроля версий состоит из серверной части, которая обслуживает Ваш репозиторий и клиентской части, которая помогает нам работать с нашей локальной копией.
Как только Вы внесли какие-либо изменения в локальную копию, и хотите, чтобы они были отражены в проекте в репозитории, выполняем операцию commit, при этом изменения, сделанные Вами в локальной копии отправляются в репозиторий. И, соответственно, когда вы хотите получить изменения, которые сделали другие люди в репозитории, вы делаете update, и всё то, что поменялось в репозитории относительно вашей локальной копии с учётом версии, применится к вашим файлам и катагогам.
История развития Subversion
Начнём с 70-х годов, когда придумали make. Тогда поняли, что бинарники можно было получать автоматически с использованием исходников. Получалось, что не надо было возиться с бинарниками, если при помощи make можно было без проблем их сделать. Хорошо, но а что мы можем сделать с исходниками? Постепенно разработчики заметили, что когда меняем исходники, мы не переписываем их полностью, а пытаемся дополнить то, что уже написано. Возникла идея – а не хранить ли нам эту разность между исходниками.
Так в 1972 году был придуман алгоритм diff, который вычисляет различие в строчках между двумя файлами. В этом же году появилась первая система контроля версий SCCS (Source Code Control System). К 80-му году развили систему SCCS и появилась первая однопользовательская система контроля версий RCS (Revision Control System) на основе алгоритма diff. Как она была устроена?
В каждом подкаталоге заводился некий подкаталог и в нём для каждого файла, который лежал в верхнем подкаталоге был файл, в котором находились все версии, сжатый с помощью алгоритма diff. Были 2 операции: добавить новую версию или вытащить старую. Всё это хранится локально. Не про какую совместную работу и речи не идёт. Также в 80-м году придумали утилиту patch. Допустим у нас есть версия 2 и разница diff между первой и второй версией. Именно, с помощью patch можно было откатиться к первой версии. Заметили, что эта утилита облегчает работу по сети, не надо пересылать кучу исходных файлов, мы можем получить разность, эту разность прислать всем остальным, остальные применят утилиту patch и перейдут к более новой версии.
Через 6 лет после этого начала появлятся CVS, сделанная на основе RCS. Она уже была многопользовательской. В то время сразу же стала распространённой и использовалась практически везде, несмотря на огромное количество других коммерческих систем. У неё были ряд преимуществ, например, можно работать с моделью “копирование-изменение-слияние”, которая считается более удобной, чем которая тогда использовалась на коммерческих продуктах модель: “блокировка, изменение, commit”.
В 2000 году компания Collabnet начала работу над новой системой контроля версий. Они хотели с одной стороны сохранить всё лучшее, что было в CVS, с другой стороны – исправить все ошибки, неудобства, присущие данной системе. В 2004 году была официально выпущена Collabnet. Стоит отметить один интересный факт: 31 августа 2001 года команда разработчиков перешла CVS на Subversion для управления собственным кодом! 200е года – это время появления альтернативного подхода: появились распределённые системы контроля версий: BitKeeper, GNU arch и др. Главное их отличие – у них не было ценрального репозитория, каждый workspace одновременно считается репозиторием. До 2009 года в использовании пользователями всех выигравал SVN, однако возросла популярность распределённых систем контроля версий, особенно GIT и Mercurial.