我有一个文件存储库,这些文件彼此无关,但对多个项目是通用的。每个项目可能只需要这些文件的子集。例如:
/myRepo:
/jquery.js
/jquery.form.js
/jquery.ui.js
项目A需要jquery.js
和jquery.form.js
,而项目B需要jquery.js
和jquery.ui.js
我可以在两个项目中检查myRepo
,但这会为这两个项目添加大量不必要的文件。我想要的是每个项目只能获得所需文件的某种方式。我认为可能的一种方法是,如果我只将所需文件放入每个项目中,然后在其上运行svn update
,但不知何故阻止SVN向每个目录添加新文件。他们仍然会对现有文件进行修改,但不会添加任何不必要的文件。
这有可能吗?
答案 0 :(得分:3)
不要让自己复杂化。要么拔出所有文件(这有什么不足之处?几个Ks的空间?),或者将文件分成几个目录,并且只检查相关项目中所需的目录(使用'externals'属性)
答案 1 :(得分:1)
如果我正确理解您的问题,您想要跨项目共享代码吗?如果是这样,请查看svn:externals属性。
答案 2 :(得分:1)
K,这不是完美的,但它会做到。最大的问题是它将单独更新每个文件:
find . -print | grep -v '\.svn' | xargs svn update
我确信有更多找到mojo的人可以找到更好的方法来处理svn目录排除。
答案 3 :(得分:1)
在我们公司,我们将所有项目存储在同一个存储库中,但是在他们自己的项目文件夹中。然后,如果需要共享代码,我们将其移动到库文件夹。这有助于重用,而不是违反DRY原则。
因此,就服务器而言,您可以将所有库导出到中心位置,并将项目导出到任何地方,而不会重叠。