git => svn
От: Denys V. Украина http://ua.linkedin.com/in/dvalchuk
Дата: 23.09.11 08:43
Оценка:
привет всем.

получил я задачку, начал разработку на своем git репозитории. у проекта ещё никакого репозитория не было — мне сказали мылом присылать снапшоты — потому я и начал с git init
так вот, проект уже развился и у него появился репозиторий — но svn.
1. можно ли как то залить содержимое моего репозитория со всему коммитами и комментариями?
если да — подскажите пожалуйста набор комманд.
если нет — как лучше всего выкрутиться? сделать git clone в фолдер с svn копией и просто все добавить в свн?


спасибо
С уважением Denys Valchuk

IMHO чем больше мнений тем оптимальней выбор варианта... :)
Re: git => svn
От: Clerk  
Дата: 23.09.11 09:35
Оценка: 4 (1) +1
Здравствуйте, Denys V., Вы писали:

DV>привет всем.


DV>получил я задачку, начал разработку на своем git репозитории. у проекта ещё никакого репозитория не было — мне сказали мылом присылать снапшоты — потому я и начал с git init

DV>так вот, проект уже развился и у него появился репозиторий — но svn.
DV>1. можно ли как то залить содержимое моего репозитория со всему коммитами и комментариями?
DV>если да — подскажите пожалуйста набор комманд.
DV>если нет — как лучше всего выкрутиться? сделать git clone в фолдер с svn копией и просто все добавить в свн?

Если в git ветка одна и svn репозиторий на сервере ещё пуст — то всё элементарно (а если не пуст — то, вероятно, придётся разруливать конфликты):

/* добавляем svn remote в наш git */
git svn init http://server/svn/trunk
/* получаем стартовый коммит/коммиты из svn */
git svn fetch
/* "переводим" все наши комиты на родителя из svn — т.е. как будто мы все делали от последнего коммита в svn */
g rebase remotes/git-svn
/* отправляем наши коммиты в svn */
git svn dcommit
... << RSDN@Home 1.2.0 alpha 5 rev. 1526>>
Re[2]: git => svn
От: Denys V. Украина http://ua.linkedin.com/in/dvalchuk
Дата: 25.09.11 12:02
Оценка:
Здравствуйте, Clerk, Вы писали:

C>Здравствуйте, Denys V., Вы писали:


DV>>привет всем.


DV>>получил я задачку, начал разработку на своем git репозитории. у проекта ещё никакого репозитория не было — мне сказали мылом присылать снапшоты — потому я и начал с git init

DV>>так вот, проект уже развился и у него появился репозиторий — но svn.
DV>>1. можно ли как то залить содержимое моего репозитория со всему коммитами и комментариями?
DV>>если да — подскажите пожалуйста набор комманд.
DV>>если нет — как лучше всего выкрутиться? сделать git clone в фолдер с svn копией и просто все добавить в свн?

C>Если в git ветка одна и svn репозиторий на сервере ещё пуст — то всё элементарно (а если не пуст — то, вероятно, придётся разруливать конфликты):


C>/* добавляем svn remote в наш git */

C>git svn init http://server/svn/trunk
C>/* получаем стартовый коммит/коммиты из svn */
C>git svn fetch
C>/* "переводим" все наши комиты на родителя из svn — т.е. как будто мы все делали от последнего коммита в svn */
C>g rebase remotes/git-svn
C>/* отправляем наши коммиты в svn */
C>git svn dcommit

спасибо за подробный ответ.
а можно сделать то же самое но залить в svn не весь мой git репозиторий, а только определенную поддиректорию с её историей изменений?
С уважением Denys Valchuk

IMHO чем больше мнений тем оптимальней выбор варианта... :)
Re[3]: git => svn
От: Clerk  
Дата: 26.09.11 07:11
Оценка:
Здравствуйте, Denys V., Вы писали:

DV>а можно сделать то же самое но залить в svn не весь мой git репозиторий, а только определенную поддиректорию с её историей изменений?

Вроде как git svn dcommit не позволяет при коммите указать какие файлы отфильтровывать, а целиком отправляет commit git'a на сервер. Мне кажется что проще создать новый git репозиторий, залить туда только необходимые коммиты и потом его уже заэкспортить в svn.
... << RSDN@Home 1.2.0 alpha 5 rev. 1526>>
Re[4]: git -> svn
От: dmitriy_k  
Дата: 20.12.11 09:17
Оценка:
DV>>а можно сделать то же самое но залить в svn не весь мой git репозиторий, а только определенную поддиректорию с её историей изменений?
C>Вроде как git svn dcommit не позволяет при коммите указать какие файлы отфильтровывать, а целиком отправляет commit git'a на сервер. Мне кажется что проще создать новый git репозиторий, залить туда только необходимые коммиты и потом его уже заэкспортить в svn.

а вот как в похожей ситуации сделать конвертацию если следующие отличия есть:
— ветки были(но мало и все мерджилось, коммитов сразу в несколько веток — не было)
— в случае конфликта — решение должно быть одно — более новый коммит — встает поверх старого, всегда и автоматически
— initial commit в git'е — это сразу достаточно много кода(там история похерена)
— в репозитории есть бинарные файлы, конфликты в них — не интересуют, тоже надо чтобы просто последния версия писалась
(грохать историю...сильно не хочется)
git 1.7(под win)
цель всего — сохранить коммит логи и хоть какую то историю того где что правилось и на какие тикеты багтрекера эти правки(ситуация что придется откатываться на старый код — в данном проекте исключена)
Re[3]: git => svn
От: BulatZiganshin  
Дата: 23.12.11 21:45
Оценка:
Здравствуйте, Denys V., Вы писали:

DV>а можно сделать то же самое но залить в svn не весь мой git репозиторий, а только определенную поддиректорию с её историей изменений?


гитовская утилита импорта репозиториев позволяет отфильтровать каталоги или переименовать их. делаешь git->git, а затем очищенный перегоняешь в svn
Люди, я люблю вас! Будьте бдительны!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.