SVN管理項(xiàng)目也是比較常用的技能之一仍稀,以下簡(jiǎn)單介紹下如何發(fā)布一個(gè)Android Studio項(xiàng)目到SVN褐澎。
準(zhǔn)備工作:
安裝Android Studio疮胖,配置好開(kāi)發(fā)環(huán)境
下載SVN管理工具TortoiseSVN俯萎。
一凉袱、使用Android Studio創(chuàng)建好所需要的項(xiàng)目工程
二芥吟、使用TortoiseSVN上傳剛才創(chuàng)建的項(xiàng)目
這一步的關(guān)鍵點(diǎn)在于上傳哪些文件,不是所有的項(xiàng)目文件都有必要上傳到SVN服務(wù)器管理的专甩,項(xiàng)目的有些文件是本地文件钟鸵,有些是編譯生成文件,這些都是沒(méi)必要上傳的涤躲,具體清單可以建議如下:
- 所有的?.iml?文件
-?local.properties?文件
-?.idea?文件夾
-?.gradle?文件夾
- 所有的?build?文件夾
注意:TortoiseSVN默認(rèn)設(shè)置是過(guò)濾了以so為后綴的文件棺耍,假如你上傳的不是新創(chuàng)建的項(xiàng)目,并且項(xiàng)目中包含有so文件的話种樱,那么so文件就會(huì)被過(guò)濾掉無(wú)法上傳到服務(wù)器蒙袍,所以需要配置TortoiseSVN的設(shè)置俊卤,具體設(shè)置步驟如下:
在任意文件夾的空白處點(diǎn)擊右鍵,依次選擇TortoiseSVN -> Settings ->General -> Subversion 下有一個(gè)Gloabal ignore patten:,刪除這個(gè)選項(xiàng)后面的 *.so即可。
?刪除以上文件及文件夾之后左敌,剩下的文件就是要上傳到SVN服務(wù)器的瘾蛋,將整個(gè)項(xiàng)目文件夾一并Import到SVN服務(wù)器上俐镐。
三矫限、通過(guò)Android Studio 獲取項(xiàng)目
打開(kāi)Android Studio,選中VCS : “Check out project from Version Control”佩抹,在選擇Subversion叼风,配置SVN地址,點(diǎn)Checkout棍苹,接著指定本地存儲(chǔ)地址无宿,接著會(huì)再次讓你選擇確定的路徑地址,接著點(diǎn)OK枢里,就導(dǎo)出剛才上傳的項(xiàng)目了孽鸡。
四、配置Android Studio的SVN過(guò)濾
打開(kāi)Android Studio栏豺,選中工具欄的File –> Setting -> Version Control -> Ignored Files;
通過(guò)窗口右側(cè)的+即可添加過(guò)濾規(guī)則;
具體可以配置的過(guò)濾規(guī)則:
在新增配置的時(shí)候彬碱,只需要輸入后面的值,比如File: Express.iws 在新增的時(shí)候只需輸入Express.iws奥洼,其他的同理巷疼,值里面帶有”/”的其實(shí)就是目錄。
?順帶說(shuō)一下灵奖,每一個(gè)Module都會(huì)生成build目錄嚼沿,這個(gè)目錄是不用提交到SVN管理的,比如上圖的app/build/ 這就表示過(guò)濾app 這個(gè)module下的build文件夾瓷患。如果還有其他Module骡尽,同樣再增加即可,那么這里有個(gè)很惡心的地方擅编,我不至于沒(méi)多一個(gè)module就去添加一個(gè)吧攀细,所以這里有個(gè)技巧,就是增加一個(gè) /build/這表示過(guò)濾所有Module下的build目錄沙咏,添加了這個(gè) app/build/這個(gè)都可以刪掉了辨图,但是build/這個(gè)不能刪,這個(gè)是過(guò)濾的Project的build目錄肢藐。
五故河、在Android Studio中更新、提交更改
可以通過(guò)Android Studio頂部Tool Bar中的兩個(gè)VCS的快捷按鈕實(shí)現(xiàn)吆豹,
往下的箭頭表示更新鱼的,往上的箭頭表示提交理盆,有些打開(kāi)Android Studio可能并沒(méi)有這些快捷菜單,點(diǎn)擊VCS -> Enable Version Control Integration...
到此基本就完成了凑阶,就可以愉快的coding了猿规。
經(jīng)多次測(cè)試,發(fā)現(xiàn)在Android Studio 1.4上出現(xiàn)了一個(gè)奇怪現(xiàn)象宙橱,假如我有兩個(gè)工程A姨俩、B,B是svn管理工程师郑,A是本地工程(這只是我實(shí)際的電腦環(huán)境情況)环葵,這個(gè)時(shí)候我打開(kāi)B項(xiàng)目,為B項(xiàng)目設(shè)置Ignore flies過(guò)濾規(guī)則宝冕,也就是通過(guò)上述方式設(shè)置张遭,這個(gè)時(shí)候我再通過(guò)Flie -> open 打開(kāi)A項(xiàng)目,A項(xiàng)目不設(shè)置ignore地梨,然后關(guān)閉B項(xiàng)目菊卷,之后再關(guān)閉A項(xiàng)目,然后再打開(kāi)as宝剖,由于上一次我最后關(guān)閉的是A項(xiàng)目洁闰,所以AS會(huì)自動(dòng)打開(kāi)A項(xiàng)目,這個(gè)時(shí)候我再通過(guò)file -> open打開(kāi)B項(xiàng)目诈闺,會(huì)發(fā)現(xiàn)之前設(shè)置的Ignore files過(guò)濾規(guī)則被清空了渴庆。
目前不知道出現(xiàn)此情況的原因是否與Android stuido版本有關(guān),或者說(shuō)本身設(shè)計(jì)就是如此(按道理這個(gè)ignore是跟項(xiàng)目有關(guān)的雅镊,并且每個(gè)項(xiàng)目的設(shè)置是寫(xiě)入了workspace.xml文件的襟雷,每個(gè)項(xiàng)目是獨(dú)立的,所以設(shè)計(jì)如此的可能性不太可能)仁烹,也不知道android stuido 2.0的情況是否也是如此耸弄,如有人測(cè)試,望告知測(cè)試結(jié)果卓缰。如果2.0也有此問(wèn)題计呈,可能就需要考慮其他方式設(shè)置過(guò)濾規(guī)則了。