如何使SVN只更新文件但不添加新文件

时间:2008-09-24 04:50:48

标签: svn

我有一个文件存储库,这些文件彼此无关,但对多个项目是通用的。每个项目可能只需要这些文件的子集。例如:

/myRepo:
    /jquery.js
    /jquery.form.js
    /jquery.ui.js

项目A需要jquery.jsjquery.form.js,而项目B需要jquery.jsjquery.ui.js

我可以在两个项目中检查myRepo,但这会为这两个项目添加大量不必要的文件。我想要的是每个项目只能获得所需文件的某种方式。我认为可能的一种方法是,如果我只将所需文件放入每个项目中,然后在其上运行svn update,但不知何故阻止SVN向每个目录添加新文件。他们仍然会对现有文件进行修改,但不会添加任何不必要的文件。

这有可能吗?

4 个答案:

答案 0 :(得分:3)

不要让自己复杂化。要么拔出所有文件(这有什么不足之处?几个Ks的空间?),或者将文件分成几个目录,并且只检查相关项目中所需的目录(使用'externals'属性)

答案 1 :(得分:1)

如果我正确理解您的问题,您想要跨项目共享代码吗?如果是这样,请查看svn:externals属性。

Externals explained in Subversion Red Book

svn:externals in Windows

答案 2 :(得分:1)

K,这不是完美的,但它会做到。最大的问题是它将单独更新每个文件:

find . -print | grep -v '\.svn' | xargs svn update

我确信有更多找到mojo的人可以找到更好的方法来处理svn目录排除。

答案 3 :(得分:1)

在我们公司,我们将所有项目存储在同一个存储库中,但是在他们自己的项目文件夹中。然后,如果需要共享代码,我们将其移动到库文件夹。这有助于重用,而不是违反DRY原则。

因此,就服务器而言,您可以将所有库导出到中心位置,并将项目导出到任何地方,而不会重叠。