Санкт-Петербургский Национальный Исследовательский Университет
Информационных Технологий, Механики и Оптики
ФКТиУ, кафедра Информатики и прикладной математики
Лабораторная работа №2
по дисциплине
«Основы программной инженерии»
Вариант № 000
Выполнил: Студент группы P3119
Преподаватель: тьютор кафедры ВТ
Санкт-Петербург
2017 г.
Оглавление
Задание: 1
Git 1
Svn 3
Вывод 4
Задание:

Сконфигурировать в своём домашнем каталоге репозитории svn и git и загрузить в них начальную ревизию файлов с исходными кодами (в соответствии с выданным вариантом).
Воспроизвести последовательность команд для систем контроля версий svn и git, осуществляющих операции над исходным кодом, приведённые на блок-схеме.
При составлении последовательности команд необходимо учитывать следующие условия:
Цвет элементов схемы указывает на пользователя, совершившего действие (красный - первый, синий - второй).
Цифры над узлами - номер ревизии. Ревизии создаются последовательно.
Необходимо разрешать конфликты между версиями, если они возникают.
Git
№R | User | Commands |
0 | 1 | git config --global user. name "Zavodov User1" git config --global user. email "*****@***com" # переходим в директорию проекта git init git add. git commit - m "r0" |
1 | 2 | git config --global user. name "Zavodov User2" git config --global user. email "andrei. *****@***ru" git checkout - b branch2 git add. git commit - m "r1" |
2 | 1 | git config --global user. name "Zavodov User1" git config --global user. email "*****@***com" git checkout master git add. git commit - m "r2" |
3 | 2 | git config --global user. name "Zavodov User2" git config --global user. email "andrei. *****@***ru" git checkout branch2 git add. git commit - m "r3" |
4 | 1 | git config --global user. name "Zavodov User1" git config --global user. email "*****@***com" git checkout master git add. git commit - m "r4" |
5 | 2 | git config --global user. name "Zavodov User2" git config --global user. email "andrei. *****@***ru" git checkout - b branch3 git add. git commit - m "r5" |
6 | 2 | git checkout branch2 git add. git commit - m "r6" |
7 | 2 | git checkout branch3 git add. git commit - m "r7" |
8 | 1 | git config --global user. name "Zavodov User1" git config --global user. email "*****@***com" git checkout master git add. git commit - m "r8" |
9 | 2 | git config --global user. name "Zavodov User2" git config --global user. email "andrei. *****@***ru" git checkout branch3 git add. git commit - m "r9" |
10 | 2 | git add. git commit - m "r10" |
11 | 2 | git add. git commit - m "r11" |
12 | 2 | git add. git commit - m "r12" |
13 | 2 | git checkout branch2 git merge --no-ff --no-commit branch3 git status #разрешаем конфликты в файлах, о которых говорит git status git add. git commit - m "r13" |
14 | 1 | git config --global user. name "Zavodov User1" git config --global user. email "*****@***com" git checkout master git merge --no-ff --no-commit branch2 git status #разрешаем конфликты в файлах, о которых говорит git status git add. git commit - m "r14" |
Svn
№R | User | Commands |
- | - | #переходим в директорию для хранилищ svnadmin create repo mkdir wd cd wd svn checkout file:///F:/svn/repo. |
0 | 1 | #копируем в рабочую директорию файлы из ревизии 0 svn add * svn commit - m r0 --username=user1 |
1 | 2 | svn copy file:///F:/svn/repo/trunk file:///F:/svn/repo/branches/branch2 - m "New branch2" svn switch file:///F:/svn/repo/branches/branch2 #кидаем файлы из ревизии 1 svn add * --force svn commit - m r1 --username=user2 |
2 | 1 | svn switch file:///F:/svn/repo/trunk #кидаем файлы из ревизии 2 svn add * --force svn commit - m r2 --username=user1 |
3 | 2 | svn switch file:///F:/svn/repo/branches/branch2 #кидаем файлы из ревизии 3 svn add * --force svn commit - m r3 --username=user2 |
4 | 1 | svn switch file:///F:/svn/repo/trunk #кидаем файлы из ревизии 4 svn add * --force svn commit - m r4 --username=user1 |
5 | 2 | svn copy file:///F:/svn/repo/trunk file:///F:/svn/repo/branches/branch3 - m "New branch3" svn switch file:///F:/svn/repo/branches/branch3 #кидаем файлы из ревизии 5 svn add * --force svn commit - m r5 --username=user2 |
6 | 2 | svn switch file:///F:/svn/repo/branches/branch2 #кидаем файлы из ревизии 6 svn add * --force svn commit - m r6 --username=user2 |
7 | 2 | svn switch file:///F:/svn/repo/branches/branch3 #кидаем файлы из ревизии 7 svn add * --force svn commit - m r7 --username=user2 |
8 | 1 | svn switch file:///F:/svn/repo/trunk #кидаем файлы из ревизии 8 svn add * --force svn commit - m r8 --username=user1 |
9 | 2 | svn switch file:///F:/svn/repo/branches/branch3 #кидаем файлы из ревизии 9 svn add * --force svn commit - m r9 --username=user2 |
10 | 2 | #кидаем файлы из ревизии 10 svn add * --force svn commit - m r10 --username=user2 |
11 | 2 | #кидаем файлы из ревизии 11 svn add * --force svn commit - m r11 --username=user2 |
12 | 2 | #кидаем файлы из ревизии 12 svn add * --force svn commit - m r12 --username=user2 |
13 | 2 | svn switch file:///F:/svn/repo/branches/branch2 svn merge file:///F:/svn/repo/branches/branch3 #решаем конфликты #кидаем файлы из ревизии 13 svn add * --force svn commit - m r13 --username=user2 |
14 | 1 | svn switch file:///F:/svn/repo/trunk svn merge file:///F:/svn/repo/branches/branch2 #решаем конфликты #кидаем файлы из ревизии 14 svn add * --force svn commit - m r14 --username=user1 |
Вывод
В ходе выполнения данной лабораторной работы я познакомился с различными системами контроля версий. Изучил их команды для работы с данными, научился создавать ветки и разрешать конфликты. Убедился, что системы контроля версий сильно упрощают жизнь при разработки крупных программных продуктов.


