Совместное использование моделей между двумя проектами Rails - с использованием подмодулей git? - PullRequest
3 голосов
/ 27 апреля 2010

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

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

Я осмотрел SO и заметил, что был вопрос , в котором были ответы, предлагающие использовать подмодуль svn: external или git, но я не совсем уверен, как это сделать.

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

Ответы [ 2 ]

1 голос
/ 28 марта 2013

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

Git поддерево является частью GIT начиная с 1.7.11, и я написал статью об обмене кодом между приложениями Rails: http://igor -alexandrov.github.com / blog / 2013/03/28 / using-git -subtree к доле-коде между рельсами-приложение /

Вкратце: да, git-subtree работает и прекрасно работает!

1 голос
/ 27 апреля 2010

Вам необходимо:

  • фиксация субмодуля в одном месте
  • совершить основной проект (сообщил публичный сайт)
  • перейти к тому же субмодулю в другом основном проекте (на сайте администратора)
  • извлечение последнего содержимого (изменение заголовка этого подмодуля)
  • поднялся на один каталог в главном (администраторском) проекте
  • commit (чтобы записать, что вы теперь ссылаетесь на другую версию подмодуля)

См. Также истинная природа подмодулей .

...