標籤:
Android Studio下SVN的用法(1) - 初識SVN前言
這幾天公司又來了新人,之前都是一個人開發的項目現在需要合作開發。所以不可避免的需要使用版本控制工具。
公司使用的是SVN,網上有一大堆教程,但是發現對於新手來說,特別是從來沒有接觸過的人來說,往往都 說的不是很詳細,甚至可以說基本沒有照顧到這些方面。不要問我為什麼這麼清楚,因為被坑的不行了……..
PS:本篇文章是介紹AS下SVN的使用,所以可能會跟網上的教程不同
使用
下載及安裝
首先前往官網下載SVN用戶端,官網上下載可能比較慢,這裡提供一個已經下好的安裝包
- TortoiseSVN_1.9.4.27285_x64
這個是SVN用戶端,另外還有個一服務端,但是一般開發開發使用用戶端就足夠了,服務端是提供個老闆和或者主管使用的
下載完成之後直接安裝就OK,安裝目錄隨意,但是目錄總不能含有中文路徑
配置
一般在公司使用的話公司都會給你提供一個使用者名稱密碼,提交的時候會顯示你的使用者名稱,這樣就可以清楚的知道是誰提交的代碼導致整個項目崩潰的,紅紅火火恍恍惚惚 ~~~~
萬一帳號密碼忘了也不要緊,找你們老闆或者組長要去,不過可能會被罵、、、
下面重點介紹在AS下的配置
首先在AS裡添加SVN的啟動路徑,按設定路徑在Use Command line client 下選擇svn.exe檔案
若該路徑下沒有svn.exe,那麼可能是安裝的時候漏選了一項外掛程式
如,將中間那個Crash Reporter勾選上即可
啟動配置完成後需要,配置忽略檔案,因為可能由於AS版本或者gradle版本不同導致每次都需要配置或者升級,所以一些檔案是不需要提交的,如
點擊右上方添加忽略檔案,預設進入項目根目錄
忽略檔案一共三部分,下面一一介紹
- 系統預設添加的忽略檔案
- 手動添加,通常AS項目應該忽略的檔案或者目錄
- 手動添加,若項目中還需要忽略其他的,如編譯項目作為依賴需要忽略
如何添加?
依次為
- 忽略的檔案
- 忽略的目錄
- 根據文法匹配,如 *.iml 表示忽略所有尾碼為 iml 的檔案
與遠程倉庫關聯
這裡有兩個方式可以選擇,直接匯入 和 關聯項目,這裡推薦第二種, 直接匯入可能會出現一些奇怪的問題
點擊 Share Project 彈出如下視窗
上面是選擇倉庫地址,第一次可能需要添加;下面是選擇目標路徑,因為倉庫裡可能會存在分支等多級目錄
選擇完成之後會提示提倉庫不為空白是否建立關聯,不夠一般第一次的話倉庫都是空的,確定即可
提交的時候會進行代碼檢查,這裡推薦選擇1.8版本,同樣的另外兩個也會出現一些奇怪的問題
選擇之後會提示正在建立關聯,等待完成即可
關聯成功後工具列會多出兩個表徵圖,表示提交和更新
提交(Commit Changes)
通常將自動認可後自動更新勾選上,左側為待提交檔案清單,可以選擇提交哪些檔案;左下為提交的資訊,用於簡單描述本次提交的內容,建議在提交的時候最好寫上提交資訊,這樣到時候出錯了也好及時定位
然後點擊Commit,之後會進行代碼檢查,如果代碼沒有錯誤就可以確認提交了,警告通常可以忽略
更新(Update)
更新的時候有兩個選擇,通常選擇第二個,預設版本為HEAD 表示更新當前倉庫的版本;第一個選項如果你項目裡有分支的話才會用到,可以選擇更新不同的分支
這裡還要說一點的,也就是版本控制最重要的功能之一 復原 ,可以選擇更新歷史版本。點擊HEAD右側的三個點
- 提交的版本號碼,通常每次提交都會自動加上一個版本號碼,有序排列
- 提交的使用者,即誰提交的代碼
- 提交時間
- 提交資訊
注意
如果按照上面的步驟你可以成功的將項目與SVN進行關聯,但是前提是倉庫的是空的,也就是第一次使用的時候。如果你不是第一次使用或者你是中途加入到項目組裡的你就會發現問題;SVN是可以上傳的下載的,這時候你肯定會說:“我可以直接下載啊”,確實可以下載,但是現在有一個問題,怎麼下載?下載到哪?因為下載的話是需要在關聯的前提下進行的,如果你建立一個項目,那就必須報名路徑一樣,而且如果是建立的話SVN下載的話會單獨在你當前項目裡建立一個檔案夾用於存放你倉庫的檔案,而不是直接覆蓋根目,而且這種方法還會有這樣那樣的問題**
別著急,SVN早就為我們想到了這一點,實質上也是下載,不過是將上面的功能全部幫你做完了
Checkout 功能
checkout 這一個功能特別方便,只用選擇對應版本控制工具,並輸入相應的項目地址,AS就能全自動的幫我們將項目下載下來,並且自動添加忽略的檔案直接匯入
然後選擇Checkout即可
PS:之前不知道有這個功能,只能直接拷貝同時的項目,然後匯入的時候各種出問題。因為倉庫裡專案檔上傳的時候添加了忽略檔案,這就導致了一個比較尷尬的問題,忽略檔案怎麼辦,建立個一空的項目還得保證包名一樣。。。。。。過程我就不說了,坑的不行不行的了
遇到的問題
之前做支付因為jar包的問題導致項目無法運行,復原之後可以運行,但是直接更新最新的版本無法運行。這樣就產生了一個很尷尬的問題,如果在提交的話也只是添加新的內容,並不會覆蓋曆史內容,所以只能在重新來一遍,將倉庫裡的東西全刪了,重新提交一遍。目前只能想到這種辦法,可能是一些地方沒搞明白。
尾巴
最開始因為項目更新的問題翻遍了教程,弄了一下午!最後發現建立個項目直接下載是行不通的,只能匯入已關聯的項目。由於沒人指點,所以說起來都是淚啊,為什麼越是簡單的問題越是被忽略呢,可能是因為那些大神覺得太簡單了,理所因當就該知道吧
以上是個人見解,由於是初次接觸所以只瞭解基本的用法,如果有不對的地方還請指正;不過就文中介紹的這些,對於一般的項目來說就足夠了,如果項目大了的話還有涉及到一些進階的用法
下一篇會更新代碼衝突及如何解決的問題
附錄
代碼顏色介紹
- 綠色:建立的檔案
- 藍色:更改過的檔案
- 紅色:衝突檔案
- 黃色:忽略檔案
- 白色:普通檔案,表示衝突解決或者提交完畢之後的檔案
Android Studio下SVN的用法(1) - 初識SVN