AndroidStudio 使用svn

著作權歸作者所有。

商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

作者:夏海亮

鏈接:http://www.zhihu.com/question/32298079/answer/56010423

來源:知乎

一、Android Studio配置SVN

Android Studio關聯配置SVN很簡單,在Settings里面,找到Version Control->Subversion;在這個頁面的控制面板中的General中將Use command line client打勾勾選上,然后瀏覽本地的SVN安裝目錄,選到"\svn.exe"即可;

在Use command line client下面還有一個Use system default Subversion configuration directory,這個默認是勾選上上的,這個是svn相關配置信息的路徑,保留默認路徑就行,目前沒有發現需要修改什么東西;以上操作如下圖:

<img src="https://pic4.zhimg.com/75ae00d25fb927985d3566f727e080c3_b.png" data-rawwidth="1038" data-rawheight="701" class="origin_image zh-lightbox-thumb" width="1038" data-original="https://pic4.zhimg.com/75ae00d25fb927985d3566f727e080c3_r.png">

二、Android Studio項目關聯SVN資源庫及添加忽略文件

在Android Studio中新創建一個Android項目,成功后我們先來添加要忽略的文件;在Android Studio中添加忽略文件同Eclipse有所不同,在Eclipse上我們什么時候添加忽略文件都可以,但是在Android Studio中只有在未關聯SVN之前添加忽略文件才有效(試了好多次才將忽略文件忽略成功?。。?。Android Studio添加忽略文件同樣是在Settings->Version Control(跟版本控制有關的設置都在這個目錄下)下的Ignored Files里,點擊加號進行忽略文件的設置,Android Studio默認給出了三種忽略方式,供開發者進行選擇:忽略指定的文件、忽略文件夾下所有文件和忽略符合匹配規則的文件;如圖所示:

<img src="https://pic3.zhimg.com/3abf586a554dc9faedb1f3bac326fbae_b.png" data-rawwidth="1038" data-rawheight="701" class="origin_image zh-lightbox-thumb" width="1038" data-original="https://pic3.zhimg.com/3abf586a554dc9faedb1f3bac326fbae_r.png">

點擊右側的“+”進行添加,“-”刪除;Android Studio創建的Android項目一般需要忽略.idea文件夾、.gradle文件夾、所有的build文件夾、所有的.iml文件及local.properties文件。

忽略完文件后,我們進行項目同SVN的關聯,選擇VCS->Import into Version Control->Share Project(Subversion);這里說明一點,在Import into Version Control下有Import into Subversion和Share Project(Subversion)兩個選項:第一個是直接將項目導入到SVN服務器上,但是這樣做本地的項目同SVN服務器沒有建立起關聯,在導入后項目所有的文件都會變成紅色,而且在要提交到SVN服務器時會提示項目不是SVN下的工作副本;第二個是將Android Studio當前項目同SVN服務器關聯起來,但是并沒有將項目導入到SVN服務器上,需要在完成建立連接后再次提交項目到SVN服務器。兩種方式都可以實現將本地代碼提交到SVN服務器的功能,但是步驟有所不同,先來完成第二種方式的項目同SVN的關聯及代碼提交,第一種貌似不正規,之后再說;下圖既是第二種方式將本地項目同SVN進行關聯的:

<img src="https://pic3.zhimg.com/d192e4e066db44c21cf0bbd4e5519e66_b.png" data-rawwidth="1071" data-rawheight="531" class="origin_image zh-lightbox-thumb" width="1071" data-original="https://pic3.zhimg.com/d192e4e066db44c21cf0bbd4e5519e66_r.png">

之后會彈出選擇要分享的SVN地址及其他選項,如下圖:

<img src="https://pic4.zhimg.com/9d3318455907d64cb362be57239504eb_b.png" data-rawwidth="479" data-rawheight="670" class="origin_image zh-lightbox-thumb" width="479" data-original="https://pic4.zhimg.com/9d3318455907d64cb362be57239504eb_r.png">

在Define share target下選擇第二個可以再trunk下創建你當前項目的文件夾,相應的第一個選項是直接將整個文件都放到trunk文件夾下,第三個在項目文件夾下有創建了一個trunk文件夾,因此建議使用第二中方式;選擇完成后點擊Share就可以了,會彈出讓你選擇SVN工作副本的格式化版本(jdk版本),如下圖:

<img src="https://pic1.zhimg.com/8d68fff6f283a0e6fe87c9b9ff4a48ac_b.png" data-rawwidth="812" data-rawheight="379" class="origin_image zh-lightbox-thumb" width="812" data-original="https://pic1.zhimg.com/8d68fff6f283a0e6fe87c9b9ff4a48ac_r.png">

建議選擇1.8format,我之前選擇了其他的試了一下,發現項目總會報出一下錯誤,原因暫時未發現,就先這樣選擇吧;點擊OK等待一會就能創建本地項目同SVN服務器的關聯了;成功后悔自動刷新本地的項目,待項目里的內容變成綠色的即表示已經成功了,如下圖所示:

<img src="https://pic3.zhimg.com/339bc1ad0ab4ebcdd6fe938dde3bb886_b.png" data-rawwidth="978" data-rawheight="480" class="origin_image zh-lightbox-thumb" width="978" data-original="https://pic3.zhimg.com/339bc1ad0ab4ebcdd6fe938dde3bb886_r.png">

到目前為止只是將項目同SVN服務器建立了聯系,并沒有將代碼提交到SVN服務器上去;如何提交呢,其實很簡單,只需點擊SVN相關操作按鈕里的commit就行了(上圖SVN相關操作按鈕左起第二個按鈕);

<img src="https://pic3.zhimg.com/d16f608e9c18c66f8636c9d97345da72_b.png" data-rawwidth="1173" data-rawheight="1046" class="origin_image zh-lightbox-thumb" width="1173" data-original="https://pic3.zhimg.com/d16f608e9c18c66f8636c9d97345da72_r.png">

點擊Commit后Android Studio會先對當前代碼進代碼分析,如果有錯誤或者警告會彈出如下的框,如果有錯誤沖突等需要解決后再提交,如果是警告可以忽略(同Eclipse相同);第一次將整個代碼提交到SVN服務器時時間有可能很長,請耐心等待,之后再創建項目時就不會這么慢了。

<img src="https://pic3.zhimg.com/60d295e5623fcb407fc517916aa3eeea_b.png" data-rawwidth="316" data-rawheight="187" class="content_image" width="316">

成功后我們就完成了新建項目同SVN的關聯及導入項目到SVN服務器上了。

關于第一種方式,在將本地代碼導入到SVN服務器后將本地代碼刪除,然后從SVN服務器上將之前提交的代碼更新下來,這樣一來也可以同SVN建立關聯正常進行開發;第一種方式和第二種方式的區別就在于:第一種是將代碼先提交到SVN服務器上,然后再從SVN服務器上更新下來(本地項目同SVN服務器建立聯系);第二種是先同SVN服務器監理聯系,然后將代碼提交到SVN服務器上去。建議使用第二種方式進行新項目的SVN關聯。

三、Android Studio SVN代碼沖突的解決

關于代碼沖突解決的問題,首先要感謝一下知友ShinChven的回答建議。在使用SVN更新服務器上的代碼時,有時會彈出代碼沖突的對話框,問你是否進行合并,并提供了三種合并方案:accept yours(使用你的)、accept theirs(使用別人的)和merge(合并);

<img src="https://pic2.zhimg.com/bcfe7bf54eb872e71b94c35bcfbe405d_b.png" data-rawwidth="610" data-rawheight="537" class="origin_image zh-lightbox-thumb" width="610" data-original="https://pic2.zhimg.com/bcfe7bf54eb872e71b94c35bcfbe405d_r.png">

前兩個都是進行的覆蓋操作,就不多做解釋了;當你選擇merge合并時,會彈出代碼合并對照窗口,一共有三個屏,左右兩側時你和服務器不同的代碼并高亮顯示不同的部分,帶有箭頭和叉號,通過點擊箭頭將兩邊沖突的代碼添加到中間的合并區域中去,點擊叉號則辨識放棄那一段代碼,待所有沖突處理完成后merge就成功了。

<img src="https://pic2.zhimg.com/35c1911d7ec78302853050d7c7a02f45_b.png" data-rawwidth="640" data-rawheight="503" class="origin_image zh-lightbox-thumb" width="640" data-original="https://pic2.zhimg.com/35c1911d7ec78302853050d7c7a02f45_r.png">



http://www.zhihu.com/question/32298079

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,353評論 25 708
  • 通過這兩天對Android Studio的研究,終于搞通了Android Studio的基本操作及與SVN的相關關...
    AiPuff閱讀 1,491評論 1 11
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,948評論 18 139
  • 小時候,沒有冰箱、沒有空調,西瓜放進大水缸冷卻,一把蒲扇搖過夏天。 那時候住在村子里的木頭房,一個村形成一個圓,三...
    迎慶心烘焙閱讀 365評論 0 2
  • 宿舍的小美女 1位 2位 3位
    N啊真閱讀 214評論 0 0