2013-04-11 63 views
1

我們有兩個共享相同公共文件的項目。如何在SVN中的中繼之間共享資源?

E.g.

parentproj/subproj1 /主幹/普通/ a.js

parentproj/subproj2 /主幹/普通/ a.js

我們要麼修改a.js在subproj1然後以後需要複製子程序2,或反之亦然。

我們不能將常見的東西分成自己的SVN項目和自己的主幹,因爲那樣我們就無法檢出子項目並獲得它。在CVS中,我們可以通過將常用項目放在兩個項目之一中,然後在CVS服務器的項目2中創建一個符號鏈接來解決這個問題。

所以我們有兩個項目,每個都有自己的相同的公共文件副本的上述情況。接下來的問題是如何將變化從1回合到2或2回合到1。Eclipse無法做到這一點,因爲它表示「無法使用與不同項目結構相關的資源執行操作」。 Tortiose SVN無法做到這一點,因爲你無法同時打開兩個單獨的目錄。如果您嘗試使用烏龜將修改過的文件從一個項目「複製」到另一個項目,則表示它已經存在。

我們已經設置subproj1爲名義主,並做了一個svn副本subproj2。但這並不能幫助我相信。

目前,我們使用eclipse手動剪切並粘貼每個更新公共文件的更改,然後提交更改。

這意味着兩個不同項目中的版本號不同,即使它是具有相同內容的相同文件。

任何想法?

目前我們沒有或使用命令行SVN,因爲記住和正確的URL URL路徑來標記/複製文件似乎太冒險,但會考慮如果唯一的方法。

我們的代碼主要是js文件,具有一定的ASP和HTML

如果我們使用CVS,我們只需要有一個項目(父),着有「的Game1」和「GAME2」目錄在下面,和一個共同的目錄。這是因爲CVS允許您根據目錄進行分支和標記,因爲SVN只能明確地分支/標記/合併整個幹線。主幹目錄完全妨礙了日食,因爲這意味着我們不能一次簽出兩個項目,我們必須單獨簽出每個項目,以便我們不會在路徑中獲得樹幹目錄。

回答

1

使用TortoiseSVN,您不需要打開兩個目錄。只需在其中一個上選擇合併,然後選擇另一個目錄的URL作爲合併源。

至於分離它 - 你可以把常見的東西分成第三位並分成每個子項目。

+0

嗨,他們在同一個回購。我們希望這兩個項目都能得到最新版本,但如果我們必須手動更新相關版本,我們可以做到這一點。我們只需要一種方法來合併更改,而不必逐行執行。 – 2013-04-11 11:16:33

+0

糟糕...我從Eclipse錯誤信息中得出了錯誤的結論... – maxim1000 2013-04-11 11:18:24

+0

@JohnLittle,我編輯了我的答案。 – maxim1000 2013-04-11 11:21:17

1

我們不能將常見的東西分成自己的SVN項目和自己的主幹,因爲那樣我們就無法檢出子項目並獲得它。

但是你必須能夠:讀取和使用svn:外部。如果您共享整個常見目錄,外部可以生活在單獨的回購。如果您共享常見文件只有,SVN必須是1.6+,外部目標必須在相同的回購,作爲來源

相關問題