2009-09-25 52 views
2

我們正在使用巨大的腳本語言網站,這很難在每個開發人員工作站上部署。有幾個開發人員需要在服務器上的一個Subversion的工作文件夾中工作時,是否有任何機構遇到這種情況?幾個開發人員和一個Subversion的工作文件夾

+0

爲了澄清你的意思,而不是讓每個開發人員使用顛覆客戶端訪問存儲的代碼/網站,而是讓他們在服務器上工作? – wheaties 2009-09-25 15:16:50

+6

因此,您已經採用了多用戶源代碼管理系統,然後通過對文件本身進行操作繞過它? 有什麼意義? – Pod 2009-09-25 15:46:03

+0

聽起來好像你說在你的本地開發者機器上覆制你的網站是很困難的。是什麼讓它變得如此困難?爲什麼不嘗試解決這個問題? – 2009-09-27 01:13:24

回答

7

這聽起來錯了。你將如何管理單獨的登錄,併發更改?爲了您自己的理智使用多個WC!

看來你正在從源代碼控制中拿走60%的好東西並將其扔掉。

5

「......幾個開發人員在一個顛覆的工作文件夾的工作......」

不,他們沒有來。這只是濫用VCS。

如果你這樣做,它會受到傷害。如果你不想讓它受傷,就不要這樣做。就這麼簡單。

(現在,如果你告訴我們爲什麼你認爲他們有必要,我們也許能夠在一個解決方案來點你。)

1

設置自動集成工具,將更新測試服務器每次提交的最新版本。這樣每個開發人員都可以在本地編輯並提交。請參閱Cruise Control瞭解此類工具的示例。

+0

比共享工作副本更好的解決方案。 – 2009-09-26 11:26:34

4

正確的做法是每個人都有自己的工作副本。如果您希望在某人提交文件時自動更新網站,那麼在Subversion服務器上,設置一個post-commit掛鉤腳本,將ftp或scp(或其他任何協議)文件轉發到Web服務器。

我已經做了幾次,而且效果很好。 Subversion被設計來做這樣的事情。

1

您可以設置一個與您的生產服務器相同的開發服務器,讓每個用戶使用SVN客戶端將文件檢出到開發服務器上自己的目錄中。遠程編輯和測試文件,然後提交回存儲庫,並在準備發佈發佈時導出(或簽出)到生產環境。

1

聽起來您的組織中存在變更控制擔憂以及缺乏持續集成的做法,這些做法使得擴展開發和災難恢復變得更加困難。

您需要說服您的利益相關者,您的開發人員應該從分支開始工作,並且您的生產環境應該有可部署的腳本化方式。如果您需要專有安裝程序(ISS等),請使用部署腳本以及默認安裝以及生產調優系統。

您的開發人員對分支進行了更改,他們可以使用持續集成方法將該分支部署到測試/臨時服務器。然後,當您的利益相關方接受登臺服務器的操作時,將更改部署到生產服務器。如果該部署失敗,則任何災難恢復也會失敗。如果您的災難恢復失敗,那麼您的源代碼管理技術對您的組織而言沒有價值。災難恢復需要成爲您的驗收測試的一部分。

即使三位開發人員在一臺也作爲臨時服務器的工作站上輪流工作,它仍能正常工作。每個人都有自己的用戶帳戶和單獨的工作目錄,登臺服務器只是一個集中式目錄。

1

如果你這樣做,你將會處於一個痛苦的世界。你幾乎失去了擁有VCS的所有優勢。從本質上講,你已經將SVN歸入備份工具的角色。這不是VCS應該做的。另外,只要你有多個客戶同時在同一個WC上工作,你就會遇到麻煩。至少,會有鎖爭用,需要你運行「svn cleanup」。如果您通過網絡共享訪問WC,結果可能會更糟糕,因爲SVN的鎖定機制不能通過網絡共享工作。你可能會以非顯而易見的方式摧毀WC,導致後續提交中包含錯誤更改。 SVN文檔警告不要通過網絡共享使用多個客戶端。

保存版本控制問題,開發人員通信問題和集成問題,併爲每個開發人員提供自己的工作場所。在主服務器上有不同的目錄,或者(甚至更好)讓它們設置爲在本地運行該站點。你永遠不會發現你的共享WC的集成/部署問題,你仍然會錯過一些共享服務器。

2

正如大家所指出的那樣,您放棄了使用您的建議設置進行版本控制的好處,讓開發人員不斷努力工作(而不是固定成本的一次性成本),並冒着嚴重的風險損傷。不要這樣做。

如果很難在工作站上部署(也許是因爲有很多的敏感組態軟件),然後我看到了兩個很好的選擇:

  1. 爲每個開發自己的私人空間在服務器上,只有開發團隊可以訪問。這意味着服務器配置只需要完成一次,但每個開發人員都可以私下工作而不會破壞事情。
  2. 拍攝您的生產服務器的映像,並對其進行足夠的修改,使其可以在每個開發人員的工作站上的VM中運行。將其用於本地部署,然後從存儲庫部署到生產服務器。
0

謝謝你的回答。我們的網站正在使用一些我們無法在開發人員工作站上部署的特定軟件。是的,所有開發人員都有自己的登錄到SVN,但目前他們必須在服務器上的一個工作文件夾上工作。主要問題:當幾個開發人員執行幾個不同的任務時,如何保持SVN和工作文件夾同步。

+0

你是說你只有一個已安裝軟件的副本,所以即使原則上任何開發人員都沒有可能在客戶看到它之前測試任何更改? – soru 2009-09-28 09:35:52

+0

是的,我們僅在需要工作副本的服務器上安裝了所需軟件的副本。開發人員能夠調試應用程序,但大約有一半的作業類型與使用該軟件相關。 – 2009-09-28 10:35:04

相關問題