Гость
Форумы / Управление процессом разработки ИС [игнор отключен] [закрыт для гостей] / SVN. Слияние ревизий из одной ветки / 9 сообщений из 9, страница 1 из 1
10.08.2017, 08:07
    #39503050
TopCore
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SVN. Слияние ревизий из одной ветки
Здравствуйте!
Есть следующая ситуация: разработка происходит в одной ветке. (Вообще вся разработка велась одним человеком). На одном из этапов я стянул к себе всё необходимое и начал вносить изменения и сделал свои комиты. Полагал, что сотрудник мои изменения возьмёт к себе и будет комитить свои изменения и при этом будут и мои изменения в его ревизиях. Но не знаю, как так вышло, что в его комитах/ревизиях нет моих наработок. Вот так выглядят ревизии последние сейчас:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Ревизия | Автор   | Примечание
--------|---------|-----------
415     | Coder_1 |
396     | Coder_1 |
373     | Coder_1 |
364     | Coder_1 |
204     | Coder_1 | Соответственно выше их нет тоже
197     | Coder_1 | Комит первого кодера без моих наработок
141     | Coder_2 | Мой последний комит
31      | Coder_2 | 
30      | Coder_2 | 
26      | Coder_2 | 
21      | Coder_2 | 
20      | Coder_2 | Тут я втиснулся в разработку первым комитом
14      | Coder_1 | 

1. Как мне слить воедино 141 ревизию с 415 ревизией? 2. Нужно ли мне 141 ревизию сливать только с одной 415 или с областью 197-415?
Спасибо заранее
...
Рейтинг: 0 / 0
10.08.2017, 09:21
    #39503082
Alexander A. Sak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SVN. Слияние ревизий из одной ветки
Diff первого коммита первого кодера после твоих изменений должен показать как так получилось, что изменения исчезли. Что-то вроде
Код: powershell
1.
svn diff -c 197


Скорее всего, был конфликт, и первый кодер сказал, что надо брать только его изменения. В diff-е должны быть видны удаления твоих изменений.
...
Рейтинг: 0 / 0
10.08.2017, 09:28
    #39503090
Alexander A. Sak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SVN. Слияние ревизий из одной ветки
Как слить.
Встречал любителей svn merge. Я предпочитаю руками, чтобы понимать что же именно делаю. Но зависит от размеров диффа.
Можно попробовать сделать svn diff -r 20:141 и потом patch на текущее состояние. Будет вроде как руками изменения внес, но вроде как и автоматизированно.
...
Рейтинг: 0 / 0
10.08.2017, 10:17
    #39503160
TopCore
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SVN. Слияние ревизий из одной ветки
Alexander A. SakМожно попробовать сделать svn diff -r 20:141 и потом patch на текущее состояние.При этом нужно, чтобы активной была ревизия 415? С patch ещё не работал. Буду читать о нём. Спасибо.

Что ещё интересно: активна сейчас ревизия 415 и всё-таки некоторые мои файлы из ревизии 141 видны. Т.е. в некоторых файлах кодер_1 проигнорировал и затёр мои наработки, а те файлы, в которых он не кодил, нормально залились при апдейте к нему.
...
Рейтинг: 0 / 0
10.08.2017, 11:45
    #39503229
Alexander A. Sak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SVN. Слияние ревизий из одной ветки
Конечно надо работать в HEAD. Ревизия 415 в нашем случае.
Если часть изменений осталась, то вероятность того, что diff покажет удаление первым кодером, равно 100%. Минус какая-нибудь дикость типа удачно сломанной файловой системы.

Сталкивался с такими проблемами при разработке хранимых процедур на Оракле и Firebird. У каждого свой экземпляр БД, каждый варится сам по себе. Когда надо выложить в VCS, берут из своей базы и коммитят не глядя. Что там было до этого теряется. Или наоборот. Берут из VCS и теряют свои наработки.
Пока работает один человек, с таким не сталкиваются. Появляется второй -- здравствуй тема на sql.ru.
...
Рейтинг: 0 / 0
10.08.2017, 12:13
    #39503254
TopCore
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SVN. Слияние ревизий из одной ветки
Alexander A. Sak, посмотрел я diff`ом ревизию 197: действительно были удалены мои наработки. Теперь я по Вашему совету создал diff файл с помощью команды:
Код: plaintext
 $ svn diff -r 14:141 > project_r14_141_for_patch.diff 

У Вас было в посте выше написано от 20 ревизии, но тогда не видны полные мои изменения относительно 14 ревизии. Поэтому взял диапазон 14:141. Теперь буду тестировать/применять patch и устранять конфликты.
...
Рейтинг: 0 / 0
10.08.2017, 15:35
    #39503475
TopCore
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SVN. Слияние ревизий из одной ветки
Открываю Tortoise Merge, выбираю пункт Apply..., указываю пути к patch-файлу и проекту, выводится список всех файлов, которые необходимо пропатчить и среди них 4 файла с состоянием "failed hunks: 3". Это значит, что файлы он не может пропатчить?
...
Рейтинг: 0 / 0
10.08.2017, 16:16
    #39503531
Alexander A. Sak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SVN. Слияние ревизий из одной ветки
Похоже на то. Тут уже надо по месту разбираться. Я, как уже писал, обычно делаю все руками.
Может, там код настолько изменился, что старые модификации не могут быть применены.
...
Рейтинг: 0 / 0
10.08.2017, 16:45
    #39503575
TopCore
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SVN. Слияние ревизий из одной ветки
Alexander A. Sak, к счастью моего кода немного пока и многие файлы заапдейтились кодером_1 и он их не менял. Я начал уже ручками всё необходимое в порядок приводить.
Спасибо Вам большое за помощь. Хоть немного больше узнал сегодня об SVN.
...
Рейтинг: 0 / 0
Форумы / Управление процессом разработки ИС [игнор отключен] [закрыт для гостей] / SVN. Слияние ревизий из одной ветки / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]