2013-07-26 37 views
1

好日子#1切換SVN的工作副本提交到兩個不同的服務器

我有我的管理系統的SVN工作拷貝我的本地機器上。

工作副本從我們的生產服務器中檢出。因此,我或我的團隊成員提交的任何提交都會轉到生產服務器回購站。

我想要做的是在開發服務器上用生產服務器代碼創建一個回購。這樣我和我的隊友就可以把所有東西都交給開發箱。當我們對代碼感到滿意時,我想將本地存儲庫切換到提交給生產服務器的地方

這樣的事情是可能的。如果是這樣......怎麼樣?

+1

爲什麼不能使用相同的回購和出口到不同的文件夾(我的意思是生產,測試或開發)? –

+0

我不太清楚你的意思? – Ryan

+0

爲什麼你有兩個不同的回購發展和生產的任何特定原因?爲什麼不有一個回購,並採用[分支策略](http://stackoverflow.com/questions/597707/best-branching-strategy-when-doing-continuous-integration),以便系統的生產版本在一個特殊的分支?就個人而言,我更喜歡功能分支,其中「'trunk'爲王」,並且是從哪個分支發佈到生產 –

回答

1

當使用單臺服務器上的樹枝更容易管理的方式,您可以有兩個倉庫,並將它們之間,如要求

  1. 創建生產(svnadmin dump PROD-PATH > DUMPFILE
  2. 創建DEVEL回購的完全轉儲(svnadmin create DEVEL-PATH切換)
  3. 將PROD加載到DEVEL(svnadmin load DEVEL-PATH --force-uuid < DUMPFILE)。 --force-uuid是強制性爲了具有在兩個回購(因此允許移居存儲庫之間的單WC),「svnadmin的製造」相同的UUID分配唯一的UUID來DEVEL
  4. 移居WCS來DEVEL
  5. 代碼提交測試...

爲了回返回代碼PROD

  1. 弄乾淨廁所,更新到DEVEL HEAD
  2. 移居到WC PROD
  3. 更新WC到PROD HEAD,合併更改
  4. 提交從DEVEL在WC積累的所有的變化,一個 「大爆炸」 承諾PROD
  5. 進入到第I部分,第4步
+0

這是一個非常棒的方式,但它似乎將代碼發送到生產服務器需要很多開銷...... – Ryan

+0

@Ryan - 是的,分支機構是這種情況下的自然方式(tm) –

2

爲什麼生產有版本控制系統,但不是開發者?

版本控制是針對開發者的。你應該能夠檢出,更新,修改代碼,添加功能,犯錯誤,做愚蠢的東西等。這是版本控制的目的!

生產,如果他們從Subversion版本庫獲得代碼,應該檢查標籤的代碼。標籤就是你想讓世界看到的東西。通過仔細和嚴格的測試,你希望已經清除了你的錯誤,錯誤和其他笨拙。

將您的Subversion存儲庫從Production移到您的開發環境中。也就是說,除非你的意思是支持和維護產品 - 不是說生產環境中的人(如客戶)實際上使用Subversion。在這種情況下,讓存儲庫保留在Production中,但開發人員不應該害怕使用它。

一些網站使用中繼嚴格爲釋放代碼。這不是一個好主意。發佈代碼應該放入標籤目錄中。主幹和分支是爲程序員做的編程

+0

我明白你的答案。你會發現我們正在使用http://www.springloops.io/來承載我們的產品svn,我們的承諾就是在這裏。我不確定我們是否可以在可以提交到springloop的開發框中進行回購? – Ryan

+0

我們設法開始使用分支機構。謝謝你們的建議 – Ryan