реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Объединение двух GIT репозиториев
Neborak
сообщение Dec 21 2015, 08:42
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 13-04-09
Пользователь №: 47 609



Предыстория такова: работал с svn, коммитил туда проект. Потом перешел на git, стал коммитить на другой сервер.
Теперь смог затянуть из svn коммиты в git репозиторий. Таким образом получил 2 git репозитория, один начало проекта, второй - конец. Попробовал слить конец первого с началом второго, нарешал кучу конфликтов, но репозитории так и не объединились.
Может кто сталкивался, как объединить репозитории?
Go to the top of the page
 
+Quote Post
Le Fou
сообщение Dec 21 2015, 10:25
Сообщение #2


Частый гость
**

Группа: Validating
Сообщений: 83
Регистрация: 22-09-07
Из: Санкт-Петербург, Россия
Пользователь №: 30 747



Цитата(Neborak @ Dec 21 2015, 11:42) *
Может кто сталкивался, как объединить репозитории?


Сам не сталкивался, это не поможет? Ну вдруг вы забыли посмотреть на Stackoverflow, заранее прошу прощения если что.

http://stackoverflow.com/questions/1425892...it-repositories

или это
http://stackoverflow.com/questions/1425892...it-repositories

кстати, а что конкретно вас побудило к переходу на Git?

Сообщение отредактировал Le Fou - Dec 21 2015, 10:31
Go to the top of the page
 
+Quote Post
Neborak
сообщение Dec 21 2015, 11:31
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 13-04-09
Пользователь №: 47 609



Цитата(Le Fou @ Dec 21 2015, 14:25) *
кстати, а что конкретно вас побудило к переходу на Git?

Удобство работы с ветками и слепок сервера на локальной машине.
Первое удобно для мелких экспериментов, что бы не засорять директорию проекта.
Второе удобно при работе в "поле", в любой момент доступны все коммиты с сервера без подключения к серверу.
Сейчас у нас есть огромный проект (по факту это движек, который конфигурируется с помощью кучи дефайнов под конкретную задачу), работаем над ним втроем. Двое вбивают конфигурацию под свою задачу, третий прибивает какой-то баг, как пример. Каждый работает в своей ветке, когда приходит время, то наработки сливаются в основную стабильную ветку. Кода бывает очень много в разных местах, как это сделать с помощью других инструментов даже не могу представить.
За ссылку спасибо, вроде так и делал. Попробую еще раз.

Go to the top of the page
 
+Quote Post
Le Fou
сообщение Dec 21 2015, 13:04
Сообщение #4


Частый гость
**

Группа: Validating
Сообщений: 83
Регистрация: 22-09-07
Из: Санкт-Петербург, Россия
Пользователь №: 30 747



Я просто, хоть и переключился на Git вслед за командой, не вкурил пока в чем цимес.

Цитата(Neborak @ Dec 21 2015, 14:31) *
Удобство работы с ветками
Первое удобно для мелких экспериментов, что бы не засорять директорию проекта.

ну.. пожалуй.
Цитата
Второе удобно при работе в "поле", в любой момент доступны все коммиты с сервера без подключения к серверу.


Типа, в поле нужно посмотреть кто где налажал десять коммитов тому назад, пофиксить, и при этом нет доступа к серверу? наверное бывает, но в целом плохая ситуация.
Цитата
Каждый работает в своей ветке, когда приходит время, то наработки сливаются в основную стабильную ветку. Кода бывает очень много в разных местах, как это сделать с помощью других инструментов даже не могу представить.


Проблема, видимо, в том что сервер может быть недоступен. Пока репа на связи -- в SVN мне кажется это ничуть не сложнее.

Занятно, что главным преимуществом в эпоху облаков и прочего оказалась отвязка от сервера ))
Go to the top of the page
 
+Quote Post
Neborak
сообщение Dec 21 2015, 13:56
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 13-04-09
Пользователь №: 47 609



В общем получилось с помощью Rebase.
Большой проблемой стало то, что первый коммит в новом репозитории сделан с правками, т.е. не соответствовал последнему коммиту в старом. Из-за этого было много конфликтов.
Выкрутился так, старый клонировал, сделал в нем состояние, которое было как в первом коммите нового репозитория, сделал коммит и принудительно указал промежуточную дату в диапазоне между последним в старом и первым в новом репозитории. Таким образом получил общего предка.
А дальше git все сделал сам.

По поводу gitа, первое преимущество ощутил, что ну нужно сидеть что-то синхронизировать с сервером, пока не сделаешь push все коммиты остаются локальными, только сделанную часть работы выкладываешь на сервер или ту, которую нужно перенести на ноутбук.
Второе, работаешь над новым функционалом, неделя-две, прибегают, видите ли, светодиод хотят что бы не мигал, а светился постоянно. Делаю коммит, переключаюсь в последний релиз (метки тоже удобно использовать), создаю свою ветку, правлю, отдаю прошивку, жду результат, если все ок, то сливаю изменения в мастер.
В SVN без подключения к серверу я бы ничего этого не сделал бы.



Go to the top of the page
 
+Quote Post
dxp
сообщение Dec 22 2015, 10:24
Сообщение #6


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (Le Fou @ Dec 21 2015, 19:04) *
не вкурил пока в чем цимес.

Ветки! И всё, что они дают. А именно: возможность в любой момент делать что угодно без опасности потерять или сломать имеющееся. Удобство переключения состояния проекта в текущей рабочей директории - на svn ветки - это директории, соответственно, при переходе к ветке, нужно менять рабочую директорию. Т.к. репозиторий локальный, то все операции происходят очень быстро. Вот хороший пример методологии использования, рекомендую.

По поводу удалённого сервера хочется предостеречь: поначалу кажется (особенно, когда довлеет опыт работы с VCS с центральным репозиторием), что распределённая система - это просто куча клонов (слепков, копий) одного и того же репозитория. На самом деле это не так. Удалённый репозиторий - это не средство для резервного копирования, удалённый репозиторий - это способ публикации и обмена данными. На удалённый сервер пушатся не все локальные ветки, а только общие и публичные. Резервное копирование - это отдельная тема, и делается оно своими способами.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Neborak
сообщение Dec 23 2015, 09:05
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 13-04-09
Пользователь №: 47 609



Цитата(dxp @ Dec 22 2015, 14:24) *
По поводу удалённого сервера хочется предостеречь: поначалу кажется (особенно, когда довлеет опыт работы с VCS с центральным репозиторием), что распределённая система - это просто куча клонов (слепков, копий) одного и того же репозитория. На самом деле это не так. Удалённый репозиторий - это не средство для резервного копирования, удалённый репозиторий - это способ публикации и обмена данными. На удалённый сервер пушатся не все локальные ветки, а только общие и публичные. Резервное копирование - это отдельная тема, и делается оно своими способами.

А удавалось работать не через сервер, а с коллегой напрямую, как пишут "когда двое людей работают над одной и той же проблемой они могу брать наработки друг у друга"?
Я такую фишку пробовал реализовать для синхронизации с ноутбуком.
Шарил папку с проектом, но на ноут можно клонировать и фэтчить, запушить на основной нельзя.
Или нужно, например, на ноуте клонировать, сделать правки, сделать коммит, а на основном компьютере подключить еще один репо со ссылкой на ноут? Не нравится, что нужно шарить папку с проектом.
Или без открытия сетевого доступа как-то можно?

Go to the top of the page
 
+Quote Post
dxp
сообщение Dec 23 2015, 12:14
Сообщение #8


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (Neborak @ Dec 23 2015, 15:05) *
А удавалось работать не через сервер, а с коллегой напрямую, как пишут "когда двое людей работают над одной и той же проблемой они могу брать наработки друг у друга"?

Нет, такое не использовали. Напрямую, насколько знаю, это обмен патчами. Ну, а для себя одного проще всего просто копировать репозиторий и всё.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th April 2024 - 09:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01457 секунд с 7
ELECTRONIX ©2004-2016