最課程階段大作業之01:使用SVN實現版本控制

陸敏技發表於2018-08-07

       版本控制在友軍那裡都是放在整個培訓的最後階段才開始講的,但我們打算放到SE階段。與其匆匆在專案實戰階段弄個半生不熟,然後進入實際工作中接受他人對你的懷疑,不如……早死早超生~~~。

       可是,我們畢竟現在才剛學了Java一個月,程式碼都寫的不溜呢,甚至都不知道目前掌握的知識能做點撒實際有用的工作,怎麼就來個版本控制?版本控制是撒?

       抄一段百科的版本控制解釋:版本控制是指對軟體開發過程中各種程式程式碼、配置檔案及說明文件等檔案變更的管理,是軟體配置管理的核心思想之一。

       看到沒,版本控制是一種思想,但是程式猿不跟你講思想,跟你講實實在在的東西,所以,實現這個思想的一定是個實實在在的工具。在最課程的整個學習過程中,商業專案實戰階段程式碼的版本控制工具,我們使用SVN。而,個人工具程式碼集,我們要求使用git,放到github中。

       為什麼要現在就開始體驗版本控制呢?因為我曾經詢問過很多學員,大家對於畢業後軟體公司的真實開發流程很茫然。而最課程想要帶你做的,就是提前適應真實的開發,讓學員從儘可能早的時刻,就參與到需求管理、版本控制、同行review、解決程式碼衝突、移行、測試、釋出的整個過程。

       我們在培訓班學習,重點絕不應該僅僅是編碼知識(那還不如去自學看視訊),而應該是如何使用學到的知識應用到真實的開發中。

       來提前感知下,整個開發流程大概是個什麼樣子的吧

軟體開發中的精簡併行過程(SPP)

       以上整個SPP過程包括:6大階段、12個過程域、28個規程、31個文件模板。你有沒有準備好到我們最課程來感知一下呢?

       不管怎麼樣,讓我們先首先學習這整個過程中最重要也是最基礎的一環:版本控制吧。

 

1. 什麼是版本控制

       上文已經簡單介紹過了,現在我們用白話來再介紹一下它有什麼用:

       首先,能將程式碼提交到伺服器,這樣本機即使被炸掉了,或者你突然離職消失了,只要伺服器沒被老闆娘砸掉(什麼,有這種事情?是的,回頭給你們講講我一個客戶的故事),公司的程式碼就都還在;

       其次,能將程式碼回退到以前的任何一次提交上。這是什麼意思呢?比如,你一個月前寫了一個功能:讓APP的背景隨手機殼顏色的變化而變化,但是一個禮拜前你按照產品經理的要求把功能修改為:讓APP的背景隨我心情的變化而變化。但是,怎麼又一個但是?但是就是這麼任性,但是這在實際的開發中就是這麼容易出現。但是現在產品經理跑來告訴你:我不想要你上週剛實現的功能了,你把功能回退到一個月前的那個背景隨手機殼顏色變化而變化的功能吧。此刻,你心中的心情應該是這樣的:

       要知道,程式碼在本機可是已經覆蓋了,這個時候,版本控制管理工具就可以發揮作用了,你可以將程式碼回退到歷史上任何一個時刻。

       這裡來個小插曲,要想不被產品經理欺負,可以嘗試準備如下工具:

       最後,版本控制的另一個重要功能是,任何稍微大型點的軟體,都不可能是一個人完成的,所以,我們需要一個工具將團隊成員的程式碼合併到一起,看上去像是一個人寫的一樣。所以,程式碼的提交和合並也是我們真實開發的日常。

       好了,暫時對於初學者來說,就講到這吧。目前夠用了。

2. SVN介紹

       SVN就是那個實現版本控制思想的工具。廢話不多說,直接給出軟體的下載地址:https://www.visualsvn.com/

 

3. Svn伺服器端安裝

       下載回來大概長這樣

      雙擊安裝

       如上選擇,next

       選擇標準安裝

       注意哦,預設是不需要https的,如果有同學手賤想嘗試https,也是可以的。但我牆裂建議你不選擇https,因為……在區域網中,沒撒特別的意義。而且,在整個學習的過程中,還要求其他同學連線到你的原始碼伺服器上,選擇了https的話,有些同學的電腦可能會連不上你的電腦。

       安裝完畢在系統服務裡有svn的服務,如下:

       伺服器端在公司裡,是真的安裝在一臺伺服器上的。在我們的學習過程中,那就跟客戶端一樣安裝在你自己的學習機上就行了。

4. Svn客戶端安裝

       客戶端大致長如下這樣

       我們一路next下去就行,沒什麼特別需要注意的地方。

 

5. 配置svn server

       開啟伺服器管理介面,新增使用者,按提示來,新增上你自己的使用者名稱,比如:baobao

       倉庫有了,就要給這個倉庫分配許可權,因為,你可不想讓任何人都接觸到程式碼。來吧,給你剛建立的使用者新增程式碼的讀寫許可權吧:

       完畢。

6. 訪問svn

       訪問svn其實就跟訪問網站一樣,也是有一個地址的,但是地址怎麼得到呢?看下圖

       然後,在本地任意資料夾中點右鍵

       貼上剛才的地址,回車:

       你就可以看到下面的介面了

       這裡預設已經建立了3個目錄,每個目錄是什麼時候,我們會在專案管理的時候講到,這裡,我們只需要記住,我們所有的程式碼都放到trunk中就行了。

7. Elicpse外掛安裝

       那接下來要怎麼把程式碼放到伺服器上呢?一種方式是直接拖動檔案到上面的視窗中去,但是我們平時開發是在IDE中的(Ps:目前是eclipse,未來是idea)。那能不能直接從eclipse中提交程式碼到伺服器呢?

       當然是可以的。

       但是,要完成這個功能,我們就需要給eclipse裝外掛。這個外掛叫subversive。下載地址在:

http://www.eclipse.org/subversive/

http://www.eclipse.org/subversive/previous-releases.php

       那怎麼安裝呢?首先是解壓,然後把下面兩個目錄複製到eclipse對應的目錄中去就可以了。

       然後,記得重啟elicpse。

 

8. SUBVERSIVE CONNECTOR 安裝

       但是,事情並不像我們想象的那麼簡單。要說怎麼java程式設計師這麼苦逼呢。當我們以為可以使用svn的時候,我們還需要一個connector,下載地址在:

https://polarion.plm.automation.siemens.com/products/svn/subversive?utm_source=eclipse.org&utm_medium=link&utm_campaign=subversive

       由於我們的subversive是3.0,故下載這個

       同樣,安裝也是執行目錄copy

       重啟eclipse,然後檢查下:

       如果像上圖一樣,該有的都有了,那麼我們的安裝就成功了。

9. 程式碼提交

       首先,像下圖那樣進行選擇

       然後,在該頁面new一個倉儲,輸入svn地址,得到:

       在trunk下建立一個資料夾,

       Ps1,這個資料夾最好和我們們在eclipse中建立的專案名一致);

       Ps2,我示例中的專案叫:parent;

       回到專案檢視,在專案上share project

       接著

       注意路徑選擇,路徑的命名首先要定位到trunk下,然後再加上專案的名

       接下來,是提交程式碼。在專案名上面,右鍵->team->commit,出現如下介面

       首先,讓我們寫上註釋。注意,註釋寫的越詳細越好,把你這次提交完成了什麼功能都寫上,免得我們將來檢視歷史的時候,不知道本次提交是幹什麼用的。

       其次,我們是提交全部檔案嗎?顯然也不是,除了程式碼檔案外,一些配置檔案或者附屬檔案我們不應該提交上來。

       但是,每次去提交的時候,選擇提交的檔案太麻煩了,那有沒有一種一次性批量忽略的辦法呢?當然是有的,如下圖:

       要忽略這幾個字尾:.settings,.project,.classpath

       提交後,在eclipse的專案上,會有受控標識,類似如下:

10. 檢視歷史

       在專案上右鍵->team->show history,看看會出現什麼?

       好了,以上是我們為了完成第一次大作業所要儲備的版本控制的知識。更多的功能,等我們慢慢後期挖掘中。

 

 

華麗分割線

===========================================================

1:最課程JavaEE+網際網路分散式新技術開班進行中,來http://www.zuikc.com來報名吧;

2:更多技術文章和開班資訊請加入,QQ群:

3:本文所涉及要下載的軟體可以進群向老師索取;

4:SVN的教學視訊可以進群向老師索取;

相關文章