问题
我希望我的公司将所有包含的外部库存储在源代码管理中,但我希望这些外部库位于单个仓库中(不包含在每个单独的项目中),因为有很多库,并且它们很大。
现有技术
这就是我到目前为止的想法。
my coding dir/
app1/
.git/
src/
com/
...
app2/
.git/
src/
com/
...
ext libs/
.git/
server crap/
apache tomcat 7.0.123/
...
apache cxf versionnumber/
...
util crap/
someones really great util lib-1.0/
...
然后在配置或类似中会有一个$ PATH变量指向lib目录。
更多想法
同样,我可以谈论我的反子模式情绪,但事实上,我能找到的教程已经过时和/或令人困惑,这是一个很大的问题。对于任何工程师来说,这都需要是一个简单的过程,并且易于撤消。我们不是git ninjas!
最后,我不知道它是否重要,但我们都在使用unix和所有java。
提前致谢!
更新3-1-2012
我准备让Linus Torvalds哭泣。
我一直在做相当多的研究,我的结论是子模块非常好如果你已经是一个git ninja 了。那就是说,我要做错了,在每个git项目中创建一个libs目录。为什么?它更容易,而且比我们目前正在做的事情有了很大的改进。它还假定git知识的门槛要低得多。有一天,当我们对git的基本和中间概念(补丁?重写历史?高级分支?)都很扎实时,我们可能会转向子模块。按照目前的情况,我不想让我们的工程师因为太过于咀嚼而失败。
希望从现在到现在我们准备好向“正确的方式”转移,子模块将不那么复杂。
答案 0 :(得分:1)
子模块就是为此而设计的。请学习它们。 ProGit.org/book是一个很好的资源。见第6章第6节(我已将其记录在内存中)。
如果您有任何其他问题,我很乐意帮助推特/电子邮件。与我在这里使用的ID相同。