Перейти к содержанию
    

Объединение двух GIT репозиториев

Предыстория такова: работал с svn, коммитил туда проект. Потом перешел на git, стал коммитить на другой сервер.

Теперь смог затянуть из svn коммиты в git репозиторий. Таким образом получил 2 git репозитория, один начало проекта, второй - конец. Попробовал слить конец первого с началом второго, нарешал кучу конфликтов, но репозитории так и не объединились.

Может кто сталкивался, как объединить репозитории?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может кто сталкивался, как объединить репозитории?

 

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

 

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

 

или это

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

 

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

Изменено пользователем Le Fou

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Удобство работы с ветками и слепок сервера на локальной машине.

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

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

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

За ссылку спасибо, вроде так и делал. Попробую еще раз.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Удобство работы с ветками

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

ну.. пожалуй.

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

 

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

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

 

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

 

Занятно, что главным преимуществом в эпоху облаков и прочего оказалась отвязка от сервера ))

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем получилось с помощью Rebase.

Большой проблемой стало то, что первый коммит в новом репозитории сделан с правками, т.е. не соответствовал последнему коммиту в старом. Из-за этого было много конфликтов.

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

А дальше git все сделал сам.

 

По поводу gitа, первое преимущество ощутил, что ну нужно сидеть что-то синхронизировать с сервером, пока не сделаешь push все коммиты остаются локальными, только сделанную часть работы выкладываешь на сервер или ту, которую нужно перенести на ноутбук.

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

В SVN без подключения к серверу я бы ничего этого не сделал бы.

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не вкурил пока в чем цимес.

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

А удавалось работать не через сервер, а с коллегой напрямую, как пишут "когда двое людей работают над одной и той же проблемой они могу брать наработки друг у друга"?

Я такую фишку пробовал реализовать для синхронизации с ноутбуком.

Шарил папку с проектом, но на ноут можно клонировать и фэтчить, запушить на основной нельзя.

Или нужно, например, на ноуте клонировать, сделать правки, сделать коммит, а на основном компьютере подключить еще один репо со ссылкой на ноут? Не нравится, что нужно шарить папку с проектом.

Или без открытия сетевого доступа как-то можно?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А удавалось работать не через сервер, а с коллегой напрямую, как пишут "когда двое людей работают над одной и той же проблемой они могу брать наработки друг у друга"?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...