跳轉至內容

使用 XNA 建立遊戲 / 程式設計 / Git 和 Subversion

來自 Wikibooks,開放世界中的開放書籍

版本控制系統

[編輯 | 編輯原始碼]

版本控制系統(也稱為修訂控制或原始碼控制系統)是一種用於跟蹤文件和二進位制檔案更改的軟體。它通常用於軟體開發中管理原始碼檔案。對於每次更改,都會儲存唯一的 ID、時間戳和更改檔案的使用者。因此,可以輕鬆比較兩個不同版本之間的更改,以及誰在何時更改了檔案。某些系統還提供對特定版本進行註釋(以標記更改的內容)或為其提供唯一名稱(例如“Beta 1”或“釋出候選版本”)的方法。由於儲存了所有更改,因此可以回滾或更改到儲存的任何版本。這還提供了一種針對惡意或意外更改的保護措施,並在資料丟失的情況下充當備份。
版本控制系統分為三種類型:本地系統、集中式系統和分散式系統。

本地系統

[編輯 | 編輯原始碼]

本地系統僅需要一臺計算機。它們最適合單個開發人員,他們希望控制其工作的小型專案。可能每個人都使用過本地系統,即使是無意的。Microsoft Office 或 OpenOffice 等辦公軟體會在程式崩潰或記憶體損壞的情況下儲存當前開啟檔案的備份。您可能已經注意到,例如 Microsoft Word 提供在計算機崩潰時開啟檔案的情況下恢復檔案以前版本的功能。為了實現這一點,該程式會每隔幾分鐘儲存當前開啟檔案的備份,通常對使用者隱藏,無論他是否故意儲存了他的文件。另一個示例是現代 Microsoft Windows 版本的影射覆制服務。它會儲存系統檔案的副本,以便在檔案被損壞或由於錯誤更新而損壞的情況下進行恢復。

集中式系統

[編輯 | 編輯原始碼]

集中式系統使用客戶端-伺服器架構來跟蹤更改。這種型別的系統通常用於跟蹤多個檔案或整個程式設計專案。伺服器在其硬碟上儲存所有檔案、資料夾和更改的“官方”副本。這也稱為儲存庫。想要參與開發過程的客戶端首先需要獲取儲存在伺服器上的檔案。此過程(初始過程以及從伺服器進行的任何後續提取)稱為“檢出”,在此過程中,儲存庫的整個內容將複製到本地計算機。
現在,客戶端可以更改任何他想要更改的檔案,例如在專案中新增一些新過程,或改進演算法。完成所有更改後,他需要將更改傳達給伺服器。將更改後的檔案上傳到伺服器稱為“提交”。伺服器會跟蹤客戶端對儲存庫所做的任何更改,並在伺服器中新增一個新的“修訂”。同樣在該專案上工作的其他使用者需要將其本地儲存庫更新到伺服器上新提交的版本。如果對檔案的更改重疊,則會發生“衝突”。然後,使用者有機會檢視差異,並根據所使用的版本控制軟體選擇合併它們。
可以檢出已提交到伺服器的任何以前版本。

分散式系統

[編輯 | 編輯原始碼]

分散式版本控制系統不使用集中式儲存庫。相反,每個使用者都有自己的本地儲存庫,並且更改透過補丁傳達給其他使用者。但是,可能有一個公共儲存庫,每個人都在其中釋出其更改(在大多數開源專案中,通常有一個上游儲存庫,但這不是強制性的)。與強制所有使用者之間所有更改同步的集中式系統相比,分散式系統專注於更改的共享。這有一些優勢,但可能不適合所有型別的專案。例如,每個開發人員都有一個本地版本控制系統,可用於草稿,這些草稿並不重要到足以將它們同步到集中式伺服器。

版本編號

[編輯 | 編輯原始碼]

專案越複雜,儲存庫中就會出現越多的不同版本。如果開發人員或團隊朝著特定版本(例如修復一些錯誤)工作,則最好為每個版本提供一個唯一的版本號。這有助於使用者區分不同的版本,以便他可以看到自己使用的是應用程式的最新版本。

一種廣泛使用的版本編號方案是使用三位數字。第一位數字表示主要版本。只有在發生重大更改或添加了許多新功能時才應更改它。第二位數字表示次要版本。如果添加了一些(較大的)功能或修復了許多錯誤,則會增加它。第三位數字顯示程式碼的微小更改,可能是在之前的版本中被忽略的關鍵錯誤修復,需要快速修復。當然,可以使用完全不同的方案對版本進行編號,例如僅使用兩位數字或使用版本的指定日期。


詞彙表

[編輯 | 編輯原始碼]

大多數版本控制軟體使用與其他系統相同的術語,因此這裡有一個軟體版本控制中常用詞語的快速列表[1]

分支
分支是從當前使用的程式碼庫中分叉或拆分出來。這在包含實驗性功能或程式碼的特定部分需要進行重大修改時很有用。
檢出
在儲存庫中建立任何版本的本地副本。
提交
將更改後的程式碼提交到儲存庫。
衝突
如果不同的開發人員對同一個檔案進行了更改並提交,而系統無法合併這些更改而不會冒損壞程式碼的風險,則可能會發生衝突。必須解決衝突(手動),或者必須放棄其中一個衝突更改以支援另一個更改。
合併
合併是一個操作,其中一個或多個更改應用於檔案。例如,這可以是將分支合併到主程式碼行中,也可以是僅向儲存庫提交一個小改動。理想情況下,系統可以自動合併檔案,沒有任何問題,但在某些情況下可能會發生衝突(見上文)。
儲存庫
包含專案的最新資料。所有更改都提交到儲存庫,以便每個開發人員都可以訪問最新版本。
主幹
開發行的名稱,其中包含專案最新的、最前沿的程式碼。
更新
從儲存庫接收更改後的程式碼,使本地版本與儲存庫中的版本保持一致。

版本控制軟體

[edit | edit source]

流行的版本控制系統包括 SVN(Subversion)、Git、CVS、Mercurial 等等。在本部分中,我們將重點關注最廣泛使用的兩種系統(SVN 和 Git),並解釋如何在 Visual Studio 中使用它們來組織和控制 XNA 專案。

可以在此處找到詳細列表和比較:版本控制軟體比較

Subversion

[edit | edit source]

簡介

[edit | edit source]

SVN 代表 Subversion,由 Apache 基金會開發。它是一個集中式的軟體版本控制系統,這意味著它有一個由伺服器託管的中央儲存庫(專案存檔),客戶端可以訪問它。當用戶在本地更改檔案並將其提交到儲存庫時,只會傳輸所做的更改,而不是整個檔案。這使得系統非常高效。此外,Subversion 儲存庫的大小與所做更改的數量成正比,而不是修訂的數量。這將儲存庫的大小保持在最小。
Subversion 背後的檔案系統使用兩個值來標識檔案系統中特定檔案的特定版本:路徑和修訂號。Subversion 檔案系統中的每個修訂號都有自己的根目錄,用於訪問該修訂號的內容。最新修訂號在 SVN 中被稱為“HEAD”。

SVN 檔案系統中的檢入是透過使用事務來保持原子的。這意味著客戶端要麼提交所有內容,要麼不提交任何內容。這有助於避免由檢入錯誤或有缺陷的事務引起的構建失敗。因此,事務可以被提交併成為最新修訂號,也可以在任何時候被中止。

Subversion 被視為 CVS 的進一步發展,CVS 是另一個但更古老的版本控制系統,它不再被積極開發。它改善了 CVS 的一些問題,例如移動檔案和目錄或重新命名檔案和目錄,而不會丟失版本歷史記錄。此外,在 SVN 中,分支和標記更快,因為它只是在儲存庫中實現為一個複製操作。


SVN 的客戶端/伺服器概念

[edit | edit source]
Subversion 背後的客戶端-伺服器概念:伺服器組織一箇中央儲存庫,客戶端可以從該儲存庫更新其本地工作副本並向其提交更改。

Subversion 系統的概念是,儲存庫託管在伺服器上,並由不同的 SVN 客戶端透過 SVN 伺服器訪問。每個客戶端都可以檢出一個工作副本,對其進行操作並將更改提交到中央儲存庫(提交)。然後,所有其他客戶端都可以更新其工作副本,使其始終與中央儲存庫中的最新版本同步。

在 Windows 中設定 SVN 伺服器

[edit | edit source]

安裝 SVN 伺服器

[edit | edit source]

首先從官方網站下載 Subversion Windows MIS 安裝程式:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&expandFolder=91&folderID=74

當前版本稱為:Setup-Subversion-1.6.6.msi

然後在 Windows 上安裝 Subversion。要檢查 Subversion 是否已成功安裝和配置,請在 Windows 中開啟一個新的命令視窗(透過單擊“開始”→“執行”→然後輸入“cmd”並按“確定”)。在命令視窗中輸入 svn help,如果一切正常,您應該看到一些幫助資訊。

使用 SVN 伺服器和 TortoiseSVN 建立 SVN 儲存庫

[edit | edit source]

現在我們將建立一個 Subversion 儲存庫。為此,我們將使用另一個名為 TortoiseSVN 的工具,它是一個流行的程式,用於在 Windows 中訪問和使用 SVN 儲存庫。它是一個 Subversion 客戶端,它作為 Microsoft Windows shell 擴充套件實現,可以在 Windows 資源管理器中輕鬆使用。

因此,首先從這裡下載 TortoiseSVN:https://tortoisesvn.tw/downloads.html 然後進行安裝。安裝後,應該會在 Windows 資源管理器的右鍵單擊上下文選單中新增新的選單項,允許直接在 Windows 中使用 SVN 命令。

然後,我們需要建立一個新資料夾,用於儲存伺服器將來儲存的儲存庫。在本例中,我們將建立一個名為 D:\repository 的資料夾。

然後右鍵單擊這個新資料夾,並選擇 TortoiseSVN –> 在此處建立儲存庫...,TortoiseSVN 將在這個資料夾中建立空 SVN 儲存庫的預設結構。

現在,要向儲存庫新增一些內容,我們將首先在一個臨時資料夾中建立一個所謂的標準佈局,然後將此資料夾匯入到我們的新儲存庫中。因此,建立另一個名為 D:\structure 的資料夾。在此資料夾中新增三個子資料夾,並分別命名為:trunk、tags 和 branches。trunk 目錄是專案的根目錄,將包含所有版本化的資料。

現在,要匯入 structure 資料夾,請右鍵單擊它,然後選擇 TortoiseSVN –> 匯入...。在開啟的視窗中,將以下路徑作為“儲存庫的 URL”插入

file:///D:/repository

匯入訊息應包含要匯入儲存庫的版本的註釋。編寫類似“首次匯入”的內容,然後單擊“確定”。應該會開啟一個新視窗,記錄匯入到儲存庫中的所有三個資料夾。就是這樣,您可以刪除名為 structure 的臨時資料夾,因為資料現在已經在儲存庫中。

設定 Subversion 伺服器

[edit | edit source]

此外,我們應該調整新儲存庫的安全性,這一點在網路或網際網路中使用儲存庫時尤其重要。這意味著為匿名使用者(所有人)和認證使用者(擁有儲存庫登入名和密碼的使用者)設定安全級別,並使用其密碼配置使用者帳戶。

為此,請在文字編輯器中開啟檔案 D:\repository\conf\svnserve.conf。預設情況下,所有配置引數都是註釋掉的,因此,如果您要啟用一個引數,則必須透過刪除行開頭的 # 來取消註釋它。重要部分在第 12 行和第 13 行

anon-access = read auth-access = write

訪問設定是 read、write 和 none。在上述情況下,每個人都可以從儲存庫檢出當前版本,但只有經過身份驗證的使用者(擁有帳戶)才能提交更改。這是大多數開源專案的操作方式,所以讓我們暫時保留此設定。如果您將一個或兩個引數都設定為 none,則任何人都無法從儲存庫中讀取或寫入。

現在,我們只需要新增一些經過身份驗證的使用者來測試系統。為此,請取消註釋 conf 檔案中第 20 行,該行顯示為

password-db = passwd

這意味著包含登入名和密碼的資料庫可以在與 svnserve.conf 相同目錄下的名為 passwd 的檔案中找到。因此,請儲存 svnserve.conf 並開啟預設檔案 passwd。透過在檔案中新增具有以下模式的新行,可以定義新的使用者

username = userpassword

因此,只需建立一個測試帳戶並儲存檔案。

使用 SVN 伺服器託管儲存庫

[edit | edit source]

現在是時候使用我們的儲存庫了,所以讓我們用 SVN 來託管它。開啟一個視窗命令列視窗,然後執行以下操作

svnserve -d -r "D:\repository"

這將啟動並啟用 SVN 伺服器。每次您想使用伺服器時,都需要以這種方式啟動它,但這只是我們使用伺服器和客戶端在同一臺機器上的測試環境。通常,SVN 伺服器位於網際網路上的單獨伺服器上。

使用 SVN 客戶端

[edit | edit source]

使用 TortoiseSVN 客戶端檢出工作副本

[edit | edit source]

我們不會直接在倉庫上工作,因為它屬於伺服器,而 SVN 背後的原則在於每個人在專案上工作時都會檢出自己的副本並在本地(工作副本)使用它。通常,SVN 伺服器是一個網路資源,用於檢出專案的副本並提交在本地進行的更改(提交)。

因此,讓我們從自己的本地 SVN 伺服器檢出一個工作副本並使用它。我們將再次使用 TortoiseSVN。在 D:\workcopy(或任何其他路徑)中建立一個新資料夾。右鍵單擊新資料夾,然後在上下文選單中選擇 SVN 檢出。

對於倉庫的 URL,請填寫

svn:///trunk

這意味著我們從一個恰巧在本地設定的 SVN 伺服器(這就是我們可以使用 localhost 的原因)進行檢出。trunk 資料夾包含最新版本。將其餘設定保持原樣(啟用 HEAD 版本),然後單擊確定。
如果您在安全設定中配置了需要驗證使用者才能執行檢出,那麼您需要輸入您的登入名和密碼。否則,如果您啟用了匿名使用者的讀取許可權,則不會提示您。
狀態視窗將告訴您關於成功檢出和版本號的資訊。檢出現在已完成,倉庫的內容現在位於工作副本目錄中。但它為空,因為我們的倉庫中還沒有任何檔案。只有一個名為 .svn 的隱藏目錄,它包含一些內部 SVN 版本歷史記錄,不應刪除。

現在,我們將向工作副本新增一個簡單檔案,並使用 TortoiseSVN 將其提交到倉庫。稍後,我們將直接在 Visual Studio 中使用整個專案執行此操作。
在 Windows 資源管理器中,在 workcopy 檢出中新增一個文字檔案,然後右鍵單擊它並選擇:TortoiseSVN -> 新增... 新檔案的圖示現在應該從一個小問號變為藍色加號(如果它沒有,請使用 F5 重新整理)。

該檔案現在被標記為將來要新增的內容,但尚未提交。這是透過右鍵單擊工作副本資料夾並選擇來完成的:SVN -> 提交... 輸入註釋(此註釋應包含對更改的簡短摘要,以便更清楚地瞭解在檔案的哪個版本中進行了哪些更改),然後單擊確定。
此時應再次要求您輸入密碼和登入名,但您也可以儲存它,以便 TortoiseSVN 不會再次詢問。重要的是,您要配置您的 SVN 伺服器,以便提交只能由已驗證的使用者執行,以便更容易跟蹤誰提交了更改,並防止未註冊的人員進行不必要的更改。
在此步驟之後,狀態視窗應告訴您關於成功提交的資訊。

在 Visual Studio 中使用 AnkhSVN 使用 SVN

[edit | edit source]

我們已經瞭解了 SVN 客戶端 TortoiseSVN,它使用 Windows 上下文選單將 SVN 整合到 Windows 資源管理器中,但如果我們能夠直接在 Visual Studio 中使用 SVN,那就更好了。有兩個專案提供這種功能:AnkhSVN 和 VisualSVN。雖然 VisualSVN 是一款商業產品,需要花費 50 美元才能獲得個人許可證,但 AnkhSVN 是開源的,免費的。這就是為什麼我們在這篇文章中只看一下 AnkhSVN 的原因。
AnkhSVN 支援 Microsoft Visual Studio 2005、2008 和 2010。它提供了一個介面,可以在 Visual Studio 開發環境中直接執行所有重要的 SVN 操作。可以在這裡下載 AnkhSVN:http://ankhsvn.open.collab.net/downloads

安裝 AnkhSVN,我們就可以開始了。

使用新倉庫的最簡單方法是使用 Visual Studio 建立一個新專案,並將其放在我們的 workcopy 目錄中。Visual Studio 應該已經自動識別到它是在 SVN 工作副本中建立的,因此 SVN 功能和倉庫的正確地址已經設定好了。

此時,我們在倉庫中建立了一個新專案,因此所有新檔案都需要首先提交。為此,AnkhSVN 在開發環境中提供了不同的方法。

  • 您現在可以開啟一個視窗來檢視和提交更改(檢視 -> 掛起的更改)。在那裡,您可以看到所有需要提交的檔案的列表。只需單擊提交,然後像在 TortoiseSVN 中一樣輸入註釋,一切應該都能正常工作。
  • 將專案提交到倉庫的另一種方法是右鍵單擊解決方案資源管理器中的解決方案名稱,然後單擊“提交解決方案更改”。在解決方案資源管理器中,您還可以看到類似於 TortoiseSVN 中使用的圖示,以顯示每個檔案的同步狀態。
  • 要更新來自倉庫的更改,只需單擊掛起的更改檢視中的更新即可。同樣,還有另一種方法,即右鍵單擊解決方案資源管理器中的解決方案名稱,然後在上下文選單中選擇“將解決方案更新到最新版本”。
  • 要從倉庫檢出現有的 Visual Studio 專案,請單擊開啟 -> Subversion 專案... 然後輸入 SVN 伺服器地址,並在倉庫中找到專案檔案。
  • SVN 的其他功能,如合併分支、切換分支、鎖定檔案等等,也可以透過解決方案資源管理器中的上下文選單獲得。

您不需要使用 AnkhSVN 來在 SVN 倉庫中使用 Visual Studio 專案。您也可以使用 SVN 命令列工具或 TortoiseSVN。您應該注意的是,您提交了哪些檔案,因為 Visual Studio 會在機器上的解決方案目錄中本地建立構建和除錯檔案,這些檔案不應提交,而應在每個人的機器上重新構建。
您應該提交 Visual C# 解決方案的 *.sln 檔案,但不提交 *.suo 檔案(兩者都在解決方案的主資料夾中)。您還應該提交所有其他檔案,除了 bin 和 obj 資料夾。透過在 Windows 資源管理器中右鍵單擊並選擇 TortoiseSVN -> 新增到忽略列表,您可以將這些資料夾永久新增到忽略列表,以便它們不會提交到倉庫。
如果您在 Visual Studio 中使用 AnkhSVN,則不必擔心這個問題,因為它會自動新增和提交必要的檔案。

(介紹原則,談論客戶端和伺服器軟體,以及如何與 Visual Studio 整合。展示如何使用它,也適用於初學者。)

Git 是一個分散式版本控制系統。它由 Linux 的建立者 Linus Torvalds 於 2005 年開發。Git 的重點在於速度和可擴充套件性,適用於大型專案。專案的規模(以及倉庫的大小)對補丁的效能影響很小[2]

簡介

[edit | edit source]

Git 的基礎設施

[edit | edit source]

基本上,Git 包含三個主要部分,這些部分在使用 Git 時很重要。由於 Git 是一個分散式系統,因此您有一個本地倉庫,顧名思義。這是記錄所有更改的地方。您所有的更改首先提交到您的本地倉庫,然後必須明確推送到遠端倉庫。包含您程式碼的檔案位於工作目錄中。在工作目錄和本地倉庫之間是一個暫存區,它收集所有更改,然後再將它們提交到本地倉庫。它就像一個裝卸區,包裹在裝入飛機之前先存放在那裡。

術語

[edit | edit source]
Git 的資料流

Git 使用的術語與上面詞彙表中描述的略有不同。更改會被新增到暫存區。提交描述了將檔案從暫存區新增到本地儲存庫的過程,而推送則將所有更改傳送到遠端儲存庫。獲取是指從遠端儲存庫獲取所有更改到本地儲存庫。拉取直接將遠端儲存庫複製到本地儲存庫。檢出會還原本地儲存庫中的更改,並從暫存區或本地儲存庫中恢復檔案的狀態。右側的圖表說明了 Git 的資料流。


Windows 上的 Git

[編輯 | 編輯原始碼]

使用 Git 有兩種方法:透過命令列或 GUI。前者完全依賴於基於文字的命令,並在所有作業系統上執行。或者,可以使用圖形使用者介面來管理你的原始碼。雖然命令列輸入有其優點(例如獨立於作業系統),但它實際上迫使使用者學習命令(用於建立儲存庫、提交、更新等),這可能會在最初減慢開發過程。在我們的例子中(使用 XNA 建立遊戲)使用 GUI 非常有利,因為我們可以與 Visual Studio 緊密整合,並可以直接從開發環境中管理專案。Windows 下有許多 Git 圖形工具。由於 TortoiseSVN 在 SVN 使用者中很受歡迎,它的 Git 版本 TortoiseGit 可能是一個選擇,但它目前還沒有達到 SVN 版本的水平。因此,我建議使用 Git Extensions。它具有與 Visual Studio 的直接整合,並且結合 Git Source Control Provider,我們可以在專案中看到顯示檔案狀態的小圖示(例如衝突、提交狀態等)。

安裝 Git Extensions

[編輯 | 編輯原始碼]

安裝 Git Extensions 很容易,只需下載 最新版本,包括 MsysGit(本質上是 Git 的 Windows 原生移植)和 KDiff3(用於比較和合並檔案),然後啟動安裝程式。確保選擇“安裝 MSysGit”(必選)和“安裝 KDiff”(推薦),並檢查是否已選擇你 Visual Studio 版本(本例中為 2008)的支援。啟動 Git Extensions 後,可能會彈出一個清單,提醒你設定一些引數。如果 Git 的路徑未檢測到,則必須將其指向其安裝資料夾。此外,你需要指定使用者名稱、電子郵件地址以及 diff 和 merge 工具。如果一切正常,清單應顯示所有專案為綠色。


如果你有自己的伺服器,你可以像上面描述的那樣輕鬆地設定一個 SVN 伺服器並託管自己的儲存庫。但是,如果你在一個小型開源專案上工作,建議使用一個可用的免費開源託管服務。有很多免費的開源託管服務可以幫助託管和分發開源專案。大多數提供 SVN 版本控制系統,有時還會提供其他系統,如 Git 或 Mercurial。

因此,這些託管服務不僅提供了版本控制系統,這對與團隊協同工作非常有用,而且還可以幫助託管專案以供公開分發。另一個優勢是,透過這種渠道更容易找到更多你的專案的開發人員,因為它對於其他開源開發人員來說更加可見。

可以在 這裡找到帶有詳細比較的開源託管服務的完整列表。最受歡迎的是 Google Code、SourceForge 和 GitHub。

在 Google Code 上託管

[編輯 | 編輯原始碼]

在 Google Code 上託管專案非常容易,你不需要像在 SourceForge 上那樣申請並等待透過。只有兩個要求

  • 專案必須是開源的。
  • 你必須在 Google 能夠開展業務的國家/地區(幾乎是全世界)。

它僅限於開源,因為 Google Code 的目標是幫助沒有資金無法負擔託管的開源開發人員。建議在專案中明確宣告使用可用的開源許可證之一。因此,對於需要託管以實現高效團隊協作和分發的較小型業餘專案來說,Google Code 是正確的選擇。

Google Code 上的每個專案都有自己的 Subversion 和 Mercurial 儲存庫。 Mercurial 是另一個基於分散式系統且跨平臺的版本控制系統。

除了具有儲存庫和程式碼託管的版本控制系統之外,Google Code 還提供了一些有用的額外功能,例如錯誤跟蹤系統、可用於文件的專案 wiki 以及與 Google Groups 中的郵件列表的整合。所有這些都可以透過簡單的 Web 介面訪問。有關更多資訊,請閱讀官方 Google Code 常見問題解答:http://code.google.com/p/support/wiki/FAQ

要開始你的專案,你需要一個 Google 帳戶並按照此頁面上的步驟操作:http://code.google.com/p/support/wiki/GettingStarted


在 SourceForge.net 上託管

[編輯 | 編輯原始碼]

SourceForge 是全球最大的開源軟體託管網站。它成立於 1999 年,迄今已託管了超過 230,000 個專案,擁有超過 200 萬註冊使用者。其目標與 Google Code 相似:提供免費服務來幫助人們構建和分發開源軟體。

它透過為使用者提供多種版本控制系統,充當開源軟體開發人員的集中位置:SVN、CVS、Git、Mercurial 和 Baazar。其他功能包括專案 wiki、錯誤跟蹤系統、MySQL 資料庫和 SourceForge 子域。

SourceForge 還包含一個內部排名系統,使活躍的專案更容易被其他開發人員發現,這有助於吸引更多人加入你的專案。

要在 SourceForge 上託管,你首先需要申請並接受他們的使用條款(其中涉及授予 SourceForge 永久許可證)。然後,SourceForge 團隊將決定是否接受你的專案作為 SourceForge 專案。
兩個重要的標準是,你的專案要生成軟體、文件或軟體的聚合(例如 Linux 發行版),並且你的專案要使用其中一個開源許可證。如果不是開源,則會被拒絕。
通常來說,在 SourceForge 上託管一個剛開始的非常小型的私人專案比較困難。Google Code 是更好的選擇,因為它不需要透過。

要開始,請先在 SourceForge.net 上註冊一個帳戶。


在 Github 上託管

[編輯 | 編輯原始碼]

託管你的專案的另一種選擇是 Github。只要你的專案是開源的,並且對所有人公開,建立帳戶和儲存庫都是免費的。你將擁有大約 300 MB 的儲存空間(沒有“硬”限制),因此請注意,如果你將大型紋理或音訊檔案推送到儲存庫中。如果你需要受限訪問,則需要付費。有多個付費計劃可供選擇,具體取決於你的需求。註冊後,你需要建立一個新的儲存庫。給它一個名稱,並可選地提供描述和主頁 URL。

現在你需要配置 Git Extensions 將儲存庫克隆到你的計算機,這是一個非常繁瑣的任務。按照 "設定 SSH 金鑰" 過程(最後一步是可選的,它只是檢查一切是否正常工作)。確保記住你輸入的密碼短語。現在你需要建立一個私鑰檔案。啟動 puttygen.exe,選擇 Conversions -> Import。導航到 id_rsa 檔案(沒有副檔名的檔案)並選擇它。單擊“儲存私鑰”並將其儲存在某個位置,但請確保其副檔名為 *.ppk。現在啟動 Git Extensions,選擇克隆儲存庫。現在你需要填寫以下欄位

要克隆的儲存庫:來自 github 源選項卡的 SSH 地址。應該是類似“git@github.com:username/projectname.git”的內容
目標:儲存儲存庫的資料夾。(例如 D:\Repositories)
要建立的子目錄:放置你檔案所在的子目錄的名稱(例如“XNA Project”,生成的路徑為 D:\Repositories\XNA Project)

點選“載入 SSH 金鑰”,並將其指向您之前建立的 *.ppk 檔案。完成後,點選“克隆”。倉庫現在正在複製到您的計算機。完成後,您可以開始將您的 Visual Studio 解決方案放到倉庫資料夾中並進行操作。透過 Git Extensions 中的“提交”按鈕,您可以將您的檔案提交到本地倉庫並將其推送到 github。請記住,您可能需要先將檔案新增到暫存區。如果您想從遠端倉庫獲取最新檔案,請點選“拉取”按鈕。

與您一起參與專案的其他人員也需要擁有 github 帳戶。您可以從專案的管理面板中將其新增為合作者。他們將擁有完全的讀寫許可權。如果您需要有關此處描述的任何過程的進一步幫助,請檢視 Github 幫助系統。它非常全面,並且以帶有有用螢幕截圖的形式描述了幾乎所有內容。

參考資料

[編輯 | 編輯原始碼]

SourceForge 網站上的描述

SVN - Leonhard Palm Git/版本控制軟體 - Lennart Brüggemann

  1. 修訂控制#通用詞彙 維基百科。2011 年 5 月 18 日獲取。
  2. DVCS Round-Up: One System to Rule Them All?--Part 2. Linuxfoundation.org. 2011 年 5 月 18 日獲取。
[編輯 | 編輯原始碼]

參考資料

[編輯 | 編輯原始碼]
華夏公益教科書