SVN筆記

躍然發表於2015-11-16

一、 原始碼管理工具概述(PPT)

  1. 原始碼管理工具概述(PPT)

    • 原始碼管理工具的作用:
      能追蹤一個專案從誕生一直到定案的過程
      記錄一個專案的所有內容變化
      方便地查閱特定版本的修訂情況

    • 如果是團隊開發,使用原始碼管理工具是強制性的!

    • 如果是單人開發,也強烈建議現在就開始使用原始碼管理工具

    • 使用原始碼管理工具
      由於使用簡單,不會增加工作量
      不會對現有工作造成任何損害(壞的影響)
      是一位合格的軟體開發人員必須掌握的技術

  2. SVN介紹(PPT)

SVN 是集中式原始碼管理工具

概念:
1> Repository 程式碼倉庫,儲存程式碼的倉庫
2> Server 伺服器,儲存所有版本的程式碼倉庫
3> Client 客戶端,只儲存當前使用者的程式碼倉庫
4> 使用者名稱&密碼 訪問程式碼倉庫需要使用自己的”使用者名稱和密碼”,從而可以區分出不同的人對程式碼做的修改

操作:
1> checkout 將伺服器上最新的程式碼倉庫下載到本地,”只需要做一次”
2> update 從伺服器上將其他人所做的修改下載到本地,”每天上班必須要做的事情”
3> commit 將工作提交到伺服器,”每天下班之前至少做一次”

  1. SVN伺服器安裝 Visual SVN Server

提示:一般程式設計師是沒有機會安裝SVN伺服器的,以下內容僅供瞭解伺服器上的安裝及配置過程

  • Visual SVN Server 是執行在windows作業系統上的,整合了Subversion和Apache
  • 傻瓜式安裝一步到位,並提供了圖形化介面,安裝簡單配置方便
  • 下載地址:http://www.visualsvn.com/server/download/

1> 安裝
* 程式目錄
* 程式碼倉庫目錄

2> 新增程式碼倉庫”weibo”
* 暫時不勾選預設結構(trunk, branches, tags)

3> 新增使用者
* 為了方便後續的演練,每個使用者的口令不要設定成一樣
使用者名稱 口令
manager jingli
zhangsan zhang
lisi li

4> 新增群組,通過群組可以一次性設定多個使用者對程式碼倉庫的訪問許可權,便於管理

5> 設定許可權演練
* 選中專案的程式碼庫,點選右鍵,選擇”Properties”

6> 協議
* https 埠 443
* http 埠 80

7> 協議的修改
* 選中”VisualSVN Server”,點選滑鼠右鍵,選擇”Properties”
* 選擇”Network”,勾選”Use secure connection”會使用https協議訪問伺服器的程式碼倉庫

補充:HTTPS = HTTP + SSL

注意:有關https的概念暫時不要糾結,有一個印象就可以!後面課程安全部分會講到!

HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)是以安全為目標的HTTP通道,
簡單講是HTTP的安全版

HTTPS提供了身份驗證與加密通訊方法,現在被廣泛用於網際網路上安全敏感的通訊,例如交易支付方面

HTTPS的證書需要申請認證,這一認證是付費的,認證網站 http://cn.globalsign.com/

8> 使用瀏覽器瀏覽程式碼倉庫
如果使用了https協議,在不同的瀏覽器中訪問,顯示效果會不太一樣

  1. SVN演練準備
    1> 顯示隱藏資料夾
    顯示隱藏檔案
    defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder  
    不顯示隱藏檔案
    defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder 不顯示隱藏檔案
    defaults write com.apple.finder AppleShowAllFiles No && killall Finder

2> 在桌面上新建一個資料夾 “svn演練”
依次建立以下三個目錄
經理
張三
李四

  1. 命令列準備

熟悉命令列的目的:所有圖形工具本質上都是對命令列的封裝,理解命令列的操作,更有助於對圖形工具的使用

1> SVN基本命令
命令列格式:
svn [options] [args]
說明
svn 子命令 [選項] [引數]

提示:

[中括號]中包含的內容是可選的

(子命令縮寫)

2> 檢視幫助資訊

svnhelpsvn

svn help 檢視svn所有命令的幫助
svn help 子命令

3> UNIX常用命令介紹(UNIX常用命令.m)

二 :UNIX常用命令

附錄:UNIX常用命令

  1. cd 改變工作目錄

  2. pwd 輸出當前工作目錄的絕對路徑
    在UNIX中要執行什麼命令,一定要知道自己當前所在的工作目錄

  3. ls 檢視檔案
    ls

    ls 顯示檔案
    ls -a 顯示所有檔案
    lsl
    ls -l 列表顯示檔案
    ls -la 列表顯示所有檔案
    $ ls -G 帶顏色顯示

  4. touch 用於更改檔案訪問和修改時間的標準UNIX程式,也被用於建立新檔案

$ touch myfile.txt

注意:touch不修改myfile.txt內容,只更改它的訪問、修改時間,如果myfile.txt不存在,它會被建立

  1. cat 連續檢視檔案內容

  2. more 分頁檢視檔案內容

提示:

1> 命令和引數之間需要新增空格
2> 如果要使用當前目錄中的檔名,輸入到一半時,按TAB鍵能夠補全

三 :命令列演練

  1. 將伺服器檔案下載到本地
    切換工作目錄
    cdcheckout
    cd 經理的工作目錄 checkout伺服器上的程式碼倉庫
    svn co http://10.0.1.15/svn/weibo –username manager –password jingli

提示:checkout(co)之後,原生程式碼庫中會記錄使用者名稱和密碼,後續操作不用再另行指定

  1. 經理新增檔案
    • svn 常用命令

檢視原生程式碼庫狀態

svnstisnotaworkingcopysvn使svnsvn

svn st 錯誤提示:”is not a working copy”,必須在svn的工作目錄下才能正確使用svn的命令 檢視svn日誌
svn log
檢視某一個檔案的日誌
svnlogfilename
svn log filename 檢視某一個檔案某個版本的日誌
svn log filename@1

  • 建立檔案

切換到工作目錄
cdweibo

cd weibo 建立檔案
touch main.c
開啟並編寫檔案內容
$ open main.c

  • 將檔案提交到伺服器
    檢視工作目錄狀態
    svnst
    svn st 將檔案新增到本地版本庫中
    svn add main.c
    將檔案提交到伺服器的版本庫中
    $ svn ci -m “新增了main.c檔案”

“小結” - 新增檔案的兩個步驟

1> 將新建的檔案新增到原生程式碼庫
svnaddmain.c2>

svn add main.c 2> 將剛剛新增的檔案提交到伺服器
svn ci -m “備註資訊”

注意:一定要養成寫註釋的良好習慣

  1. 團隊成員加入

1> 張三
$ svn co http://10.0.1.15/svn/weibo –username=zhangsan –password=zhang
2> 李四
$ svn co http://10.0.1.15/svn/weibo –username=lisi –password=li

“小結” 至此,一個專案的搭建工作就告一段落了
1> 專案準備工作,通常由專案經理完成
2> 程式設計師只需要把專案 co 到本地即可

提示:新入職一家公司後,別忘記讓經理分配 svn 的賬號和密碼

  1. 張三新增檔案
    新增檔案 Person.h Person.m
    touchPerson.hPerson.mPerson.hPerson.m

    touch Person.h Person.m 修改 Person.h Person.m
    open Person.h
    openPerson.mPerson.hPerson.m
    open Person.m 將 Person.h Person.m 新增到原生程式碼庫
    svn add Person.*
    將內容提交到伺服器
    $ svn ci -m “新增了Person類”

  2. 刪除檔案
    刪除檔案
    svnrmPerson.h

    svn rm Person.h 提交刪除
    svn ci -m “刪除了檔案”

注意:不要使用檔案管理器直接刪除檔案

  1. 撤銷修改

$ svn revert Person.m

  1. 恢復到之前的某個版本

$ svn up

  1. 衝突解決
    (p) postpone 對比
    (mc) mine-conflict 使用我的
    (tc) theirs-conflict 使用對方的

四 檔案狀態

svn st 顯示的檔案狀態

第1列狀態說明:描述檔案被新增、刪除或其他修改

’ ’ 沒有修改
‘A’ 被新增到原生程式碼倉庫
‘C’ 衝突
‘D’ 被刪除
‘I’ 被忽略
‘M’ 被修改
‘R’ 被替換
‘X’ 外部定義建立的版本目錄
‘?’ 檔案沒有被新增到本地版本庫內
‘!’ 檔案丟失或者不完整(不是通過svn命令刪除的檔案)
‘~’ 受控檔案被其他檔案阻隔

五 Xcode演練

  1. 安裝CornerStone

  2. 具體操作

1> 新增遠端程式碼倉庫
2> 到處程式碼庫到本地
3> 在本地目錄下使用Xcode新建專案
注意:不要勾選 git,兩套原始碼管理同時存在會發生衝突

4> 升級SVN版本庫
5> 退出Xcode
6> 在CornerStone中忽略個人使用者檔案”xcuserdata”,否則每次都要提交,非常繁瑣!
提示:xcuserdata目錄中為保留使用者上次開啟的檔案,除錯設定的斷點等資訊

7> 在CornerStone中提交專案

8> 其他使用者操作

  1. SVN演練

1> 修改檔案
2> 修改Storyboard
3> 合併衝突(僅在兩個人同時修改一行程式碼時,才會出現衝突)

  1. 多Storyboard

1> 多Storyboard在專案開發中的應用技巧
2> 自動佈局小結

介面上任何一個控制元件,都可以”參照”其他控制元件的位置準確定位位置

通過自動佈局的約束,能夠設定出控制元件的frame => x, y, width, height
Xcode 6中很多控制元件的 x,y 值可以省略

在Storyboard中使用自動佈局的技巧
(1) 先擺好所有控制元件的所在位置
(2) 通過Pin設定控制元件與其他控制元件的”參照”位置
(3) 通過Align設定控制元件與其他空間的”參照”對齊方式
(4) 儘量把一組相關的控制元件包裝在子檢視內,這樣在設定自動佈局時,只需要指定大的子檢視之間的約束關係就可以了

自動佈局中的錯誤資訊
紅色錯誤:如果指定的約束不完整->不能準確定位檢視位置
黃色警告:如果指定的約束定位的位置,與控制元件在Storyboard的實際擺放位置不一致,會提示警告資訊

  1. 分支演練

相關文章