Альтернативы в Git подмодулей?



Я чувствую, что использование подмодулей Git как-то хлопотно для моего рабочего процесса разработки. Я слышал о git subtree и Gitslave.




  • есть ли еще инструменты для нескольких проектов репозитория и как они сравниваются ?

  • могут ли эти инструменты работать на Windows ?

575   3  

3 ответов:

Что лучше для вас зависит от ваших потребностей, желаний и рабочих процессов. Они в некотором смысле полу-изоморфны, это только некоторые из них намного проще в использовании, чем другие для определенных задач.

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

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

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

  • РЕПО теоретически похож на gitslave, но не так хорошо документирован для операций, не связанных с android, которые я нашел. Он довольно посвящен модели разработки Google Android и только изначально поддерживает несколько команд git (хотя вы можете запускать произвольные команды), а ограниченная собственная поддержка не поддерживает, например, централизованный репозиторий для отправки и проверки ветви кажется довольно сложным.

  • kitenet-это г это то, что вы хотели бы использовать, если у вас есть несколько систем управления версиями, но в основном ограничено для суперпроектов git-only из-за его самого низкого общего знаменателя. Есть способы запустить произвольный команды, но они не так хорошо интегрированы.

в настоящее время я использую подмодули для разработки, а не только связанные сторонние библиотеки. Есть несколько способов облегчить жизнь с помощью подмодулей, особенно когда они являются источником конфликтов слияния или перебазирования. Посмотрите на ls-дерево, чтобы получить 2 фиксации, связанные с конфликтом в подмодуле. Это, вероятно, самая сложная часть подмодулей для людей, с которыми нужно иметь дело. На данный момент сценарии сделают это намного проще в работе. Будущих версий Git лучше родной поддержка для борьбы с ними.

надеюсь, что это помогает.

мы столкнулись с подобной проблемой при использовании подмодулей Git в проектах, где у нас были ЗАВИСИМОСТИ на разных языках. Чтобы справиться с ними, мы создали и с открытым исходным кодом инструмент под названием MDLR ("модульный"), который дает вам декларативные управляемые версиями зависимости Git с аналогичной функциональностью для подмодулей Git, но без раздражающего рабочего процесса. Вы можете установить его и управлять своими зависимостями с помощью инструкций / загрузок на GitHub repo

Comments

    Ничего не найдено.