Как бы нам заиметь git-репозиторий?

51 views
Skip to first unread message

Anton Gusev

unread,
Oct 19, 2014, 10:49:30 AM10/19/14
to scmrt...@googlegroups.com
Привет всем!

Дело в следующем. Я сейчас в новых проектах перешёл с svn на git.
Распределённая система, удобное ветвление, всё такое.
И теперь в этих проектах scmRTOS выглядит инородным телом.
Если библиотеки, которые в git, я подключаю как субмодули, то с scmRTOS
как-то ничего логичного не придумывается.
Сейчас папка scmRTOS у меня лежит просто выше уровнем, чем проект, и
никак не сохраняется в git. Это, естественно, мне не нравится.
Хочется как-то это дело исправить.
Варианты:
1. Самый простой - залить текущее состояние транка куда-нибудь на
гитхаб, и подключать его. При появлении изменений в svn-репозитории на
sf - синхронизировать вручную.
2. Сделать полный экспорт svn-репозитория в git, и залить опять-таки
куда-нибудь на гитхаб. В этом случае там будет вся история изменений.
Синхронизация по-прежнему вручную.
3. Как-то переконвертировать репозиторий на sf из svn в git. (Хотя это
наверное нежелательно).
4. Как-то ещё?

Хотелось бы услышать ваши мнения по этому вопросу.

Anton Gusev

unread,
Oct 19, 2014, 11:11:47 AM10/19/14
to scmrt...@googlegroups.com

Я тут искал информацию о конвертировании репозиториев, и наткнулся на
такую инфу:
http://blog.gluster.org/2013/08/how-far-the-once-mighty-sourceforge-has-fallen/

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

То-то я стал замечать, что многие проекты свалили с sf...


Harry Zhurov

unread,
Oct 20, 2014, 1:02:33 AM10/20/14
to scmrt...@googlegroups.com
19.10.2014 21:49, Anton Gusev пишет:
Git - штука хорошая, мощная, сам перелез недавно. По поводу твоей идеи
перейти на него вижу одно главное препятствие - необходимость освоения
его всеми членами команды проекта. Если никто не против, то тогда всё
можно сделать. Но принуждать кого-либо я бы к этому не хотел.

Быстрых преимуществ это сейчас не даст (только в перспективе), т.к.
проект уже устоялся и застибилизировался. А в текущей работе с
использованием оси я особых трудностей не испытал. Рабочий каталог
выглядит так:

bf
cm3
scmRTOS

(bf - проект Blackfin, cm3 - CortexM3)

внутри директории scmRTOS

Blackfin
Common
CortexM3
Extensions
.co.bat
.gitignore


файл .gitignore:

Common
Blackfin
CortexM3
Extensions


файл .co.bat:

svn co https://svn.code.sf.net/p/scmrtos/code/trunk/Common Common

svn co https://svn.code.sf.net/p/scmrtos/code/trunk/Ports/Blackfin/VDSP
Blackfin
svn co https://svn.code.sf.net/p/scmrtos/code/trunk/Ports/CortexM3/IAR
CortexM3

svn co https://svn.code.sf.net/p/scmrtos/code/trunk/Extensions Extensions

Итого, в репе сохраняется директория для оси с двумя служебными файлами
(скрытыми) и после клона достаточно просто запустить .co.bat (co
означает checkout в терминах svn).

Пока никаких неудобств не заметил.

--
HZ


Anton Gusev

unread,
Oct 20, 2014, 1:31:03 AM10/20/14
to scmrt...@googlegroups.com
Harry Zhurov пишет 20.10.2014 11:02:

> Git - штука хорошая, мощная, сам перелез недавно. По поводу твоей идеи
> перейти на него вижу одно главное препятствие - необходимость освоения
> его всеми членами команды проекта. Если никто не против, то тогда всё
> можно сделать. Но принуждать кого-либо я бы к этому не хотел.

Нет, что ты, никакого принуждения:) Речь не о переходе. Речь о
"зеркалировании" нашего svn в git. Разработку конечно вести в svn, как
прежде.

> Рабочий каталог выглядит так:
>
> bf
> cm3
> scmRTOS

У тебя что, все проекты в одном git-репозитории? (Но это так, вопрос в
сторону).

В твоём случае, ты всегда подтянешь к проекту самую свежую версию
scmRTOS. А это не всегда хорошо. Если ты вытаскиваешь проект
двухгодичной давности, то хорошо бы к нему и версию оси соответствующую.
Субмодули это позволяют.

У меня проект сейчас выглядит вот так:
doc
lib
scmRTOS -- субмодуль scmRTOS
stm32tpl -- субмодуль моих периферийных библиотек
prj
ld -- субмодуль скриптов линкера
src

И в любой момент, сделав
git clone --recursive repo.git
я буду иметь консистентный проект.

Короче, я пока запилил репозиторий:
https://github.com/antongus/scmRTOS-cortex-m4-gcc.git

Может быть, кому ещё пригодится:)



Sergey Pinigin

unread,
Oct 20, 2014, 12:40:54 PM10/20/14
to Anton Gusev
Здравствуйте.

Вы писали 20 октября 2014 г., 11:31:01:

> Harry Zhurov пишет 20.10.2014 11:02:

>> Git - штука хорошая, мощная, сам перелез недавно. По поводу твоей идеи
>> перейти на него вижу одно главное препятствие - необходимость освоения
>> его всеми членами команды проекта. Если никто не против, то тогда всё
>> можно сделать. Но принуждать кого-либо я бы к этому не хотел.

> Нет, что ты, никакого принуждения:) Речь не о переходе. Речь о
> "зеркалировании" нашего svn в git. Разработку конечно вести в svn, как
> прежде.

Гнаться за двумя зайцами всегда сложнее и накладнее.

Существует ещё меркуриал, для него тоже зеркалить? ;-)

Если есть желание и возможности полноценного переноса, то следует
переходить на новые рельсы.

Существует распространённая практика, когда внешние составные части
проектов вытягивает из хранилищ и компилирует сборщик проекта.
Ему и указывается какой инструментарий использовать для извлечения
(хоть ftp и т.п), так же можно указать и точную целевую ревизию.

Это не externals, не автоматизированно-встроенная сущность, но
универсальная под любой набор систем ведения версий.

Если нет практики использования сборщика проекта, то для вытягивания
совершенно нормально применять отдельный скрипт, как у Гарри.




--
С уважением,
Sergey Pinigin

Sergey A. Borshch

unread,
Oct 21, 2014, 1:28:20 AM10/21/14
to scmrt...@googlegroups.com
On 19.10.2014 17:49, Anton Gusev wrote:
> Привет всем!
>
> Дело в следующем. Я сейчас в новых проектах перешёл с svn на git.
Я делал пару попыток освоить, но то ли философию не понял, то ли доки не те
попадались, но у меня этот git не пошел просто никак. Я пытался делать правки в
проекте OpenOCD (а он сидит на git с действительно вкусными плюшками в виде
Gerrit/Jenkins) и вот ну совсем никак. Все мои попытки ветвлений/откатов
кончались выкачиванием очередной свежей копии репозитория. С subversion все было
как-то легко, просто и понятно, с git - непонятно буквально все.

Так что если хотите - переползайте, но кому-то придется проводить удаленное
обучение и выдержать на первых порах шквал совершенно детских вопросов.


Что же касается хранения исходников ОС в проекте - я тупо храню копию и при
необходимости обновляю ее копированием поверх. Зато уверен, что проект всегда
100% соберется и будет работать.

--
Regards,
Sergey A. Borshch mailto: sb...@sourceforge.net
SB ELDI ltd. Riga, Latvia

Anton Gusev

unread,
Oct 21, 2014, 2:07:31 AM10/21/14
to scmrt...@googlegroups.com
Sergey A. Borshch пишет 20.10.2014 12:30:

> Я делал пару попыток освоить, но то ли философию не понял, то ли доки не те
> попадались, но у меня этот git не пошел просто никак.

Да, поначалу идёт туговато, другая идеология. В качестве краткого
введения рекомендую вот эту ссылку:
http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/ru/
И не просто читать, а сразу пробовать, благо для этого не нужен даже
сервер. После того, как разберёшься, работать с git очень удобно.
Но это я не к тому, что будем переходить, а просто делюсь опытом:)

Что касаемо полного перехода на git - я думаю, что сейчас это не нужно.
Проект, как правильно заметил Гарри, "уже устоялся и
застибилизировался", так что в ближайшей перспективе ожидаются только
минимальные правки. Ради этого затевать переход глупо.
Я вёл речь про _копию_ проекта в git. Потому что с ней удобнее работать,
когда проект под git. Собственно, я уже сделал нужную мне копию на
гитхабе, и вопрос потерял остроту:)

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

> Что же касается хранения исходников ОС в проекте - я тупо храню копию и при
> необходимости обновляю ее копированием поверх. Зато уверен, что проект всегда
> 100% соберется и будет работать.

Тоже вариант:)

Андрей Чуйкин

unread,
Oct 21, 2014, 6:54:32 AM10/21/14
to scmrt...@googlegroups.com
Оно?
http://habrahabr.ru/company/mailru/blog/241095/
> --
> --
> Страница группы -- http://groups.google.com/group/scmrtos-ru
> ---
> Вы получили это сообщение, поскольку подписаны на группу scmrtos-ru.
>
> Чтобы отменить подписку на эту группу и больше не получать от нее
> сообщения, отправьте письмо на электронный адрес scmrtos-
> ru+unsu...@googlegroups.com.
> Настройки подписки и доставки писем: https://groups.google.com/d/optout.

Anton Gusev

unread,
Oct 21, 2014, 7:21:10 AM10/21/14
to scmrt...@googlegroups.com
Андрей Чуйкин пишет 21.10.2014 16:54:

> Оно?

Не, это наоборот, про использование svn для работы с git-репозиторием.

Для работы через git с svn-репозиторием есть git svn:
http://git-scm.com/book/ru/Git-%D0%B8-%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D0%B5-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8F-%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B9-Git-%D0%B8-Subversion

В принципе хороший вариант, для разработки самой оси. А вот для
применения в моём сценарии -- не подходит, потому что структура
директорий разная (в моих проектах и в репозитории scmRTOS).
Как ни крути, получается, что тот вариант, который я сейчас выбрал -
самый удобный:)

Reply all
Reply to author
Forward
0 new messages