2008-08-26 39 views
3

在現場網站上維護備份和修訂控制的最佳解決方案是什麼?在現場網站上維護備份和修訂控制的最佳解決方案是什麼?

作爲我工作的一部分,我與幾個實時網站合作。我們需要一種有效的方法來維護活動文件夾的備份。此外,更新這些網站可能會很痛苦,特別是如果出於某種原因在現場環境中發生變化。

什麼是理想的將是無憂的源代碼管理。我實現了SVN一段時間,這是一個很好的備份以及修訂控制(容易恢復臨時或重大更改)的半解決方案等。

不幸的是SVN的地方.SVN隱藏的目錄到處造成問題,尤其是當其他開發人員進行文件夾結構更改或複製/移動網站目錄。我聽說過這是一個教育等問題,但SVN採取的方法對我們來說根本不是一個實際的解決方案。

我在想,也許增量備份解決方案可能會更好。

其他可能性包括:

  1. SVK,這是唯一的命令行成爲一個問題。此外,我不確定這是多麼恰當。
  2. Mercurial,可能帶有一些觸發器來隱藏分佈式組件,在這種情況下不需要這些分佈式組件,並且對於其他開發人員來說會不必要地複雜化。

    我使用Mercurial進行了簡短的實驗,但找不到一個讓存儲庫獨立並保持與活動文件夾工作副本不間斷同步的好方法。也許作爲源控制解決方案(使存儲庫和活動文件夾位於同一地點)與另一個備份解決方案相結合,這可能是一條可行的路。水銀的

    一個缺點是,它不把源代碼管理下的空文件夾這是網站往往具有空文件夾的文件上傳等

  3. Rsync,我還沒有真正的佔位符的位置問題調查。

我真的很感激你的建議,最好的方式來維護備份的實時網站,理想情況下與一個簡單的方法快速檢索過去的版本。

答案回覆:

  • @Kibbee

    • 這不是這麼多關於教育與任何東西,但VSS不熟悉和缺乏時間/精力學習還要別的嗎。

    • xcopy/7-zip方法聽起來很合理我猜,但它會很快佔用大量的空間嗎?

    • 至於源代碼管理,我想我想讓源代碼管理只是說「這是現在文件夾的狀態,我會處理,如果我不能匹配的東西,那就是你的錯,我只會開始新的歷史「,而不是難倒。

  • @Steve中號

    • 是啊,這做的更好的方式,但需要顯著的文化變革。說完我非常喜歡這種方法。
  • @mk

    • 不錯,我也沒多想使用rsync部署。這隻會上傳差異嗎?每次我們進行更改時,覆蓋整個實時目錄會因站點停機而出現問題。

我仍然好奇,想看看是否有任何更多的傳統選項

回答

4

您仍然可以使用SVN,但不是在真實環境中做了結賬時,沒有做一個出口,這樣, .svn目錄將被創建。不利的一面是,您的實時環境無法進行任何代碼更改。這是一件好事。

作爲一般規則,不應允許生產系統上的代碼更改。應該在開發/測試/ UAT環境中進行更改並進行測試,然後一旦確認爲OK,就可以使用RELEASE-x-x-x之類的方式在SVN中標記該代碼。然後,在實時系統上,使用該標籤導出代碼。

1

如果您正在移動,刪除或添加文件並且不告知源代碼管理系統,您選擇的任何源代碼控制解決方案都會出現問題。我不知道任何可以解決此問題的源代碼管理項目。

如果你不能教育項目工作人員[1],那麼你可能只需要每日快照。像使用xcopy到網絡驅動器的批處理文件一樣簡單,並且可能在命令行上使用7-zip來壓縮它,使其不佔用太多空間,這可能是最簡單的解決方案。

[1]我高度不相信這個,可能更多的是一個人太固執,不願意學習或者做「額外工作」的情況。 Nevermind當源代碼管理不得不返回到以前的版本時可以節省多少時間,或者2個人編輯過相同的文件。

2

我們使用選項3. Rsync。我寫了一個bash腳本來做這個以及一些額外的檢查,但這裏是它的基本功能。

  1. 爲推送生活做個標籤。
  2. 在該標籤上運行svn導出。
  3. rsync生活。

到目前爲止,它一直在努力。我們不必擔心用戶衝突,也不必擔心單獨的用戶在生產機器上運行svn。

+0

你好,你可以分享該bash腳本,我想實現一個相同的方法。非常感謝。 – 2009-03-09 11:15:13

1

rsync只會上傳差異。我還沒有親自使用它,但Mark Pilgrim很久以前寫過關於它如何甚至handles binary diffs brilliantly

svn + rsync聽起來像一個奇妙的解決方案。我將不得不在未來嘗試。

相關問題