# ОПИ. Лабораторная работа 2. Отчёт по работе
## Задача 1
Иницилизировал репозиторий.
```
$ git init
Initialized empty Git repository in /mnt/c/Users/volodya/Desktop/ОПИ/lab2/.git/
```
Добавил файл .gitignore, чтобы устранить случайное попадание временный файлов работы программ на языке программирования питон (`**/__pycache__/**`)
```
$ git add .gitignore
$ git commit -m "add gitignore"
[master (root-commit) 868b5e7] add gitignore
1 file changed, 1 insertion(+)
create mode 100644 .gitignore
```
Добавил исходный код программы.
```
$ python3 main.py
Source
0 -1 3 -2 5
Result
0 3 5
```
Зафиксировал изменения, чтобы файлы программы попали по версионный контроль.
```
$ git add *.py
$ git commit -m "add source files"
[master 51c0085] add source files
2 files changed, 49 insertions(+)
create mode 100644 iarray.py
create mode 100644 main.py
```
Создал новую ветку для исправления ошибок, чтобы не нарушать работу стабильной версии.
```
$ git checkout -b fix
Switched to a new branch 'fix'
```
Добавил комментарии к функциям для удобства разработки и написал тест, на котором программа ведёт себя не верно.
```
$ git add .
$ git diff --cached
diff --git a/iarray.py b/iarray.py
index 63b016d..58f1a62 100644
--- a/iarray.py
+++ b/iarray.py
@@ -1,4 +1,8 @@
def form_array(arr, n):
+ # Функция удаляет из массива отрицательные элементы
+ # arr - старый массив
+ # n - длинна массива arr
+
new_arr = arr
i = 0
@@ -13,6 +17,10 @@ def form_array(arr, n):
def print_array(arr, n):
+ # Функция выводит содержимое массива в консоль
+ # arr - старый массив
+ # n - длинна массива arr
:...skipping...
diff --git a/iarray.py b/iarray.py
index 63b016d..58f1a62 100644
--- a/iarray.py
+++ b/iarray.py
@@ -1,4 +1,8 @@
def form_array(arr, n):
+ # Функция удаляет из массива отрицательные элементы
+ # arr - старый массив
+ # n - длинна массива arr
+
new_arr = arr
i = 0
@@ -13,6 +17,10 @@ def form_array(arr, n):
def print_array(arr, n):
+ # Функция выводит содержимое массива в консоль
+ # arr - старый массив
+ # n - длинна массива arr
+
i = 0
while (i < n):
print(arr[i], end = " ")
diff --git a/main.py b/main.py
index 3a33132..dbb9ab1 100644
--- a/main.py
+++ b/main.py
@@ -1,6 +1,8 @@
from iarray import *
def test_1():
+ # Данные для теста 1
+
```
Проверил выполнение программы. Нашёл дефект работы алгоритма. На вход программы подаётся `[-1, -1, -3, -3, 4]`, программа выдаёт `[-1, -3, 4]`, а должна `[4]`.
```
$ python3 main.py
Source
0 -1 3 -2 5
Result
0 3 5
Source 2
-1 -1 -3 -3 4
Result 2
-1 -3 4
```
Зафиксировал изменения, где добавил провалившийся тест.
```
$ git add .
$ git commit -m "add failed test"
[fix 11513ce] add failed test
2 files changed, 29 insertions(+)
```
Создал обсуждение #2 в ситеме Gitlab для коммита 11513cec92e81599709a3119ecf533612eeb3592 и сообщил о неверной работе алгоритма, обнаруженной во время тестирования программы.
Исправил ошибку. Проблема заключалась в том, что при удалении элемента в python сдвигались элементы на одну позицию, из-за чего программа проверяла не все элементы массива. Исправил, добавив декрементирование счётчика.
```
$ python3 main.py
Source
0 -1 3 -2 5
Result
0 3 5
Source 2
-1 -1 -3 -3 4
Result 2
4
$ git diff
diff --git a/iarray.py b/iarray.py
index 58f1a62..fcc73d9 100644
--- a/iarray.py
+++ b/iarray.py
@@ -10,6 +10,7 @@ def form_array(arr, n):
if (new_arr[i] < 0):
new_arr.pop(i)
n -= 1
+ i -= 1
i += 1
```
Зафиксировал внесенные правки в алгоритм работы программы, устраняющие проблему проблемму, опписанную в issue #2.
```
$ git add .
volodya@DESKTOP-OU40H30:/mnt/c/Users/volodya/Desktop/ОПИ/lab2$ git commit -m "fix error"
[fix 0cb85a9] fix error
1 file changed, 1 insertion(+)
```
Написал в обсуждение #2 об исправление ошибки и суть измененений.
Ревизию 0cb85a9a669027fbd33fdaf060e79745ea29635c перенес в мастер ветку. Конфликтов не возникло.
```
$ git checkout master
Switched to branch 'master'
volodya@DESKTOP-OU40H30:/mnt/c/Users/volodya/Desktop/ОПИ/lab2$ git merge fix
Updating 51c0085..0cb85a9
Fast-forward
iarray.py | 9 +++++++++
main.py | 21 +++++++++++++++++++++
2 files changed, 30 insertions(+)
```
Проанализировал историю изменений в репозитории. Конфликты не возникли, так как разработка велась линейно, т.е. не было внесено никаких изменений в мастер ветку во время работы с fix веткой.
```
$ git log --graph --oneline --all
* 0cb85a9 (HEAD -> master, fix) fix error
* 11513ce add failed test
* 51c0085 add source files
* 868b5e7 add gitignore
```
## Задача 2
Проанализируйте историю изменений в этом репозитории.
a. Сколько ветвей в нем есть? Как они называются?
2 ветви в репозитории:
- develop
- master
```
$ git branch
develop
* master
```
b. Сколько пользователей работали с этим репозиторием? Какие имена у этих пользователей?
2 пользователя работали над проектом:
- Minstrel
- Songster
```
$ git shortlog --email --all
Minstrel <minstrel@test> (4):
Beginning.
Couplet #1.
Couplet #3.
Couplet #4.
Songster <songster@test> (2):
Couplet #2.
Couplets #5 and #6.
```
c. Сколько файлов находится в репозитории? Кто и в какой последовательности вносил изменения в эти файлы?
```
$ git log --all --graph
* commit a52c4ec45e14d5b48095e1bc9c569f06f4838362 (develop)
| Author: Songster <songster@test>
| Date: Tue Mar 13 17:03:38 2018 +0300
|
| Couplets #5 and #6.
|
* commit 2c605117c7fe0fc2452e787b44519f212ce48bcc
| Author: Songster <songster@test>
| Date: Tue Mar 13 16:59:09 2018 +0300
|
| Couplet #2.
|
| * commit 1295f707870f0e1c13e9144b03cbef4bd10b52a7 (HEAD -> master)
| | Author: Minstrel <minstrel@test>
| | Date: Tue Mar 13 17:01:15 2018 +0300
| |
| | Couplet #4.
| |
| * commit 4fcbc684b3e8a22c172a218107bd669e0768b9f4
| | Author: Minstrel <minstrel@test>
| | Date: Tue Mar 13 17:00:30 2018 +0300
| |
| | Couplet #3.
| |
| * commit 122ee3aeeea5f70e6a933bf0f4afbaa436e57b25
|/ Author: Minstrel <minstrel@test>
| Date: Tue Mar 13 16:57:10 2018 +0300
|
| Couplet #1.
|
* commit f739d2e40e87639a7fbb1d2a1333944164f879be
Author: Minstrel <minstrel@test>
Date: Tue Mar 13 16:50:47 2018 +0300
Beginning.
```
Пробую объединить ветки. Возникла ошибка слияния, так как в обоих ветках произошли изменения в однихи тех же файлах с момента создания новой ветки.
```
$ git merge develop
Auto-merging song.txt
CONFLICT (content): Merge conflict in song.txt
Automatic merge failed; fix conflicts and then commit the result.
```
Устранил конфликт, расставив куплеты в нужном порядке, и зафиксировал изменения.
```
$ git status
On branch master
You have unmerged paths.
(fix conflicts and run "git commit")
(use "git merge --abort" to abort the merge)
Unmerged paths:
(use "git add <file>..." to mark resolution)
both modified: song.txt
no changes added to commit (use "git add" and/or "git commit -a")
$ git add .
$ git commit -m "merge song"
[master 8d668f1] merge song
```
## Задача 3
### Задача 3.1
Создал ветвь , поместил в него исходный код решенных задач,
отправил изменения в удаленный репозиторий, создал [merge request](https://git.iu7.bmstu.ru/iu7-cprog/iu7-cprog-labs-2020/iu7-cprog-labs-2020-larinvladimir/merge_requests/1).
### Задача 3.2
Получил копию удаленного репозитория и перешёл в рабочую директорию, чтобы продолжить разработку над проектом.
```
$ git clone gitlab@git.iu7.bmstu.ru:iu7-software-engineering/iu7-software-engineering-labs-2020/iu7-software-engineering-labs-2020-larinvladimir.git temp_work
Cloning into 'temp_work'...
remote: Enumerating objects: 20, done.
remote: Counting objects: 100% (20/20), done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 20 (delta 4), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (20/20), done.
Resolving deltas: 100% (4/4), done.
$ cd temp_work
```
На основе мастер ветки создал ветки lab_02_a и lab_02_b.
```
$ git branch lab_02_a
$ git branch lab_02_b
$ git branch
lab_02_a
lab_02_b
* master
```
Переключился на ветвь lab_02_a, чтобы имел возможно работать в этой ветке.
```
$ git checkout lab_02_a
Switched to branch 'lab_02_a'
```
Добавил под версионный контроль:
- текстовый файл lab_02_a.txt, который содержит текст “lab_02_a”;
- файл .gitignore для игнорирования исполняемых файлов.
```
$ git add .
$ git commit -m "add .gitignore and lab_02_a.txt"
[lab_02_a 505b828] add .gitignore and lab_02_a.txt
2 files changed, 3 insertions(+)
create mode 100644 .gitignore
create mode 100644 lab_02_a.txt
```
Отправил изменения в удаленный репозиторий, чтобы изменения сохранились на удаленном сервере.
```
$ git push --set-upstream origin lab_02_a
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (4/4), 357 bytes | 32.00 KiB/s, done.
Total 4 (delta 0), reused 0 (delta 0)
remote:
remote: To create a merge request for lab_02_a, visit:
remote: https://git.iu7.bmstu.ru/iu7-software-engineering/iu7-software-engineering-labs-2020/iu7-software-engineering-labs-2020-larinvladimir/merge_requests/new?merge_request%5Bsource_branch%5D=lab_02_a
remote:
To git.iu7.bmstu.ru:iu7-software-engineering/iu7-software-engineering-labs-2020/iu7-software-engineering-labs-2020-larinvladimir.git
* [new branch] lab_02_a -> lab_02_a
Branch 'lab_02_a' set up to track remote branch 'lab_02_a' from 'origin'.
```
Создал запрос на слияние !1 , чтобы произвести объединение мастер ветки и lab_02_a на удаленном репозитории. (к тому же нет доступа записи в мастер ветки)
Переключитесь на ветвь lab_02_b, чтобы вносить изменения в данную ветку.
```
$ git checkout lab_02_b
Switched to branch 'lab_02_b'
```
Добавил под версионный контроль
- текстовый файл lab_02_b.txt, который содержит текст “lab_02_b”;
- файл .gitignore для игнорирования объектных файлов
```
$ git add .
volodya@DESKTOP-OU40H30:/mnt/c/Users/volodya/Desktop/ОПИ/temp_work$ git commit -m "add .gitignore and lab_02_b.txt"
[lab_02_b a77ed3c] add .gitignore and lab_02_b.txt
2 files changed, 2 insertions(+)
create mode 100644 .gitignore
create mode 100644 lab_02_b.txt
```
Отправил изменения в удаленный репозиторий и создал merge request !2, чтобы объединить ветки lab_02_b и мастер ветки.
```
$ git push --set-upstream origin lab_02_b
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (4/4), 345 bytes | 31.00 KiB/s, done.
Total 4 (delta 0), reused 0 (delta 0)
remote:
remote: To create a merge request for lab_02_b, visit:
remote: https://git.iu7.bmstu.ru/iu7-software-engineering/iu7-software-engineering-labs-2020/iu7-software-engineering-labs-2020-larinvladimir/merge_requests/new?merge_request%5Bsource_branch%5D=lab_02_b
remote:
To git.iu7.bmstu.ru:iu7-software-engineering/iu7-software-engineering-labs-2020/iu7-software-engineering-labs-2020-larinvladimir.git
* [new branch] lab_02_b -> lab_02_b
Branch 'lab_02_b' set up to track remote branch 'lab_02_b' from 'origin'.
```
Преподаватель принял запрос на слияние !2. Объединил ветки в локальном репозитории, это нужно чтобы синхронизировать локальный и внешние репозитории.
```
$ git pull -a
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (1/1), done.
From git.iu7.bmstu.ru:iu7-software-engineering/iu7-software-engineering-labs-2020/iu7-software-engineering-labs-2020-larinvladimir
e2dbb60..bb17276 master -> origin/master
Your configuration specifies to merge with the ref 'refs/heads/lab_02_b'
from the remote, but no such ref was fetched.
$ git log --graph --all
* commit bb17276f434d1010af208762dc2c98fc1d997c69 (origin/master, origin/HEAD)
|\ Merge: e2dbb60 a77ed3c
| | Author: Nikulshina Tatiana <tnikulshina@gmail.com>
| | Date: Tue Feb 25 21:38:36 2020 +0300
| |
| | Merge branch 'lab_02_b' into 'master'
| |
| | Запрос на объединение B. (примите его, пожалуйста)
| |
| | See merge request iu7-software-engineering/iu7-software-engineering-labs-2020/iu7-software-engineering-labs-2020-larinvladimir!2
| |
| * commit a77ed3c2bd9b85893bd127fe61702e14e461483c (HEAD -> lab_02_b, origin/lab_02_b)
|/ Author: Volodya Larin <denixed@ya.ru>
| Date: Sat Feb 22 00:35:22 2020 +0300
|
| add .gitignore and lab_02_b.txt
|
| * commit 505b8282f50844bd3615a986c1b8f0767126781d (origin/lab_02_a, lab_02_a)
|/ Author: Volodya Larin <denixed@ya.ru>
| Date: Sat Feb 22 00:28:39 2020 +0300
|
| add .gitignore and lab_02_a.txt
|
* commit e2dbb60cbaedbc6187b02bf8b27c8fbb5c99ce8b (master)
Author: Olenev Anton <aolenev@bmstu.ru>
Date: Fri Feb 7 21:24:39 2020 +0300
initial commit
* commit 1b3767a628e47d3463a6c99a70063187e498d15a (origin/lab1)
| Author: Larin Vladimir <810-lvn19u232@users.noreply.git.iu7.bmstu.ru>
| Date: Sat Feb 15 13:07:09 2020 +0300
|
| Delete readme.md. Replace it in gitlab wiki
|
* commit 91da73bcc9418c6ada3d5d350932d617dda7dc6d
| Author: Vladimir Larin <denixed@ya.ru>
| Date: Thu Feb 13 17:27:03 2020 +0300
|
| add readme.md
|
* commit 14a923bf1bce67e2b9fc1b3283eb0d8a7d977410
| Author: Vladimir Larin <denixed@ya.ru>
| Date: Fri Feb 7 14:27:58 2020 +0300
|
| fix mistake in test 2
|
* commit 5947b7e346ed7a119b0c568b2286a287c65bc0bc
| Author: Vladimir Larin <denixed@ya.ru>
| Date: Fri Feb 7 14:25:53 2020 +0300
|
| add test
|
* commit 14454a31a2f3691da6726473f97b1471070055bd
| Author: Vladimir Larin <denixed@ya.ru>
| Date: Fri Feb 7 14:15:24 2020 +0300
|
| Inital version of program was added.
|
* commit f8ed4a4798d5b639443987ca22161edfa4e2e6c6
Author: Vladimir Larin <denixed@ya.ru>
Date: Fri Feb 7 14:14:25 2020 +0300
.gitinore was added.
```
Сливаю ветки мастер и lab_02_a. Возник конфликт. Сливаю именно master -> lab_02_a, так как у разработчика нет доступа к удалённой мастер ветки, а конфликт устранить нужно.
```
$ git merge master
Auto-merging .gitignore
CONFLICT (add/add): Merge conflict in .gitignore
Automatic merge failed; fix conflicts and then commit the result.
```
Устранил конфликт, объединив две версии файла `.gitignore`.
```
$ git diff
diff --cc .gitignore
index 1530978,9cc18da..0000000
mode 100644,100644..100755
--- a/.gitignore
+++ b/.gitignore
@@@ -1,1 -1,2 +1,3 @@@
- *.o
++*.o
+ *.exe
+ *.out
```
Зафиксировал изменения, чтобы подготовить к загрузке на удаленный сервер.
```
$ git add .
$ git commit -m "fix conflict"
[lab_02_a fe2e761] fix conflict
```
Отправил измения на удалённые сервер, чтобы устранить конфликт в запросе на слияние !1
```
$ git push origin lab_02_a
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 383 bytes | 76.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote:
remote: View merge request for lab_02_a:
remote: https://git.iu7.bmstu.ru/iu7-software-engineering/iu7-software-engineering-labs-2020/iu7-software-engineering-labs-2020-larinvladimir/merge_requests/1
remote:
To git.iu7.bmstu.ru:iu7-software-engineering/iu7-software-engineering-labs-2020/iu7-software-engineering-labs-2020-larinvladimir.git
505b828..fe2e761 lab_02_a -> lab_02_a
```
### Задача 3.3
Получил копию удаленного репозитория и перешел в рабочую директорию.
```
$ git clone gitlab@git.iu7.bmstu.ru:iu7-software-engineering/iu7-software-engineering-labs-2020/iu7-software-engineering-labs-2020-larinvladimir.git temp-work-2
Cloning into 'iu7-software-engineering-labs-2020-larinvladimir'...
remote: Enumerating objects: 32, done.
remote: Counting objects: 100% (32/32), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 32 (delta 5), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (32/32), 4.51 KiB | 577.00 KiB/s, done.
Resolving deltas: 100% (5/5), done.
$ cd temp-work-2
```
На основе мастер ветки создал ветку lab_02_c и переключился на неё.
```
$ git checkout -b lab_02_c
Switched to a new branch 'lab_02_c'
```
Добавил под версионный контроль текстовый файл lab_02_c. Текстовый файл содержит абзац #1 текста.
```
$ git add lab_02_c.txt
volodya@DESKTOP-OU40H30:/mnt/c/Users/volodya/Desktop/ОПИ/temp-work-2$ git diff --cached
diff --git a/lab_02_c.txt b/lab_02_c.txt
new file mode 100644
index 0000000..2b4bcb5
--- /dev/null
+++ b/lab_02_c.txt
@@ -0,0 +1,9 @@
+// Абзац #1
+Вот оно какое, наше лето,
+Лето яркой зеленью одето,
+Лето жарким солнышком согрето,
+Дышит лето ветерком.
+Ля-ля-ля ля-ля-ля,
+Ля-ля-ля-ля-ля ля-ля-ля-ля.
+Ля-ля-ля ля-ля-ля,
+Ля-ля-ля-ля-ля ля-ля!
$ git commit -m "add first couplet"
[lab_02_c 6d94ad3] add first couplet
1 file changed, 9 insertions(+)
create mode 100644 lab_02_c.txt
```
Отправил изменения в удалённый репозиторий, чтобы сохранить изменения на удаленный сервер.
```
$ git push --set-upstream origin lab_02_c
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 422 bytes | 211.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote:
remote: To create a merge request for lab_02_c, visit:
remote: https://git.iu7.bmstu.ru/iu7-software-engineering/iu7-software-engineering-labs-2020/iu7-software-engineering-labs-2020-larinvladimir/merge_requests/new?merge_request%5Bsource_branch%5D=lab_02_c
remote:
To git.iu7.bmstu.ru:iu7-software-engineering/iu7-software-engineering-labs-2020/iu7-software-engineering-labs-2020-larinvladimir.git
* [new branch] lab_02_c -> lab_02_c
Branch 'lab_02_c' set up to track remote branch 'lab_02_c' from 'origin'.
```
Добавил в файл абзац #3 текста, зафиксировал изменения в локальном репозитории без отправки (по условию задачи) в удаленный репозиторий.
```
$ git diff
diff --git a/lab_02_c.txt b/lab_02_c.txt
--- a/lab_02_c.txt
+++ b/lab_02_c.txt
@@ -7,3 +7,12 @@
Ля-ля-ля-ля-ля ля-ля-ля-ля.
Ля-ля-ля ля-ля-ля,
Ля-ля-ля-ля-ля ля-ля!
+// Абзац #3
+Мы покрыты бронзовым загаром,
+Ягоды в лесу горят пожаром.
+Лето это жаркое недаром,
+Лето — это хорошо!
+Ля-ля-ля ля-ля-ля,
+Ля-ля-ля-ля-ля ля-ля-ля-ля.
+Ля-ля-ля ля-ля-ля,
+Ля-ля-ля-ля-ля ля-ля!
$ git commit -a -m "add third couplet"
[lab_02_c c7b3ca5] add third couplet
1 file changed, 9 insertions(+)
```
Склонировал удаленный репозиторий в другую директорию, чтобы сыметировать работу из разных мест, например из стен университета и комнаты общежития)) .
```
$ git clone gitlab@git.iu7.bmstu.ru:iu7-software-engineering/iu7-software-engineering-labs-2020/iu7-software-engineering-labs-2020-larinvladimir.git temp-work-3
Cloning into 'temp-work-3'...
remote: Enumerating objects: 35, done.
remote: Counting objects: 100% (35/35), done.
remote: Compressing objects: 100% (26/26), done.
remote: Total 35 (delta 6), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (35/35), 4.87 KiB | 711.00 KiB/s, done.
Resolving deltas: 100% (6/6), done.
$ cd temp-work-3
```
Переключился на ветку lab_02_c, чтобы имел возможность вносить изменения в эту ветку.
```
$ git checkout lab_02_c
Branch 'lab_02_c' set up to track remote branch 'lab_02_c' from 'origin'.
Switched to a new branch 'lab_02_c'
```
Добавил в текстовый файл абзац #2, выполнил фиксацию изменений, после чего отправил изменения в удаленный репозиторий.
```
$ git diff
diff --git a/lab_02_c.txt b/lab_02_c.txt
index 2b4bcb5..6115517 100644
--- a/lab_02_c.txt
+++ b/lab_02_c.txt
@@ -7,3 +7,15 @@
Ля-ля-ля-ля-ля ля-ля-ля-ля.
Ля-ля-ля ля-ля-ля,
Ля-ля-ля-ля-ля ля-ля!
+// Абзац #2
+На зеленой солнечной опушке
+Прыгают зеленые лягушки
+И танцуют бабочки-подружки,
+Расцветает все кругом.
+Мы в дороге с песенкой о лете,
+Самой лучшей песенкой на свете,
+Мы в лесу ежа, быть может, встретим,
+Хорошо, что дождь прошел.
+Ля-ля-ля ля-ля-ля,
+Ля-ля-ля ля-ля-ля-ля.
+
$ git commit -a -m "add second couplet"
[lab_02_c 1b1b66c] add second couplet
1 file changed, 12 insertions(+)
$ git push
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 613 bytes | 306.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote:
remote: To create a merge request for lab_02_c, visit:
remote: https://git.iu7.bmstu.ru/iu7-software-engineering/iu7-software-engineering-labs-2020/iu7-software-engineering-labs-2020-larinvladimir/merge_requests/new?merge_request%5Bsource_branch%5D=lab_02_c
remote:
To git.iu7.bmstu.ru:iu7-software-engineering/iu7-software-engineering-labs-2020/iu7-software-engineering-labs-2020-larinvladimir.git
6d94ad3..1b1b66c lab_02_c -> lab_02_c
```
Перешёл в первую копию удаленного репозитория, чтобы продолжить иметацию работы из разных мест. Попытался отправить изменения (изменения уже были зафиксированы). Произошла ошибка, потому что уже были внесены изменения в удалённом репозитории.
```
$ git push
To git.iu7.bmstu.ru:iu7-software-engineering/iu7-software-engineering-labs-2020/iu7-software-engineering-labs-2020-larinvladimir.git
! [rejected] lab_02_c -> lab_02_c (fetch first)
error: failed to push some refs to 'gitlab@git.iu7.bmstu.ru:iu7-software-engineering/iu7-software-engineering-labs-2020/iu7-software-engineering-labs-2020-larinvladimir.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
```
Устраняю конфликт, расставив обзацы в правильном порядке. Фиксириую изменения и отправляю их в удалённый репозиторий, чтобы сохранить изменения на удаленном сервере.
```
$ git pull
Auto-merging lab_02_c.txt
CONFLICT (content): Merge conflict in lab_02_c.txt
Automatic merge failed; fix conflicts and then commit the result.
$ git diff
diff --cc lab_02_c.txt
index 0921ea4,6115517..0000000
mode 100644,100644..100755
--- a/lab_02_c.txt
+++ b/lab_02_c.txt
@@@ -7,12 -7,15 +7,24 @@@
Ля-ля-ля-ля-ля ля-ля-ля-ля.
Ля-ля-ля ля-ля-ля,
Ля-ля-ля-ля-ля ля-ля!
+ // Абзац #2
+ На зеленой солнечной опушке
+ Прыгают зеленые лягушки
+ И танцуют бабочки-подружки,
+ Расцветает все кругом.
+ Мы в дороге с песенкой о лете,
+ Самой лучшей песенкой на свете,
+ Мы в лесу ежа, быть может, встретим,
+ Хорошо, что дождь прошел.
+ Ля-ля-ля ля-ля-ля,
+ Ля-ля-ля ля-ля-ля-ля.
+
+// Абзац #3
+Мы покрыты бронзовым загаром,
+Ягоды в лесу горят пожаром.
+Лето это жаркое недаром,
+Лето — это хорошо!
+Ля-ля-ля ля-ля-ля,
+Ля-ля-ля-ля-ля ля-ля-ля-ля.
+Ля-ля-ля ля-ля-ля,
- Ля-ля-ля-ля-ля ля-ля!
++Ля-ля-ля-ля-ля ля-ля!
$ git commit -a -m "fix merge confilect"
[lab_02_c 057960d] fix merge confilect
$ git commit -a -m "fix merge conflict" --amend
[lab_02_c d4456c1] fix merge conflict
Date: Thu Feb 27 20:46:30 2020 +0300
$ git push
Counting objects: 6, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 704 bytes | 352.00 KiB/s, done.
Total 6 (delta 4), reused 0 (delta 0)
remote:
remote: To create a merge request for lab_02_c, visit:
remote: https://git.iu7.bmstu.ru/iu7-software-engineering/iu7-software-engineering-labs-2020/iu7-software-engineering-labs-2020-larinvladimir/merge_requests/new?merge_request%5Bsource_branch%5D=lab_02_c
remote:
To git.iu7.bmstu.ru:iu7-software-engineering/iu7-software-engineering-labs-2020/iu7-software-engineering-labs-2020-larinvladimir.git
1b1b66c..d4456c1 lab_02_c -> lab_02_c
```
Создал запрос на слияние !3, чтобы перенести изменения в мастер ветку.