Android開發常用的版本控制工具和比較

2021-08-20 22:15:53 字數 2377 閱讀 1285

現在主流的版本控制工具無非是svn 和 git

svn

svn是subversion的簡稱,是乙個開放源**的版本控制系統,相較於rcs、cvs,它採用了分支管理系統,它的設計目標就是取代cvs。網際網路上很多版本控**務已從cvs遷移到subversion。說得簡單一點svn就是用於多個人共同開發同乙個專案,共用資源的目的。

但是由於git的出現svn逐漸的被取代

git

git是乙個開源的分布式版本控制系統,可以有效、高速的處理從很小到非常大的專案版本管理。 git 是 linus torvalds 為了幫助管理 linux 核心開發而開發的乙個開放原始碼的版本控制軟體。

svn 與 git的優勢和劣勢的比較

git

版本工具
差異

svngit

系統特點

1.集中式版本控制系統(文件管理很方便)

2.企業內部並行集中開發

3.windows系統上開發推薦使用

4.轉殖乙個擁有將近一萬個提交(commit),五個分支,每個分支有大約1500個檔案,用時將近乙個小時

1.分布式系統(**管理很方便)

2.開源專案開發

3.mac,linux系統上開發推薦使用

4.轉殖乙個擁有將近一萬個提交(commit),五個分支,每個分支有大約1500個檔案,用時1分鐘

靈活性1.搭載svn的伺服器出現故障,無法與之互動

2.所有的svn操作都需要**倉庫互動(例:拉分支,看日誌等)

1.可以單機操作,git伺服器故障也可以在本地git倉庫工作

2.除了push和pull(或fetch)操作,其他都可以在本地操作

3.根據自己開發任務任意在本地建立分支

4.日誌都是在本地檢視,效率較高

安全性較差,定期備份,並且是整個svn都得備份

較高,每個開發者的本地就是一套完整版本庫,記錄著版本庫的所有資訊(gitlab整合了備份功能)

分支方面

1.拉分支更像是copy乙個路徑

2.可針對任何子目錄進行branch

3.拉分支的時間較慢,因為拉分支相當於copy

4.建立完分支後,影響全部成員,每個人都會擁有這個分支

5.多分支並行開發較重(工作較多而且繁瑣)

1.我可以在git的任意乙個提交點(commit point)開啟分支!(git checkout -b newbranch hashid)

2.拉分支時間較快,因為拉分支只是建立檔案的指標和head

3.自己本地建立的分支不會影響其他人

4.比較適合多分支並行開發

5.git checkout hash值(切回之前的版本,無需版本回退)

6.強大的cherry-pick

版本控制

1.儲存前後變化的差異資料,作為版本控制

2.版本號進行控制,每次操作都會產生乙個高版本號(svn的全域性版本號,這是svn乙個較大的特點,git是hash值)

1.git只關心檔案資料的整體發生變化,更像是把檔案做快照,檔案沒有改變時,分支只想這個檔案的指標不會改變,檔案發生改變,指標指向新版本

2. 40 位長的雜湊值作為版本號,沒有先後之分

3.git rebase操作可以更好的保持提交記錄的整潔

工作流程

1.每次更改檔案之前都得update操作,有的時候修改過程中這個檔案有更新,commit不會成功

2.有衝突,會打斷提交動作(衝突解決是乙個提交速度的競賽:手快者,先提交,平安無事;手慢者,後提交,可能遇到麻煩的衝突解決。)

1.開始工作前進行fetch操作,完成開發工作後push操作,有衝突解決衝突

2.git的提交過程不會被打斷,有衝突會標記衝突檔案

3.gitflow流程(經典)

內容管理

svn對中文支援好,操作簡單,適用於大眾

對程式的源**管理方便,**庫占用的空間少,易於分支化管理

學習成本

使用起來更方便,svn對中文支援好,操作簡單,適用於大眾

更在乎效率而不是易用性,成本較高(有很多獨有的命令,rebase,遠端倉庫互動的命令,等等)

許可權管理

svn的許可權管理相當嚴格,可以按組、個人針對某個子目錄的許可權控制(每個目錄下都會有個.svn的隱藏檔案)

git沒有嚴格的許可權管理控制,只有賬號角色劃分(在專案的home檔案下有且只有乙個.git目錄)

管理平台

有吧(這個「吧」字,肯定有,但本人沒有接觸過)

gitlab(建議使用,整合的功能較多,api開發),gerrit,github等

Android開發常用屬性

1 android string.xml 文字中間加入空格 密 碼 這個就代表著空格 2 文字單行顯示 文字單行顯示 文字輸入框單行輸入 android singleline true 單行顯示 3 editview輸入框屬性 文字輸入框的輸入資料不直接顯示 文字輸入框的輸入資料只能為數字 andr...

android開發常用路徑

作為乙個開發者,我們經常需要通過快取一些檔案到sd卡中,常見的方式就是,通過 file sdcard environment.getexternalstoragedirectory sd卡根目錄會迅速變得雜亂不堪。並且在api 6.0之後,根目錄檔案儲存是需要使用者授權的,就算你在 androidm...

常用android開發命令

1.檢視專案的依賴 2.當前執行的activity adb shell dumpsys window grep mcurrentfocus 3.等待debug debug.waitfordebugger 安裝apk adb install apk所在的位址 apk的名字解除安裝apk adb uni...