我们有两个独立的 rails_appfoo/
和bar/
(分开是有充分理由的)。它们都依赖于文件夹中的某些模型等,当前与和common/
平行。foo
bar
我们当前的 svn 设置用于svn:externals
共享common/
. 这个周末我们想试试 git。经过大量研究,似乎解决此问题的“犹太洁食”方法是使用git submodule
. 我们在将foo
,分离到单独的存储库后得到了它的工作bar
,common
但随后实现了所有附加的字符串:
- 始终在提交父模块之前提交子模块。
- 总是在推送父模块之前推送子模块。
- 在提交之前确保子模块的 HEAD 指向一个分支。(如果您是 bash 用户,我建议使用 git-completion 将当前分支名称放在提示符中。)
- 在切换分支或拉取更改后始终运行“git submodule update”。
所有这些陷阱比add
, commit
,更复杂push
。我们正在寻找common
在 git 中共享的更简单方法。这家伙似乎在使用git subtree
扩展方面取得了成功,但这与标准 git 有所不同,而且看起来仍然没有那么简单。
考虑到我们的项目结构,这是我们能做的最好的吗?我对 Rails 插件/引擎知之甚少,但这似乎是一种可能的 RoR 式共享库的方式。
提前致谢。