本博文參照自大旭師兄的博文
一、 這篇文章要解決什么問題,能學習到什么?
在android團隊的開發(fā)中,少不了與隊員之間的合作。為了避免我們傻瓜式地復制粘貼對方的負責的那部分功能代碼,我們可以用svn或者git的方式來托管代碼,實現(xiàn)代碼共享。
(使用此svn托管代碼前,你必須要有svn的賬號,一般是boss買的服務器賬號給我們用的,如果是普通幾個人的開發(fā)建議用git,在樓主稍后另外一篇博文有Git版)
二、問:什么svn?
SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統(tǒng)。到目前為止的使用來說,我更喜歡把他理解為一個放置代碼的,并且可以可以和其他人的代碼進行融合的服務器。(想要了解更多svn的知識可以點擊這里)
三、在android studio中配置svn和使用svn的流程。
下載一個SVN(TortoiseSVN):
運行TortoiseSVN程序,一直點擊Next就可以了,不過要記住我們的安裝位置,因為等下配置要用。
AndroidStudio中配置SVN:
一、Android Studio配置SVN
Android Studio關聯(lián)配置SVN很簡單,在File->Settings->Version Control->Subversion里面,在這個頁面的控制面板中的General中將Use command line client打勾勾選上,然后瀏覽本地的SVN安裝目錄,選到"\svn.exe"即可;
在Use command line client下面還有一個Use system default Subversion configuration directory,這個默認是勾選上上的,這個是svn相關配置信息的路徑,保留默認路徑就行,目前沒有發(fā)現(xiàn)需要修改什么東西。以上操作如下圖:
二、Android Studio項目關聯(lián)SVN資源庫及添加忽略文件
在Android Studio中新創(chuàng)建一個Android項目,在未關聯(lián)SVN之前添加忽略文件才有效。Android Studio添加忽略文件同樣是在Settings->Version Control(跟版本控制有關的設置都在這個目錄下)下的 Ignored Files 里,點擊加號進行忽略文件的設置,Android Studio默認給出了三種忽略方式:忽略指定的文件、忽略文件夾下所有文件和忽略符合匹配規(guī)則的文件。
如圖所示:
點擊右側的“+”進行添加,“-”刪除;Android Studio創(chuàng)建的Android項目一般需要忽略
-
.idea文件夾
-
.gradle文件夾
-
所有的build文件夾(包括app文件夾里面的build文件夾)
-
所有的.iml文件
-
local.properties (選擇第一個Ignore special file就可以看見了)
忽略完文件后,我們進行項目同SVN的關聯(lián),在菜單欄我們選擇VCS->Import into Version Control-> Share Project(Subversion) ;
在Import into Version Control下有Import into Subversion和Share Project(Subversion)兩個選項:
-
Import into Subversion是直接將項目導入到SVN服務器上,但是這樣做本地的項目同SVN服務器沒有建立起關聯(lián),在導入后項目所有的文件都會變成紅色,而且在要提交到SVN服務器時會提示項目不是SVN下的工作副本;
-
Share Project(Subversion) 是將Android Studio當前項目同SVN服務器關聯(lián)起來,但是并沒有將項目導入到SVN服務器上,需要在完成建立連接后再次提交項目到SVN服務器。
兩種方式都可以實現(xiàn)將本地代碼提交到SVN服務器的功能,但是步驟有所不同,先來完成第二種方式的項目同SVN的關聯(lián)及代碼提交,下圖既是Share Project(Subversion)方式將本地項目同SVN進行關聯(lián)的:
之后會彈出選擇要分享的SVN地址及其他選項,如下圖:
在Define share target下選擇第二個可以再trunk下創(chuàng)建你當前項目的文件夾,相應的第一個選項是直接將整個文件都放到trunk文件夾下,第三個在項目文件夾下有創(chuàng)建了一個trunk文件夾,因此建議使用第二中方式;選擇完成后點擊Share就可以了,會彈出讓你選擇SVN工作副本的格式化版本(jdk版本),如下圖:
選擇1.8format。點擊OK等待一會就能創(chuàng)建本地項目同SVN服務器的關聯(lián)了,待項目里的內容變成綠色的即表示已經成功了,如下圖所示:
到目前為止只是將項目同SVN服務器建立了聯(lián)系,并沒有將代碼提交到SVN服務器上去;如何提交呢,其實很簡單,只需點擊SVN相關操作按鈕里的commit就行了(下圖SVN相關操作按鈕左起第二個按鈕);
點擊Commit后Android Studio會先對當前代碼進代碼分析,如果有錯誤或者警告會彈出如下的框,如果有錯誤沖突等需要解決后再提交,如果是警告可以忽略;第一次將整個代碼提交到SVN服務器時時間有可能有點長,請耐心等待,之后再創(chuàng)建項目時就不會這么慢了。
成功后我們就完成了新建項目同SVN的關聯(lián)及導入項目到SVN服務器上了。
三、其他的小伙伴如何從SVN上下載項目,和你進行關聯(lián)。
-
1選擇VCS中的Checkout from Version Control里面的Subversion,然后選擇你SVN子目錄里面的項目文件:
-
2然后彈出來的窗口都還存放的地址(存放的文件夾名字最好和項目名字一樣,要不然它會修改你項目名字):
點擊OK后出現(xiàn):
選擇第一個(你自己創(chuàng)建的文件夾),與你項目名字一樣的。點擊OK后出現(xiàn)這個,選擇1.8
點擊OK,最下面出現(xiàn)檢查。檢測完成后彈出是否打開工程,點擊YES。然后彈出來的窗口如下面所示,別選擇第一個,第一個意思是下載一個Gradle,選擇Use default gradle wapper下面一個,用你本地的gradle,然后就大致OK了。
四、Android Studio SVN代碼沖突的解決
在使用SVN更新服務器上的代碼時,有時會彈出代碼沖突的對話框,問你是否進行合并,并提供了三種合并方案:accept yours(使用你的)、accept theirs(使用別人的)和merge(合并);前兩個都是進行的覆蓋操作,就不多做解釋了;當你選擇merge合并時,會彈出代碼合并對照窗口,一共有三個屏,左右兩側時你和服務器不同的代碼并高亮顯示不同的部分,帶有箭頭和叉號,通過點擊箭頭將兩邊沖突的代碼添加到中間的合并區(qū)域中去,點擊叉號則辨識放棄那一段代碼,待所有沖突處理完成后merge就成功了。