2010-02-02 29 views
5

我目前正在開發一個包含perl,.NET,C/C++和Java組件的項目。這些組件是相互關聯的,但不會綁定到相同的發佈時間表。由於構建/測試環境的要求非常不同,將它們全部集中到相同的/ bin/src/lib/etc/tests層次結構中有點難以實施。組織一個使用多種語言的項目?

在處理這種性質的項目時,在源代碼控制中使用什麼樣的組織層次結構?我目前傾向於每種語言有自己的分公司:

回購/ PROJECT1/perl的/主/ ...

回購/ PROJECT1/.NET /主/ ...

回購/ PROJECT1/Java/main/...

如果他們的DID有一個綁定的發佈時間表,你的推薦層次結構將如何改變?

+1

看起來像你在正確的軌道上... – 2010-02-02 16:44:33

回答

2

我認爲你已經擺在了行。如果你使用所有組件釋放整個項目,而不是單獨釋放每個組件,那麼我可以使用svn:externals來區別repo位置或完全不同的存儲庫,然後只通過外部將構建與組件的最新兼容標籤發佈相關聯。 或者如果使用git,然後使用子模塊做同樣的事情。

/repo/project1 
    trunk/ 
    svn:external .Net /repo/project1/components/.Net 
    svn:external perl /repo/project1/components/perl 
    svn:external Java /repo/project1/components/Java 
    -- other integration code or what have you -- 
    tags/ 
    branches/ 
    components/ 
    .Net/ 
     trunk/ 
     tags/ 
     branches/ 
    Java/ 
     trunk/ 
     tags/ 
     branches/ 
    perl/ 
     trunk/ 
     tags/ 
     branches/ 

確切的結構將取決於工作流程,以及組件如何集成,但您明白了。