Android版本控制系統及其間的差異

来源:http://www.cnblogs.com/wumingchen/archive/2016/08/10/5755409.html
-Advertisement-
Play Games

一、何謂版本控制 它是一種軟體工程籍以在開發的過程中,確保由不同人所編輯的同一檔案都得到更新,它透過文檔控制記錄程式各個模塊的改動,併為每次改動編上序號,並且編輯錯誤之後還可以回溯到以前的版本 二、可供我們選擇的版本控制系統 1、VCS (本地版本控制) 2、VSS、CVS(集中版本控制) 3、Cl ...


一、何謂版本控制

        它是一種軟體工程籍以在開發的過程中,確保由不同人所編輯的同一檔案都得到更新,它透過文檔控制記錄程式各個模塊的改動,併為每次改動編上序號,並且編輯錯誤之後還可以回溯到以前的版本

二、可供我們選擇的版本控制系統

        1、VCS (本地版本控制)

        2、VSS、CVS(集中版本控制)

        3、ClearCase、SVN、Perforce、TFS(集中版本控制)

        4、Mercurial(水銀/水星)、Git(分散式版本控制)

差異:

1.Git和其他版本控制系統的主要差別在於:Git只關心文件數據的整體是否發生了變化,而多數的其他系統則只關心文件內容的具體差異,它們在每個版本中記錄著各個文件的具體差異。

2. Subversion是一個版本控制系統,相對於的RCS、CVS,採用了分支管理系統,它的設計目標就是取代CVS,優於CVS之處 原子提交。一次提交不管是單個還是多個文件,都是作為一個整體提交的。

3. 分散式版本控制系統(Distributed Version Control System,簡稱 DVCS)面世了。在這類系統中,像 Git、Mercurial、Bazaar 以及 Darcs 等,客戶端並不只提取最新版本的文件快照,而是把代碼倉庫完整地鏡像下來。這麼一來,任何一處協同工作用的伺服器發生故障,事後都可以用任何一個鏡像出來的本地倉庫恢復。因為每一次的克隆操作,實際上都是一次對代碼倉庫的完整備份。

三、svn與git

1)適用對象不同。Git適用於參與開源項目的開發者。他們由於水平高,更在乎的是效率而不是易用性。Svn則不同,它適合普通的公司開發團隊。使用起來更加容易。

2)使用的場合不同。Git適用於通過Internet,有多個開發角色的單個項目開發,Svn適合企業內部由項目經理統一協調的多個並行項目的開發。

3)許可權管理策略不同。Git沒有嚴格的許可權管理控制,只要有帳號,就可以導出、導入代碼,甚至執行回退操作。Svn則有嚴格的許可權管理,可以按組、按個人進行針對某個子目錄的許可權控制。區分讀、寫許可權。更嚴格的,不支持回退操作。保證代碼永遠可以追蹤。

4)分支(branch)的使用範圍不一樣。Git中,你只能針對整個倉庫作branch,而且一旦刪除,便無法恢復。而svn中,branch可以針對任何子目錄,它本質上是一個拷貝操作。所以,可以建立非常多、層次性的branch,並且,在不需要時將其刪除,而以後需要時只要checkout老的svn版本就可以了。

5)基於第三點,Git適用於單純的軟體項目,典型的就是一些開源項目,比如Linux內核、busybox等。相反,Svn擅長多項目管理。比如,你可以在一個svn倉庫中存放一個手機項目的bsp/設計文檔/文件系統/應用程式/自動化編譯腳本,或者在一個svn中存放5款手機項目的文件系統。git中必須建立n(項目數)*m(組件數)個倉庫。Svn中只需要最多n或者m個就可以了。

6)Git使用128位ID作為版本號,而且checkout時要註明是哪個branch,而svn使用一個遞增的序列號作為全局唯一的版本號,更加簡明易懂。雖然可以使用gittag來建立一些文字化的別名,但是畢竟那隻是針對特殊版本。

7)可跟蹤性,git的典型開發過程為:建立分支,進行開發,提交到本地master,刪除分支。這樣做的後果是以前的修改細節會丟失。而在svn下做同樣的事情,不會丟失任何細節。這裡是一個有趣的鏈接,表明瞭git下典型的工作方式:(以master為核心,不斷創建新branch,刪除舊branch):

http://www.kernel.org/pub/software/scm/git/docs/howto/separating-topic-branches.txt

8)局部更新,局部還原。SVN由於是在文件夾建立一個.svn文件夾來實現管理,所以可以很簡單實現局部更新或者還原。假如你只希望更新某些部分,則svn可以很好實現。同時代碼寫錯了,同時可以很好實現局部還原,當然git也可以通過歷史版本還原,但是無法簡單地實現局部還原。

四、svn常規操作

1.TortoiseSVN官網地址:http://tortoisesvn.tigris.orgCheckout下載與電腦對應的軟體。

2.ckeckout(檢出) 點擊滑鼠右鍵checkout選項指定資源庫,導出地址點擊ok即可。

3.添加文件或者文件夾 在檢出的文件中進行操作,首先在裡面添加文件或者文件夾-->滑鼠

右鍵點擊tortoiseSVN選項-->add-->SVN commit

4. 把一個項目文件夾發佈到SVN伺服器上 在eclipse上配置svn插件http://subclipse.tigris.org/update_1.12.x

滑鼠右鍵-->team-->share project-->SVN-->next-->finish

5. Update更新 滑鼠右鍵-->team-->update

6. Export導出 滑鼠右鍵-->tortoiseSVN選項-->export

7. 歷史版本 eclipse 右鍵-->team-->顯示歷史資源版本 文件夾 右鍵-->tortoiseSVN選項-->show log

8. 鎖定 滑鼠右鍵-->tortoiseSVN選項-->get lock

9. 備份 文件操作 滑鼠右鍵-->tortoiseSVN選項-->export

10. 分之 eclipse 滑鼠右鍵-->team-->分之/標記 指定分之名-->滑鼠右鍵-->team-->update

文件滑鼠右鍵-->tortoiseSVN選項-->branch/tag

11.衝突 當不同用戶同時操作一行代碼的時候,提交會有衝突,update即可。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在網路應用中,有的時候需要對用戶設備的網路狀態進行實時監控,有兩個目的: (1)讓用戶瞭解自己的網路狀態,防止一些誤會(比如怪應用無能) (2)根據用戶的網路狀態進行智能處理,節省用戶流量,提高用戶體驗 WIFI網路:自動下載高清圖片 4G/3G網路:只下載縮略圖 沒有網路:只顯示離線的緩存數據 常 ...
  • 【scrollTo/scrollBy】 //控制項內的文字會移動,但是控制項本身不會移動,而且移動到控制項之外之後,文字也就看不見了 if(v.equals(button2)){ button2.scrollTo(5, 5); //View內的文字會向左移動5,向上移動5,絕對坐標,只會移動一次 Toas ...
  • 解決辦法:就是把無用的CFBundle刪除掉。 根據提示,找到對應第三方的SDK, 找到第三方的info.plist文件,刪除裡面的Executable file對應的一整行,包括值。 ...
  • Android系統很多,但是最常用的就兩類,一類是有系統進場管理的,系統視窗。還有一類就是由應用程式產生的,應用視窗。 1.系統視窗的添加流程 1.1 addStatusBarWindow PhoneStatus.java中 getStatusBarHeight() 獲取狀態欄的高度 可以看到,高度 ...
  • 前言:由於最近在做SDK的功能,需要設計線程池。看了很多資料不知道從何開始著手,突然發現了AsyncTask有對線程池的封裝,so,就拿它開刀,本文將從AsyncTask的基本用法,到簡單的封裝,再到任務隊列分析,最後自定義線程池。 1、概念 Android 中的非同步任務常用的一種方式是:Handl ...
  • 因項目介面變動,導致之前的CoreData欄位需要調整。於是記錄下出錯的流程和解決方案。步驟如下: 1. 先在 *****.xcdatamodeld 文件中添加需要調整的欄位。並更新本地model實體。 2. 我的流程是接到消息後本地存儲在CoreData裡面,然後UI展示(具體消息推送和接收問題, ...
  • 參考文檔: http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f73e7e808c027fa2ce0ac4384c413037bee43a7c4b54ce81273044b2141ebdac3574310023 ...
  • 一,代碼。 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.title=@"字元串的分割"; //一般的字元串的解析 NSString *string ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...