Sharing Models between two Rails Projects - using git submodules?

末鹿安然 提交于 2019-12-07 15:36:10

问题


I have a Rails website which has been divided into two separate projects - the public site, and the administration site.

As both sites are using the same database the models are shared between the applications (actually right now they are duplicated). The problem I have here is that when an update to the models occurs in the public project I need to copy the changes over into the admin project.

I've had a look around SO and noticed that there was a question which had answers suggesting using svn:external or git submodule, but I'm not entirely sure how to do this.

Essentially my aim is to be able to make the changes in one place only, commit those changes to git and then be able to pull the changes in the other project when I need to update that as well.


回答1:


You need to:

  • commit the submodule in one place
  • commit the main project (said the public site)
  • go to the same submodule in the other main project (the admin site)
  • pulling the latest content (changing the HEAD of that submodule)
  • going one directory up in the main (admin) project
  • commit (to record that you now reference a different version of the submodule)

See also true nature of submodules.




回答2:


Do not use submodules. They are ugly, hard to understand and to maintain. Much better is to use subtrees.

Git subtree is a part of GIT since 1.7.11 and I wrote an article about sharing code between Rails applications: http://igor-alexandrov.github.com/blog/2013/03/28/using-git-subtree-to-share-code-between-rails-applications/

In short: yes git-subtree works and works great!



来源:https://stackoverflow.com/questions/2718446/sharing-models-between-two-rails-projects-using-git-submodules

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!