您是否曾經想過在一個專案上工作,該專案能夠跟蹤更改並恢復這些更改?如何使用流行的版本跟蹤系統Subversion(a.k.a SVN)解釋如何使用。
影象的清晰模糊
本指南的目的是讓您能夠在一般情況下使用subversion客戶端,如果您有,還可以在您的*DD-WRT路由器上使用。本指南絕不是顛覆的權威指南,很多資訊都可以在顛覆紅皮書上找到。本指南僅為您提供最基本問題的速記答案。
對於使用版本控制系統的軟體專案,您希望能夠“簽出”最新程式碼的原因可能有很多。這樣做可以讓您從最新的尚未釋出的更改中獲益,幫助您進行測試甚至開發。在本指南中,我們將介紹一些基本的SVN術語,展示如何在Linux、Windows上安裝SVN客戶機,如果您有一個支援OPKG的DD-WRT路由器。我們還包括一個專案的例子,你可以簽出和使用的路由器說。
Subversion並不是現存的唯一版本控制系統,其他的版本控制系統包括Git(由Linux核心創始人Linus Torvalds建立)、Mercurial和PerForce等等。也就是說,它是一個免費的,它的成熟和廣泛使用的世界各地。
走出顛覆“紅皮書”:
Subversion is a free/open source version control system (VCS). That is, Subversion manages files and directories, and the changes made to them, over time. This allows you to recover older versi*** of your data or examine the history of how your data changed. In this regard, many people think of a version control system as a sort of “time machine.”
注意:這本書是關於subversion的知識的終極集合,建議您在所有與subversion相關的主題上參考它。
版本控制是儲存專案在某個時間點的狀態的過程。這類過程通常用於管理軟體開發,以便工作可以繼續改進專案或新增功能,同時能夠跟蹤從上一次總體“儲存”點更改的內容。更詳細地說,這種程式對於一個人來說是有用的,但是對於一組在同一個專案上工作的人來說更有用。這是因為,通常,當作為一個團隊來處理一個專案時,會有一個責任分配,不同的人會改變專案的不同方面。如果沒有版本控制機制,就很難讓每個人都對其他人的最新工作更改保持同步。
儲存庫儲存庫是儲存所有不同位置的所有資料的位置。在subversion世界中,從客戶機的角度來看,是伺服器儲存了專案的資料庫。此資料庫包含作為專案一部分的所有檔案及其所有以前版本。
修訂
建立儲存庫時,它的修訂號為零(0)。每次執行提交時,此數字將遞增一(1)。版本號是儲存庫的全域性版本號。也就是說,儲存庫中的各個檔案沒有單獨的修訂號,即使該檔案中針對該特定提交沒有任何更改。
工作副本
工作副本是特定版本的本地副本(或“簽出”)。通常,簽出時的這個版本是“最新”版本(也稱為“head”),但可以請求以前的版本。使用者可以對本地副本執行任何他/她想要的操作,並且知道,最壞的情況下,他們可以再次簽出程式碼。此外,此副本是“私有的”。這是因為,除非您更新或提交您的副本,否則您不會看到其他人的更改,他們也不會看到您的更改。
更新和衝突解決
可以更新本地工作副本。也就是說,如果您“簽出”了某個版本,並且在工作時,儲存庫上的版本已更新,則可以將工作副本更新為最新版本。事實上,伺服器將阻止您在更新到與儲存庫匹配的最新版本之前提交更改。這樣做是為了迫使您在本地解決衝突,然後才考慮向儲存庫提交更改。
合併
合併是指將更改後的程式碼混合到一個版本中的過程。這也可能需要解決衝突。
提交
提交是將您對本地副本所做的更改合併回儲存庫的過程。這是流程中最危險的部分,因為您所做的更改可能會影響使用同一儲存庫的其他人。這就是為什麼這通常是在經過一些考慮之後,在團隊的一致意見下,在您解決了任何合併衝突之後進行的。
工作流
使用subversion時,從使用者的角度來看,最基本的工作流是:
1簽出現有程式碼(通常是“head”)。2。進行修改、新增檔案和一般程式碼的開發。更新到最新版本,以確保本地副本與儲存庫上的更新同步。4。必要時進行區域性合併並解決衝突。將合併的更改提交到儲存庫中。轉到步驟2。
安裝客戶端
為了能夠使用subversion,您需要在您的計算機上安裝客戶端。
在Linux上
你只需要安裝軟體包。在Ubuntu/Mint上,這將透過以下方式完成:
sudo aptitude install subversion
在DD-WRT上
如果您遵循了“How To Install Additional Software On Your Home Router(DD-WRT)”,只需發出以下命令即可安裝svn客戶端:
opkg update; opkg install subversion-client
在Windows上
儘管我們這些極客使用者可能會開始忘記GUI有時甚至存在,但並不是每個人都有。如果您想使用windows客戶機連線到SVN儲存庫,到目前為止最流行的是“Tortoise”。要使用它,只需下載程式並以常規的“下一步,下一步,完成”方式安裝。
建立“儲存庫”
雖然在本指南中我們不會詳細介紹如何設定subversion伺服器,但Google替代方案對於新手使用者來說並不是一個壞的開始。要建立Google儲存庫,請執行以下操作:
“Checkout” your working copy
Once your project has been created, you Should be able to find the instructi*** on how to access it in the “Source” tab.
Google程式碼的好處是它將為您的專案啟用匿名只讀版本。如果您不想處理建立自己專案的麻煩,您可以匿名簽出此作者的儲存庫。
關於hotfortech專案的一個注意事項是:這個專案是為了包裝已經新增到DD-WRT中的關於如何極客(我個人使用)的特性,以及一些個人的調整。雖然這個專案與howtogeek上發表的文章結合使用,但它仍然是我的私人專案。也就是說,它非常適合我的Buffalo路由器(AR71xx架構),我個人的突發奇想,而且很容易偶爾出現borkage。
在Linux/DD-WRT上
建立要在其中工作的目錄,例如在DD-WRT上,可以是:
mkdir -p /jffs/svn; cd /jffs/svn
Linux上的full命令由SVN命令本身、“checkout”指令、儲存庫地址和要簽出的目錄組成。建立一個空目錄並執行以下命令:
svn checkout http://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-read-only
請注意,在上面的示例中,只讀版本正在簽出。如果選擇建立自己的儲存庫,則需要使用httpS連結。
在Windows上
Because tortoise is a shell extension, you will need to use the Windows file explorer’s context menu (right-click) to use it. In fact, if you try to invoke it from the start menu, you will get:
“更新”&;“合併”您的工作副本如果您與同事或您自己正在從多個位置(即膝上型電腦、桌上型電腦甚至路由器)更新程式碼,則必須在提交最新更改之前更新工作副本。
在Linux/DD-WRT上
在這些POSIX系統上執行此操作的命令很簡單:
svn up
在Windows上
“提交”您的更改就是這樣,您應該沒有衝突,並準備好用您的改變。改變這裡需要注意的一點是,向提交中新增“日誌”訊息是一種常見的做法,這樣可以很容易地回憶起為什麼要進行更改。事實上,Google的儲存庫將此作為提交的強制性前提條件。
在Linux/DD-WRT上
這是我對hotfortech專案所做的承諾的一個例子,該專案將其升級到版本19:
svn commit -m “updated to reflect new ant-ads pack link”
在Windows上
最後的評論這應該足以讓你開始。建議您閱讀SVN參考書,以便更深入、更好地掌握SVN的所有用法、選項和注意事項。此外,我們(再次)提醒您,subversion不是唯一的版本控制系統,GIT(由Linux核心創始人Linus Torvalds建立)近年來似乎越來越流行。
如果你選擇跑步-配置.sh從路由器上的hotfortech專案中,你會發現它目前將為你安裝:反廣告包、Opkg geek init指令碼,以及完整的GNU“ls”、“less”、“BASH”等等。
/jffs/svn/hotfortech-dd-wrt/running-conf.sh
更多功能正在等待並將在將來新增。
系統管理員將透過編碼來擺脫編碼。
... 如果您要檢查其他版本控制系統(如Subversion)的儲存庫,您會發現它們為每個單獨的檔案維護每個版本的一個副本。這意味著如果您擁有一個檔案的儲存庫,然後建立兩個分支,則repo包含該檔案的兩個不同...
你可能已經使用adobephotoshop很長一段時間了,但即便如此,還有很多小東西要學。為什麼不從初學者的角度重新開始呢? ...
...麼難。有了大量的線上和線下資源、專門的社群和專家來跟蹤社交媒體,學習程式設計比過去簡單多了。對你的心理健康有好處。即使是孩子也可以很早就開始程式設計。 ...
攝影是你最難學的東西之一,這就是為什麼我來這裡為初學者提供幾個基本的攝影技巧。用相機指著快門就足夠了——拍攝一張照片來匹配你的視力是困難的地方。 ...
...下,會啟用“與Twitter的業務夥伴共享資料”設定,以及跟蹤在web上檢視Twitter內容的位置。至少,您應該透過指向“設定”>“內容首選項”>“個性化和資料”來關閉這兩個選項。 ...
你能上的最好的攝影課就是你家門口的那門。換言之,出去拍下所有的東西!不過,也有一些很棒的網上攝影課值得探索。 ...
... 這張簡單的線上烹飪指南清單是為初學者準備的。不過,如果你在烹飪之旅中走得更遠,看看這些網站上的高階食譜也不會對你造成傷害。 ...
... 微軟最近推出了.NETCore作為.NETFramework的開源簡化版本。免費,易於安裝,允許跨平臺開發。這意味著任何開發人員都可以在任何作業系統上建立控制檯和web應用程式。 ...
...全景照片 五個視覺感測器,以及GPS和GLONASS跟蹤 飛行時間約20-21分鐘 智慧控制:用手勢控制你的無人機 ...