2014-03-04 72 views
0

我們是一個由兩名開發人員開發PHP/MySQL應用程序的團隊。我們一段時間以來一直在使用Netbeans/TortoiseHG,但由於我們的項目沒有跨越,開發相當簡單直接,我們一直在使用Mercurial主要有一箇中央存儲庫,我們都可以找到最新的任何其他人正在處理的版本。NetBeans,PHP項目上的TortoiseHG和版本控制

到目前爲止,發展路徑遵循非常簡單的步驟:

  1. Netbeans中的龜創建項目
  2. 創建庫
  3. 有這種龜倉庫的一個克隆的共享空間
  4. 作爲發展進程,承諾,推動(如果我們其中一個人不得不在他缺席的情況下更改其他項目),並拉動。

正如您所見,非常簡單且有限,但足以滿足我們的需求。

但是現在我正在開發一個需要真正版本控制的項目。在我而言,這意味着我需要保持兩個單獨的和獨立的發展道路,一個用於生產,一個用於開發:

  • 一個版本(我們稱之爲1.0)將反映的是生產和意志根據需要進行更新。這裏的發展將基於生產中發現的錯誤和用戶的要求; (這些更改可能必須傳播到「其他版本」;
  • 其他版本(讓我們說2.0),將是我將工作的新功能的地方,至少不會在生產中幾個月..

我的問題是,我應該怎麼設置這個項目,從目錄結構到NetBeans和TortoiseHG?什麼是最好的做法是什麼?

順便說一句,我使用NetBeans IDE 7.3和TortoiseHG 2.7.1與Mercurial-2.5.2

To gi讓我感覺到自己在哪裏,在TortoiseHG中我已經玩了一些分支,但是我得到的結果並不是我所期望的(我沒有得到我希望的兩套獨立文件,以便對它們進行操作獨立)。我不知道我是否做錯了,或者分支不是我需要的。

因此,在分支失敗並且不知道該怎麼做的時候,我考慮過在同一個Netbeans項目中創建多個文件夾/目錄,每個版本都有一個文件夾和每個文件夾的名稱(version1.0,version2.0 ,版本3.0 ...)。然後,我會將項目的整個文件結構放置在這些文件夾中的每一個文件夾中,並對更新進行手動控制,即在進行任何更改後,我會根據需要手動將文件從一個「文件夾版本」複製到另一個文件夾版本。但是在如此多的層面上這看起來很錯。

根據我寫的內容,你能告訴我如何正確處理這個問題嗎?什麼是最佳實踐?或者你能否指出我在正確的方向,我可以找到解釋如何到達那裏的教程?

感謝, S.

+0

那麼你需要的是1.x和2.x文件共存於你的文件夾中?如果你需要,你可以使用'按文件夾'模式。你有兩個分支,'1.x'和'2.x'用於同一個倉庫,並且它們有不同的文件集。並有兩個不同的工作目錄,有自己的.hg回購。然後在1.x文件夾中使用'hg up 1.x',在2.x文件夾中使用'hg up 2.x',就像兩個獨立的程序員一樣。 –

+0

或者如果你仍然想要像hg(不是svn cvs ...)那樣的DVCS,但只需要一個repo,你可以嘗試bzr,它有一些叫做'standalone tree'的特性。 –

回答

1

謝謝CosLu,

你把我安排在了正確的道路,現在我明白這是如何工作...

分支是要走的路,但它並沒有創建第二個項目您的NetBeans環境。相反,您可以根據需要在TortoiseHG/Mercurial中擁有儘可能多的分支機構,並且一次只能在您的NetBeans環境中顯示其中一個分支機構。

在幾個步驟中,這是我理解它的工作原理。

  1. 您在NetBeans中創建和TortoiseHG項目(創建可能不是最好的術語)
  2. 您對您的項目工作,並提交更改。
  3. 當你到要啓動該項目的第二路徑上的工作點,做到這一點:
  4. 提交所有更改到目前爲止
  5. 創建一個新的分支:在NetBeans中,你可以右鍵點擊該項目,然後是Mercurial - >分支 - >創建分支(給它起個名字)
  6. 正在爲這個新分支進行更改
  7. 提交您的更改。如果你現在去TortoiseHG,你會看到一個新的分支。
  8. 如果你想有一個3支,重複步驟3至7

要從一個是當前活動的不同路徑(分支)上工作,乾脆去TortoiseHG,在頭右擊你想要工作的分支,然後選擇「更新」。在確認對話框中點擊確定,你就可以開始了。在您的NetBeans環境中,您的項目將反映該分支。

注意哪一個分支在那個時候處於活動狀態是非常重要的,所以您不要對錯誤的分支進行更改。

我還不知道這個難題的唯一部分是如何提交從一個分支到另一個分支的選擇性更改。例如,如果我對生產系統進行更改,並希望將其反映到我的開發系統上,而不合並它們,那麼我該怎麼做?但這超出了這個問題的範圍...

1

這是我在使用Netbeans和Subversion類似的情況是如何工作的。可能不完全一樣,但我的經驗可能會有所幫助。

分支實際上應該是爲了您的目的,所以我不明白你是什麼意思,你沒有得到不同的文件集。

即使該項目有多個版本,我創建只有1個項目的NB與1本地副本。 (每個版本沒有多個文件夾或項目)。

比方說,你已經開始這個項目,並且你已經把它放在倉庫的後備箱裏。現在您應該創建一個新的分支來包含您想要在將來上傳的更改。

在NB(也許在你的情況下,根文件夾)項目視圖中的文件夾上只需點擊右鍵並選擇:

顛覆>複製>複製到

在那裏,你應該能夠找到分支文件夾放在共享存儲庫中,並選擇它以製作項目的全新副本。

從現在開始,這很容易。每次你必須從你的主要項目切換到你未來的更新,你可以選擇你必須工作在其上的文件的版本:

顛覆>複製>開關複製

在這裏,您可以選擇更新本地文件到主幹或其他分支。

顛覆>複製>合併更改

此選項,最終將允許你合併不同的分支和樹幹在一個文件中。

非常有用的,也顯示標籤的可能性旁邊顯示的文件上的文件的版本,你工作:

svn version next to file

這顯然表明我不工作的該文件的主幹版本,但在稱爲測試的分支上。

0

如何從第二個分支創建第三個分支。並將第3分支與第1分支合併。第二個分支仍然未被裝上。