
4-й семестр / ЛК01
.pdf
Технологии разработки программных приложений
Для 2-го курса, групп ИКБО-04-05-14-15-22-19 ИНБО-05-06-08-09-19
Торхов Алексей Евгеньевич, ст.пр., atorkhov@gmail.com

Содержание курса
●8 лекций
–Тематики:
●Системы контроля версий и работа с кодом
●Системы сборки
●Управление конфигурациями
●Виртуализация & контейнеризация
●Практикум:
–4 практических работы
–Групповой проект
–Коллоквиум в середине семестра
–25 баллов за все
●Экзамен
–50 баллов

Система управления версиями (от англ. Version Control System, VCS)
программное обеспечение для облегчения работы с изменяющейся информацией

Литература по текущей теме
●Git Book: https://git-scm.com/book/ru/v2 Практика:
●https://githowto.com/ru
●https://learngitbranching.js.org/

Задачи системы контроля версий
●фиксация изменений для отслеживаемых, добавляемых или удаляемых файлов исходного кода в рабочем дереве проекта;
●хранение истории зафиксированных изменений исходного кода;
●сравнение и поиск ранее зафиксированных изменений исходного кода;
●объединение наработок и экспериментальных изменений, ведущихся различными разработчиками над одним исходным кодом.
Цепочка зафиксированных изменений исходного кода называется историей программного проекта. История программного проекта хранится в репозитории программного проекта.

Локальные системы контроля версий
● Пример:
RCS (начало 1980-х)

Централизованные системы контроля версий
Примеры: ● CVS (1990)
● Subversion / SVN (2000)

Распределённые системы контроля версий
Примеры:
●Git (2005)
●Mercurial (2005)
●Bazaar (2005-2016)
●Darcs (2003)

Базовые понятия
●Репозиторий (repository, repo) — место, где СКВ хранит свои метаданные и базу данных объектов проекта
●Локальный репозиторий — репозиторий, расположенный на локальном компьютере разработчика в каталоге. Именно в нём происходит разработка и фиксация изменений, которые отправляются на удалённый репозиторий.
●Удалённый репозиторий — репозиторий, находящийся на удалённом сервере. Это общий репозиторий, в который
приходят все изменения и из которого забираются все обновления.
●Ветка (Branch) — это параллельная версия репозитория. Она включена в этот репозиторий, но не влияет на главную версию, тем самым позволяя свободно работать в параллельной. Когда вы внесли нужные изменения, то вы можете объединить их с главной версией.

Термины
●Amend
●Blame
●check-in, commit, submit
●check-out, clone
●Conflict
●graft, backport, cherry-picking, transplant
●head, trunk
●merge, integration
●pull, update
●push
●Rebase
●Shelving, stash
●tag, label
●trunk, mainline, master
●update, sync, switch
●working copy