2011-09-14 81 views
0

我有一個問題,我正在尋找適當的答案。我看過很多類似的問題,但沒有什麼可以幫助我解決我的問題。 我有一個項目,有一個共同的代碼庫。有一些配置文件說的代碼庫。此代碼存儲在回購的主幹線中,分支在主分支目錄中處理。 然後我有太多的項目正在使用此代碼庫,在配置文件中進行了一些更改,或者在代碼庫的目錄中添加了一些文件。我想保持代碼庫的共同性,因此如果任何主體更改與代碼庫相關的項目內部的任何內容,它將被提交回主代碼,但同時我也希望保持項目的特定文件分離,以便顯而易見沒有人會覆蓋別人的配置,或者沒有人需要在他的代碼中攜帶他人的附加文件。外部存儲庫中的代碼

至於我尋找可能的答案我的問題,我來到的外部,所以現在我有這樣的結構,我的回購:

/ 
    trunk <- code base trunk 
    branch <- code base branchs 
    projects 
     proj1 
      trunk <- project's trunk 
      branch <- project's branches 
     proj2 

每個項目的主幹實際上是一個外部鏈接的代碼庫的主幹並且我在文件夾中做了一些更改或者更改了一些配置文件。現在我沒有辦法將對代碼進行修改所做的一些更改分離到proj1的文件夾和其他人到主代碼中。 是否有可能?我應該改變我的結構嗎?

回答

0

我建議這種佈局:

/ 
    common 
     trunk <- code base trunk 
     branches <- code base branches 
    projects 
     proj1 
      trunk <- project's trunk 
       common <- common trunk (external) 
       local <- proj1 specific 
      branch <- project's branches 
       common <- common branch (or trunk) (external) 
       local <- proj1 specific 
     proj2 

所以,你看,這是更好地將項目分成通用/特定部分。

UPDATE(如果拆分代碼庫是不可能的)

trunk <- code base trunk 
     common.h 
     common.c 
     common_folder 
    branches <- code base branches 
     br1 
      common.h 
      common.c 
      common_folder 
    projects 
     proj1 
      trunk <- project's trunk 
       common.h <- (svn:externals ^/trunk/common.h common.h) 
       common.c <- (svn:externals ^/trunk/common.c common.c) 
       common <- (svn:externals ^/trunk/common_folder common) 
       spec.h 
       spec.c 
      branches <- project's branches 
       br1 
       common.h <- (svn:externals ^/branches/br1/common.h common.h) 
       common.c <- (svn:externals ^/branches/br1/common.c common.c) 
       common <- (svn:externals ^/branches/br1/common_folder common) 
       spec.h 
       spec.c 
     proj2 

在這種情況下,事情就變得有點複雜管理...

+0

感謝您的建議,但我使用已編寫的代碼和框架,不可能將代碼庫和配置/專用部分分開。 – mohamnag

+0

然後,您可以通過添加「外部文件」來共享文件 - 在這種情況下,您不應該分開代碼庫,只需要獲取所需文件,並將項目特定文件添加到projX中。您也可以在projX中使用與代碼庫中的名稱相同的文件,這些文件是不同的 - 但這在我看來會很麻煩。 – pmod

+0

你的意思是在代碼庫中添加外部? – mohamnag