SVN 使用

前言:


1.本文講的是SVN版本控制工具經常使用功能,包括命令行和界面化操做

2.若是想了解GIT使用方式,請移步這裏 git使用git

SVN使用環境

  • 使用SVN管理源代碼,必須有2套環境
    • 服務器
      • 用來存儲客戶端上傳的源碼
      • 通常都是在Windows環境下安裝Visual SVN Server
      • 大部分狀況下,不是由開發人員搭建SVN服務器
    • 客戶端
      • 用來提交、回退、修改、下載等操做

在Windows安裝Visual SVN Server

  • 下載Visual SVN Server安裝包
  • 打開安裝包 --> next --> 贊成協議 --> next --> 選擇默認選項(安裝SVN控制檯)--> next --> 選擇第一個按鈕(標準版)--> next --> location:安裝路徑 Repositories:倉庫路徑 server Port:端口 旁邊的https://選項不勾選(由於通常SVN都是在局域網,不會有安全問題)--> next -->Install --> 完成

Visual SVN Server安裝


建立SVN倉庫

  • 打開Visual SVN Server
  • 右擊Repositories --> 新建 --> Repository --> 設置倉庫名稱 --> 下一步 --> 選擇第一項Enpty repository(空的倉庫)--> 下一步 --> 設置訪問權限(Nobody has access <無人能訪問> 、All Subversion users have Read/Write access <全部人能夠讀寫> 、Customize permissions <自定義訪問> )由於是初始化倉庫,因此先設置爲沒人能訪問 --> 下一步 --> 完成

使用Visual SVN Server 建立SVN倉庫


SVN倉庫配置

  • 在新建的倉庫中新建2個文件夾(Code、Doc):新建 --> Folder --> 文件夾名稱 --> 完成
  • 建立用戶:右擊Users --> Create user --> User name:用戶名 Password:密碼 Confirm password:確認密碼 --> 完成
  • 建立用戶組(iOS、Android):右擊Groups --> Create Group --> Group name:組名 --> Add:增長成員 --> 完成
  • 配置倉庫用戶權限:右擊倉庫 --> Properties --> Add:添加成員或組 --> Permissions:設置權限(NO Access <無權限> 、Read Only <只讀> 、Read/Write <可讀可寫> )--> 應用
  • 配置完成

使用Visual SVN Server 配置SVN倉庫


測試SVN倉庫鏈鏈接是否正常

  • 鏈接倉庫分爲測試鏈接和遠程鏈接2種
    • 測試鏈接:也叫本地鏈接,就是在搭建SVN的服務器上測試是否能夠鏈接,步驟以下:

本地測試SVN是否能夠正常鏈接

  • 遠程鏈接:測試完畢後就能夠將地址發放給成員使用了
  • 服務器地址獲取方式

遠程測試SVN是否能夠正常鏈接.gif


管理者初始化項目

  • 將遠程倉庫下載到本地
    • 進入咱們須要放置的文件件下
      • $ cd /Users/yeshaojian/Desktop/SVN/mgr
    • 鏈接並下載
      • $ svn checkout 倉庫路徑 --username=用戶名 --password=密碼
    • 下載成功後,在咱們的文件夾下會出現下載下來的倉庫,倉庫裏面有.svn的隱藏文件(顯示和隱藏mac上文件的方法)
      • 進入本地倉庫
        - $ cd 本地倉庫目錄(就是有.svn隱藏文件的目錄)
    • 建立文件 main.m
      • $ touch main.m
    • 查看文件狀態
      • $ svn status
        說明:
        1.?表示該文件不受SVN管理
        2.A表示該文件受SVN管理
        3.M表示該文件被修改
    • 將文件添加到svn管理中
      • $ svn add main.m (也可以使用 $ svn add * <表示提交全部文件> )
    • 將main.m文件提交到遠程倉庫
      • $ svn commit main.m -m "註釋"

管理者配置SVN項目


新成員使用SVN和多人開發

新成員篇:windows

  • 第一次加入項目須要進行下面操做
  • 獲取到SVN帳號與密碼與遠程倉庫路徑
  • 鏈接遠程倉庫並將倉庫下載到本地
    • 進入咱們須要放置的文件件下
      • $ cd /Users/yeshaojian/Desktop/SVN/newTest
    • 鏈接並下載
      • $ svn checkout 倉庫路徑 --username=用戶名 --password=密碼
    • 添加文件
      • $ touch test1.m test2.m test3.m
    • 查看文件狀態
      • $ svn status
    • 將不受SVN管理的文件添加到管理中
      • $ svn add test1.m test2.m test3.m
    • 將文件提交到遠程倉庫
      • $ svn commit test1.m test2.m test3.m -m "註釋" 或者 $ svn commit -m "註釋"(不寫表示所有提交)

新成員加入開發操做

  • 在後面的開發中(多人開發)就只根據須要提交代碼就能夠了:

管理者篇:xcode

  • 管理者加入開發步驟:
    • 進入咱們須要放置的文件件下
      • $ cd /Users/yeshaojian/Desktop/SVN/mgr
    • 更新代碼
      • $ svn update
    • 在test1.m文件中修改文件內容,上傳服務器
      • $ svn commit -m "註釋"

多人開發-管理者

新成員篇:瀏覽器

  • 進入咱們須要放置的文件件下
    - $ cd /Users/yeshaojian/Desktop/SVN/newTest
  • 新成員更新服務器上的代碼到本地
    • $ svn update
  • 提交代碼到遠程倉庫
    • $ svn commit -m "註釋"

注意:每次要修改前先更新一下代碼再進行修改。安全

多人開發-其它成員


SVN命令行方式刪除文件

  • SVN不能使用普通的右鍵刪除方式刪除文件
  • 使用命令行刪除
    • $ svn remove test3.m
  • 爲確認文件被刪除,查看下狀態
    • $ svn status
      說明:
      1.?表示該文件不受SVN管理
      2.A表示該文件受SVN管理
      3.M表示該文件被修改
      4.D表示該文件已被刪除
  • 提交更改
    • $ svn commit -m "刪除了test3.m文件"
  • 別的成員修改前須要更新代碼,才能繼續操做
    • $ svn update

SVN刪除文件(命令行)


SVN一些命令行簡寫

  • 最經常使用的簡寫
    • checkout --> co
    • status --> st
    • commit --> ci
    • update --> up

SVN命令行簡寫


SVN版本查看和回退

  • SVN查看版本信息很簡單,使用下面指令就能夠
    • $ svn log
  • SVN中有2中恢復或回退的狀況,下面會介紹:
    • 狀況一:咱們本地修改了文件,但尚未提交到服務器
      • 解決方法:$ svn revert 須要恢復的文件

SVN回退版本(還未提交到遠程倉庫狀況)

  • 狀況二:回退到之前的版本
  • 首先要先更新本地版本到最新版
    • $ svn update 版本
    • 解決方法:
      1.查看歷史版本

      - $ svn log
      2.合併版本

      - $ svn merge -r版本:版本 .(好比如今最新版本爲9 --> $ svn merge -r9:r5 .)

      說明:這邊會提示「U」標識,表示該文件爲合併狀態

      注意:這邊最後面的 "." 要敲,表示當前目錄
  1. 提交到遠程服務器

    - $ svn commit -m "註釋"

SVN回退版本(已提交到遠程倉庫的狀況).gif


多人開發常見衝突解決

  • 場景描述:多我的同時修改了同一個文件的同一個地方,且有人已經提交到遠程倉庫,後面的人還在繼續開發,且後面開發的人不是最新版本了,因此沒法提交(SVN中若是遠程服務器版本大於要提交的版本,就沒法提交),這樣的狀況下就須要經過下面的步驟解決:
    • 先獲取最新版本(這時會提示衝突,並給出瞭解決方案,由於咱們修改了同一文件的同一個地方)
      • $ svn update
      提示:在提示解決方案中,常常用到的是如下幾項
      - (p) postpone:延遲處理 (最經常使用,先不解決)
      - (mc) mine-conflict:以個人爲準,覆蓋掉倉庫
      - (tc) theirs-conflict:以原創倉庫爲準,覆蓋掉本地版本
      - (s) show all options:顯示全部選項
    • 方式一:這邊選擇mc(以個人爲準)--> 回車
      說明:若是看到顯示了大寫的 "G" 就說明衝突已經解決
    • 提交
      • svn commit -m "覆蓋了遠程倉庫代碼,解決衝突"
    • 方式二:這邊選擇tc (以遠程版本爲準,覆蓋掉本地版本) --> 回車
    • 提交
      • svn commit -m "添加了某某屬性,但不成功,稍後添加"
        注:由於這次提交不會有提示,由於本地版本和遠程版本同樣
    • 方式三:這邊選擇p(延遲處理)--> 回車
      • 這時咱們的本地倉庫內會多生成3個文件,這是咱們須要手動解決相應的問題
      • 打開衝突文件,根據衝突提示進行相應修改
      • 修改完成後,告訴遠程倉庫,咱們已經解決衝突
        • $ svn resoved 衝突文件名
      • 提交
        • $ svn commit -m "手動解決了衝突"

SVN圖形化管理軟件(Cornerstone)使用

  • Cornerstone界面介紹

Snip20160510_1.png

  • 初始化項目管理
    • 鏈接SVN服務器 --> 左下角(REPOSITORIES)欄的 「+」 號 --> 選擇HTTP Server --> 填寫相應信息後點擊Add

Cornerstone 鏈接遠程倉庫操做.gif

  • 下載遠程倉庫內容到本地 --> 點擊左上角的Check out --> 選擇須要保存的位置 --> 打開下面的隱藏選項 --> 將Format選項調製最高(否則可能出現未知錯誤)--> check out --> 完成

Cornerstone 下載倉庫操做.gif

  • 建立項目 --> 文件存放位置爲SVN的工做區的Code中

建立項目.gif

  • 忽略不須要管理的文件 --> Cornerstone --> 點擊Commit --> 在彈出的對話框中選擇ignore(忽略) --> 打開項目中的.xcodeproj --> project.xcworkspace --> 刪除2個xcuserdate文件 --> 提交 --> 修改項目中的任意地方(好比打個斷點或者聲明變量等) --> 運行項目 --> 回到Cornerstone --> 會發現剛剛刪除的2個文件又出現了 --> 分別右擊選擇Ignore --> 而後更新倉庫版本 --> 提交

忽略不須要的文件.gif

  • 測試文件是否忽略成功 --> 隨便修改任意文件 --> 點擊Source Control --> Commit --> 發現只有咱們修改的文件須要提交怎麼已經成功忽略文件

測試文件是否已經忽略成功.gif

  • 這樣項目的初始化就完成了,之後就只須要用XCode來進行版本控制操做就能夠了,不須要再進行忽略文件操做
相關文章
相關標籤/搜索