У нас есть два отдельных rails_app, foo/ и bar/ (раздельно по уважительной причине). Оба они зависят от некоторых моделей и т.д. В папке common/, в настоящее время параллельной foo и bar.
В нашей текущей настройке svn используется svn:externals для обмена common/. В эти выходные мы хотели попробовать git. После долгих исследований выяснилось, что "кошерный" способ решить эту проблему использует git submodule. Мы получили эту работу после разделения foo, bar, common на отдельные репозитории, но затем реализовали все строки :
- Всегда завершайте подмодуль перед выполнением родительского элемента.
- Всегда подталкивайте подмодуль, прежде чем нажимать родителя.
- Убедитесь, что подмодуль HEAD указывает на ветвь, прежде чем совершать ее. (Если вы являетесь пользователем bash, я рекомендую использовать git -completion для размещения текущего имени ветки в приглашении.)
- Всегда запускайте обновление подмодуля git после переключения ветвей или вытягивания изменений.
Все эти ошибки осложняют вещи, кроме add, commit, push. Мы ищем более простые способы обмена common в git. Этот парень, кажется, имеет успех, используя git subtree расширение, но отклоняющееся от стандартного gitand все еще выглядит не так просто.
Это лучшее, что мы можем сделать, учитывая нашу структуру проекта? Я не знаю достаточно о плагинах/механизмах rails, но это похоже на возможный способ доступа к библиотекам RoR-ish.
Спасибо заранее.