2011-02-07 84 views
2

一年後採用Kiln後,我一直堅持每個Visual Studio項目都有一個源代碼控制項目的慣例。雖然我發現這使得提交很好而且簡單,並且源代碼管理項目非常集中,但它開始導致很多提交,實質上是一個改變。解決方案中的多個項目與源代碼管理中的多個項目

實施例: 我的一個視覺工作室的解決方案是設置這樣的:

  • App.Core(服務層)
  • App.Core.Tests(測試層)
  • App.Web。核心(控制器)
  • App.Web.UI(瀏覽量/ JS /等)
  • App.Web.Admin(用於Web管理網站)
  • App.Web.Tests(T esting層)
  • App.ChromeExtension

最終我將加入的Andriod和iphone視圖層以及(可能的MonoTouch/monodriod)

說我添加一個功能上的服務層側需要對界面進行更新,然後我必須通過各種網絡方法,甚至是Chrome擴展來宣傳這種更改。這非常直截了當,但這可能意味着我必須完成7個不同的提交,才能實現單一的「更改」。這也意味着當我切換到/從我的筆記本電腦時,爲其他開發人員或我自己拉了很多變化。

能處理大項目的人能評論什麼是「最好」的方法嗎?我是否堅持使用多個源代碼控制項目,以便每個提交樹都非常簡潔並處理開銷?爲了簡單起見,我是否將所有內容都放在單個源控制項目中?我是否會混合使用任何與Web相關的項目,以及與其他項目相關的任何服務?或者是其他東西?

僅供參考:該項目由UX開發人員和我自己維護,但未來很容易更改。

(也:我不知道這是否是程序員或計算器值得的,並決定在這裏,而不是去如果國防部希望將它移到我沒有異議。)

謝謝!

回答

2

只要你有相互依賴的組件(組文件,這裏的解決方案),其中一個變化到一個模塊已經到傳播到其他人,你可以考慮"system" approach(即一個存儲庫,與一切它):
這是有道理的,如果你認爲你不能在一個模塊上設置標籤而不在所有其他標籤上設置標籤。

如果這些組件可以獨立開發一個從另一個,你可以通過腳本他們,like in this script 'git-submodule-recur.sh:'(這裏GIT)減輕提交的數目:

#!/bin/sh 

case "$1" in 
     "init") CMD="submodule update --init" ;; 
     *) CMD="$*" ;; 
esac 

git $CMD 
git submodule foreach "$0" $CMD 

一個命令,然後將在每個子模塊承諾:

git-submodule-recur commit -a -m "some comment" 
+0

感謝您的反饋意見。系統方法是一個很好的閱讀。 – TheRightChoyce

相關問題