2008-09-24 60 views
0

我有一个文件的存储库,这些文件彼此不相关,但是对于多个项目来说是通用的。每个项目可能只需要这些文件的一个子集。例如:如何使SVN只更新文件,但不添加新的文件

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

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

我可以做的myRepo到这两个项目结账,但会增添了很多不必要的文件进入两者。我想要的是为每个项目获取所需文件的某种方式。我认为可能的一种方式是,如果我只将所需文件放入每个项目,然后在其上运行svn update,但以某种方式阻止SVN向每个目录添加新文件。他们仍然会对现有文件进行修改,但不会添加不必要的文件。

这可能吗?

回答

3

不要拿自己和复杂化。要么拉出所有的文件(这个缺点是什么?多少Ks的空间?),或者将这些文件分成几个目录,只在相关项目中检查需要的目录(使用'externals'属性) 。

1

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

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

我相信,有人发现更多的信息的魔力能找出处理svn的目录中排除一个更好的办法。

+0

是的,这更符合我之前的观点。是否有可能给SVN一次更新的文件列表,而不是一个一个地更新? – nickf 2008-09-24 05:32:10

+0

我做了一个SVN更新选项的快速检查,并没有看到任何东西。 – 2008-09-26 03:47:15

1

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

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