2008-09-24 80 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原則。

因此,就服務器而言,您可以將所有庫導出到中央位置,並將您的項目導出到任何位置,而不會重疊。