Mac的SVN操作

SVN 初探
  • 什麼是SVN?

Apache Subversion 通常被縮寫成 SVN,是一個開放源代碼的版本控制系統,相較於RCS、CVS,它採用了分支管理系統,它的設計目標就是取代CVS。

  • SVN的下載安裝?(window)

下載地址:svn下載

這裏講解 Mac 上操作 SVN, window使用 tortoisesvn 操作 SVN 可以參照這裏:tortoisesvn具體操作SVN

Mac具體操作以及常用終端命令?

注: Mac系統自帶SVN所以不需要下載。

  1. checkout到本地 (遠程拉取代碼)
svn checkout path(服務器目錄)
例:svn checkout svn:192.168.1.1/XXXX
簡寫:svn co
  1. 查看當前工作區的狀態
svn status
(1)svn status path(目錄下的文件和子目錄的狀態,正常狀態不顯示)
【?:不在svn的控制中;M:內容被修改;C:發生衝突;A:預定加入到版本庫;K:被鎖定】
(2)svn status -v path(顯示文件和子目錄狀態)
第一列保持相同,第二列顯示工作版本號,第三和第四列顯示最後一次修改的版本號和修改人。
注:svn status、svn diff和 svn revert這三條命令在沒有網絡的情況下也可以執行的,原因是svn在本地的.svn中保留了本地版本的原始拷貝。
簡寫:svn st

  1. 查看文件詳細信息
svn info
svn info path
例:svn info test.html
  1. 查看文件列表,可以指定-r查看,查看指定版本號的文件列表
svn ls 
svn ls -r 100

在這裏插入圖片描述
5. 添加文件

svn add file
例:svn add test.html(添加test.html)
  1. 提交代碼
// 更新
svn update [-r] m path
例如:
svn update如果後面沒有目錄,默認將當前目錄以及子目錄下的所有文件都更新到最新版本。
svn update -r 200 test.php(將版本庫中的文件test.php還原到版本200)
svn update test.php(更新,於版本庫同步。如果在提交的時候提示過期的話,是因爲衝突,需要先update,修改文件,然後清除svn resolved,最後再提交commit)
簡寫:svn up
*** 跟Git一樣,公司協作開發,防止意外,先拉後推。***
// 提交
svn commit -m 'add test file' test.html
簡寫:svn ci

  1. 查看日誌信息
svn log path
例如:svn log test.php 顯示這個文件的所有修改記錄,及其版本號的變化

在這裏插入圖片描述
8. 刪除文件

svn delete path -m "delete test file"
例如:svn delete svn://192.168.1.1/pro/domain/test.php -m "delete test file"
或者直接svn delete test.php 然後再svn ci -m 'delete test file',推薦使用這種
簡寫:svn (del, remove, rm)
  1. 比較差異
svn diff path(將修改的文件與基礎版本比較)
例如:svn diff test.php
svn diff -r m:n path(對版本m和版本n比較差異)
例如:svn diff -r 200:201 test.php
簡寫:svn di
  1. 將兩個版本之間的差異合併到當前文件
svn merge -r m:n path
例如:svn merge -r 200:205 test.php(將版本200與205之間的差異合併到當前文件,但是一般都會產生衝突,需要處理一下)

  1. 回滾(恢復本地修改)
revert PATH…
取消所有的本地編輯。
恢復一整個目錄的文件,可以使用--depth=infinity選項
注意: 本子命令不會存取網絡,並且會解除衝突的狀況。但是它不會恢復被刪除的目錄
  1. 切換當前項目到指定分支
服務器上更新新版本我們經常就用這個命令來把當前代碼切換到新的分支
svn switch svn://svnbucket.com/test/branches/online1.0
  1. 解決衝突
svn resolved PATH…
移除工作副本的目錄或文件的“衝突”狀態。
注意: 本子命令不會依語法來解決衝突或是移除衝突標記;它只是移除衝突的相關文件,然後讓 PATH 可以再次提交。

  1. 重定向倉庫地址到新地址
svn switch --relocate 原svn地址 新svn地址
  1. 創建分支,從主幹創建一個分支保存到branches/online1.0
svn cp -m "描述內容" http://svnbucket.com/xxxx http://svnbucket.com/xxxx/branches/online1.0

  1. 合併主幹上的最新代碼到分支上
cd branches/online1.0
svn merge http://svnbucket.com/xxxx
  1. 分支合併到主幹
svn merge --reintegrate http://svnbucket.com/xxxxx/branches/online1.0
  1. 刪除分支
svn rm http://svnbucket.com/xxxxx/branches/online1.0
  1. 查看SVN幫助
svn help
# 查看指定命令的幫助信息
svn help commit
  1. 加鎖/解鎖
1 svn lock -m “LockMessage“ [--force] PATH
2 例如:svn lock -m “lock test file“ test.php
3 svn unlock PAT
  1. Mac上面svn通過終端回退版本到某個版本號
  • 要回退/回滾版本,有很多版本,這裏先介紹用update操作的方法。

(1)首先通過“ls”操作可以查看當前目錄的文件。
通過“cd 文件名”操作可以進入到某個文件夾,文件夾輸入一部分後,如果是唯一的,則可以按Tab鍵來補全文件夾名。
進入到使用svn進行版本管理的工程文件夾後。
使用以下語句可以查看當前本地文件的版本號:

svn info  
當然查出來的不止是版本號信息了。

使用以下語句進行版本回退:

svn update -r 版本號  
這樣就可以更新到某個版本,比如要去往版本號爲20190925的版本:

svn update -r 20190925  
這樣就可以開始版本替換了。

在替換過程中,有可能會出現衝突,svn會給出處理的快捷鍵:
svn版本替換出現衝突
按s可以查看各個快捷鍵的說明:
提示解決方法便捷命令
我們選擇“tf”就可以了,表示全部以服務器的代碼爲準。
這樣就可以回退到相應的版本了。
要回到現在的版本也是一樣的操作。

  1. Mac 上面新建文件夾,提交到SVN遠程?
  • 在本地修改 添加/新建 了文件夾或者靜態資源,如果單純的 svn up 更新後,直接 svn commit -m " 描述 ",出現問題就是實際上並沒有在 遠程 SVN上創建成功,或者你可以使用 svn status 查看,如果有 一系列文件列表,並且你會發現你創建的文件夾前面標註[?],說明沒有提交成功。如下:
    在這裏插入圖片描述
// 解決方法:
svn add 所創建的文件夾名稱

在這裏插入圖片描述
標註由[?]變爲[A],此時在本地說明創建成功。

然後執行 svn commit -m '描述內容' 出現以下過程,說明文件在遠程SVN上面提交成功

在這裏插入圖片描述

Mac上類似 window上的tortoisesvn工具?
  • 相對於window上的tortoisesvn可視工具來說,Mac 終端代碼不是那麼直觀,習慣就好了。

SnailSVNLite官網
其實也沒必要去官網,App Store就可以。直接搜

  • 配置:
  1. 在Apple Store下載SvnSnail: Lite版本(需輸入apple id)
  2. 打開SnailSVN
  3. 點擊General,打開系統設置(Open System Preference),勾上SnailSVNLite: Finder Extensions
  4. 點擊SVN Settings,選擇paths
  5. 創建.ssh路徑,先打開終端Terminal,然後輸入 mkdir .ssh,創建完成後就可以paths中選擇你剛剛創建的.ssh,再依次選擇bin以及6. Applications路徑。/Users/xxx/.ssh, /urs/local/bin, /Applications
  6. 新建一個文件夾svn-workspace作爲工作路徑
  7. 點擊SnailSVN Lite左上角的File->Svn Checkout,輸入SVN的Url,檢出項目的路徑svn-workspace,點擊確定,彈出驗證框,輸入帳號密碼即可。
  8. 結束
  • 另外:
SnailSVN 是最像 TortoiseSVN 小烏龜的 Apache Subversion(SVN)客戶端,與 Finder 緊密集成。
SnailSVN 允許你從 Finder 的上下文菜單中快速訪問各種最常用的 SVN 功能。
SnailSVN 爲 Finder 中的 SVN 工作副本文件添加狀態圖標,並在文件改動時自動更新狀態圖標,工作副本中文件的狀態一目瞭然。
安裝好以後,需要在“系統偏好設置 » 擴展 » Finder”中啓用“SnailSVN 擴展”,才能在Finder裏右鍵菜單看到。 



在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章