2009-05-29 55 views
2

有人說SO設置源代碼控制,需要5分鐘。它需要很長時間,它很煩躁,屁股疼痛!而且我沒有得到工作流程如何將svn存儲庫路徑設置爲服務器路徑?

無論如何。我有svn安裝在server1上。 Server1還用於存儲我們現有的所有源代碼和項目,這些代碼和項目現已添加到server1上各自的存儲庫中。我們有三名開發人員在機器1,2和3上工作。當我們在Visual Studio中打開服務器1上的工作副本項目(使用VisualSVN)時,當您使用repos時,文件路徑爲file:/// d:/ foo提交你得到一個錯誤信息,說file:/// d:/ foo找不到,因爲它在服務器上而不是機器上。

你如何使它指向file:// \ server/d $/foo?

我已經試過

SVN切換--relocate文件:/// d:/ foo的文件:// \服務器/ d $/foo的

不工作

工作流程我不能把頭轉過來的部分就是這個。如果我查看一個類項目的工作副本並編譯它。我是否將新的dll從我的工作副本移到生產中?或者我檢查dll回到源代碼控制,然後將其從源代碼控制轉移到生產?如果多個項目使用dll,我是否會將其從源代碼管理中移出到某個文件夾,以便將所有項目查找到,或者將其複製到所有項目的bin文件夾中。頭痛

編輯: 謝謝你的所有輸入,我會堅持這一個!

+1

存儲庫是如何提供的?它是Server1上的本地存儲庫嗎?你在哪裏簽出了工作副本:是在Server1上進行的本地結賬,你現在正嘗試通過網絡使用(即每個開發人員在同一個工作副本上工作,這是錯誤的:每個開發人員都應該有自己的工作副本)還是檢出到每個開發人員的機器? 工作流和其他SVN的東西很好解釋這裏:http://svnbook.red-bean.com/en/1.5/index.html – Steef 2009-05-29 11:39:46

回答

6

是的,源代碼管理只需幾分鐘即可完成設置,但瞭解它的工作方式是關鍵。

爲了回答這個問題,最好解釋一下Source Control是如何工作的以及您應該期望從中獲得什麼。

http://svnbook.red-bean.com/(你可以直接在線閱讀)有一個神奇的解釋,它可以如何工作。前幾章是您真正需要瀏覽的基本知識。

一旦你掌握了本書的基本概要,它應該變得明顯,你的實現出錯的地方。

+3

我強烈推薦閱讀svnbook,它寫得很好,易於閱讀。 – crashmstr 2009-05-29 11:54:42

1

我懷疑你使用的UNC名稱,以便你可以有一個基於網絡的回購,同時仍然使用file://方案是這裏的問題。回購託管機器上應該有一個SVN服務器。這將不會使用file:// scheme進行聯繫。

關於檢查編譯輸出,總之,不要。每個客戶端都可以從頭開始構建顛覆中的內容。編譯的二進制文件在顛覆回購中沒有地位,除非(可能)它們來自第三方並且對於構建而言是必不可少的。

「如果多個項目使用dll,我是否會將其從源代碼管理中移出到所有項目都要查找的文件夾中,或者是否將其複製到所有項目的bin文件夾中......」沒有答案。抱歉。

1

svn書建議您使用file://協議爲多個用戶

Choosing a Server Configuration

不要有所有用戶的簡單的想法所吸引直接通過file:// URL訪問存儲庫。即使存儲庫通過網絡共享隨時可用,但這是一個糟糕的主意。它刪除用戶和存儲庫之間的任何保護層:用戶可能意外(或故意)損壞存儲庫數據庫,很難將存儲庫脫機進行檢查或升級,並且可能導致文件許可問題(請參閱「支持多種版本庫訪問方法」一節)。請注意,這也是我們通過svn + ssh:// URLs - 從安全角度警告訪問存儲庫的原因之一,它與通過file://訪問的本地用戶實際上是一樣的,並且它可能會帶來所有相同的問題如果管理員不小心

1

尼克:

掛在那裏。不要放棄源代碼控制!相信我,你現在騎的學習曲線將會黯然失色。

回覆:您的工作流問題,您遇到了如何構建軟件的問題。這裏有很多方法可以使用,但基本是這樣的。當你編譯你的應用時,確保你的工件(.exe,.dlls等)被標記爲svn:ignore(在Tortoise中,你只需說「add to ignore list」)。這將使SVN免於檢查你的版本。您不希望從開發者副本簽入構建工件,因爲它佔用大量空間,並且會產生很多衝突。

你有幾個選擇,但我會爲根據您的工作流程建議你告訴我:

建立源控制之外的DLL。在SVN中,爲你的「發佈」代碼建立一個目錄 - 對我來說,這是我的項目下的一個名爲「發佈」的目錄。然後,當您的DLL經過測試和驗證後,給它一個版本號並將其簽入到「發佈」部分。告訴開發人員他們可以使用共享DLL的新版本,並讓他們知道這些更改是什麼。然後他們可以隨意下載你的DLL並將它集成到他們的代碼中。

一旦你對SVN感到滿意(它會發生!),你可以繼續使用像Hudson或CruiseControl.NET這樣的東西,它們坐在你的網絡上並監視SVN的變化。當他們檢測到更改時,他們會根據您指定的方式自動構建軟件。這使得所有這些複製業務完全自動化。即使沒有CCNET,你也可以使用nAnt或MSBuild(我個人使用MSBuild)來創建「構建文件」,它將根據你選擇的方法爲你做所有這些複製的東西,所以你不必全部這本手冊內容每次你想做一個構建。