2011-09-07 51 views
3

我正在尋找在善變管理多個「地王」最佳實踐方案。由於我可能在網站根目錄中有多個網站,所有這些網站都是不同的 - 但有點相似(因爲它們是根應用的「自定義」)分佈式版本控制。 - 蹦及水銀......多個站點

我應該 A) wwwroot文件夾(捕捉所有站點的所有更改) B)使每個坐在文件夾不同的存儲庫

這個問題是每個網站需要不同的物理目錄,由於虛擬主機的指向發展,以及當前需要有「一些「物理文件差異跨站點。

這裏最好的做法是什麼?我傾向於每個目錄的單獨存儲庫。這將使得跟蹤任何分支與合併爲一個網站清潔....

回答

1

這取決於你的軟件是如何構成的,以及如何獨立於不同的部位是。最好的情況是,你可以使用你的核心代碼,如一個庫,它位於它自己的目錄中,並且不需要在不同的站點上更改甚至是單個核心文件。然後,如果您想在單個回購站中開發不同站點的核心,或者從站點分離核心,則可以自由選擇。當核心和不同的網站相互依賴時,你很可能不得不在單個回購中處理所有這些問題。

因爲在我的經驗,發展更好地工作時,不同部分的影響無關對方的我強烈建議把核心員工到一些東西,可以包含到網站通過目錄包容。

下一個問題是如何開發的不同部位。如果他們共享很多代碼,他們可以被開發爲不同的分支。但也有此計劃的兩個缺點:

  • 不同的網站通常不可見的開發商,因爲通常只有一個簽出
  • 開發商不得不採取非常謹慎,在那裏創造的改變,所以只有需要進行修改正在進入其他分支,沒有東西是特別的一個分支只

你可能會考慮,如果他們分享很多共同的代碼移動不同位點與核心的公共部分。

另一種情況是,如果他們都沒有任何共同之處,自那以後的事要好得多。然後,您需要決定是否讓他們駐留在不同的回購站中,或者在單個回購站中將其作爲不同的目錄。當這些不同的網站在某種程度上是相互關聯的時候(比如它們都是同一家公司),那麼把它們作爲不同的子目錄放入一個通用的回購可能會更好。當它們彼此不相關(每個站點屬於不同的客戶,並且這些站點上的更改不是相互同步創建的)時,每個站點的回購比一個更好。

當您有一個每個站點回購方法時,如果您首先創建一個包含核心組件和基本配置的模板站點,並從您的模板派生您的站點回購站作爲克隆,那也可能會很好。然後,當您在影響網站的核心中更改某些內容時,請在模板中進行這些更改,然後將這些更改合併到網站回購站中(您只需注意不要在其中一個網站回覆中執行此更改,因爲當你從站點合併到模板時,你可能會從特定站點獲取東西到模板中,而你不想在模板中)。

所以我建議

  • 發展核心爲一個獨立的產品
  • 選擇適合您的網站

    • 於一身回購正確的發展模式,用樹枝,當有很多代碼交換是在不同的網站之間進行的

    • 但更好的refac托爾的網站不共享代碼,因爲樹枝方法有缺點

    • 都在一個回購協議,別無分店,但不同的文件夾中,如果有一個,如果每個站點不同的站點之間沒有交換代碼

    • 一個回購他們是完全獨立的。
0

我想,你一定要試試Mercurial Queues一個回購協議。即

    您存儲
  • 「基地」網站的資料庫
  • 所有站點特定的變化分成一組MQ-補丁(一個?每個站點的補丁)的
  • 可以打造「只推「在站點回購,將它們添加到」工作「回購的[路徑]部分,並推送更改或使用導出複製技術

將網站補丁應用到代碼庫後,您將準備好使用代碼每一個網站