在Windows下使用svn命令行教程及svn命令行的解釋


本文轉載自:https://blog.csdn.net/yangxiao2shi/article/details/50719286/

以前在公司一直使用git,現在的公司改用svn,一時間還真的不知道如何下手,在網上搜尋了很多大神和官網文檔的指導,總結了下面一份教程,希望能夠幫助大家快速上手,如果想更細致的了解相關內容,可以點擊每個小節里提供的的鏈接。

1、Windows下命令行工具:

發現原來安裝的tortoisesvn已經集成到shell中,不能在命令行下使用。於是找到這個http://www.visualsvn.com/downloads/

下載Apache Subversion command line tools,這是一個可以在cmd下使用的命令行工具,解壓后把里面bin目錄這個路徑添加到環境變量的path,這樣在cmd下就可以使用了,和linux下使用svn的習慣一樣了。

 
2、簡明教程:
 
目錄約定:
  • /trunck:開發主線
  • /branches:支線副本
  • /tags:標簽副本(一旦創建,不允許修改)

1)使用trunk作為主要的開發目錄

一般的,我們的所有的開發都是基於trunk進行開發,當一個版本(release)開發告一段落(開發、測試、文檔、制作安裝程序、打包等結束后),代碼處於凍結狀態(人為規定,可以通過hook來進行管理)。此時應該基於當前凍結的代碼庫,打tag。

當下一個版本/階段的開發任務開始時,繼續在trunk進行開發。此時,如果發現了上一個已發行版本(Released Version)有一些bug,或者一些很急迫的功能要求,而正在開發的版本(Developing Version)無法滿足時間要求,這時候就需要在上一個版本上進行修改了。解決方法是基於發行版對應的tag,做相應的分支(branch)進行開發。

2)下圖為struts2的SVN倉庫目錄:

3、常用命令
svn help
svn --version
svn --version --quiet    只顯示版本號
svn checkout 地址
svn add 文件或者文件夾    增加本地數據到服務器
svn commit / svn ci -m “注釋”  文件名   提交代碼,要先add才commit
svn update / svn up 不必跟特定的文件或目錄,也可以自己指定需要更新的文件或目錄。每次commit或者改動之前最好更新一下。
svn log
svn delete 文件名
svn resolve 路徑 --accept working    解決沖突
svn switch 遠程路徑    版本切換
svn list 路徑 / svn ls    列出版本庫下的文件和目錄
svn merge -r m:n 路徑     合並文件,從版本號m到版本號n的遠程分支都合並到當前分支中
svn info 確認工作目錄的svn信息
svn diff -r m:n 路徑    對版本m和版本n比較差異
svn cleanup     為失敗的失誤清場
svn status -v    在本地進行代碼修改,檢查修改狀態
svn import 遠程路徑 --message “message”   將當前路徑下文件導入到版本庫中
svn export 遠程路徑    導出一份干凈的項目
svn move/ svn mv 原文件名 新文件名    重命名
svn mkdir 文件名
svn copy / svn cp 源文件路徑 新文件路徑
svn revert 文件名     只能恢復未提交之前的操作
若要還原已提交的改動:只能用舊文件覆蓋新文件。操作如下:
    1)sun up    讓本地工作拷貝更新到最新狀態
    2)svn log your_file_path     查看文件日志,這時候提交時填寫的說明信息就派上用場了
    3)svn diff -r 舊修訂版序號:新修訂版序號 your_file_path    查看兩個修訂版之間的不同。
    4)決定用哪個舊的修訂版號后,用舊的修訂版號文件覆蓋新的修訂版號文件。svn merge -r 新修訂版序號:舊修訂版序號 your_file_path
    5)svn commit -m "恢復到某修訂版(某修訂版作廢)"
本地的版本叫做working copy
 
4、關於merge
branch主要用於新功能的開發 合並發生在本地working copy,只要你不提交就不會影響到repository 合並前一定要先update、commit,保證不會out of day,並將本地的修改保存到repository branch和trunk並行開發的過程中,要經常同步,將trunk的修改合並到branch,合並時選擇"Merge a range of revision" branch最后合並回trunk時,merge type選擇"Reintegrate a branch"
不管是從trunk合並到branch還是最終從branch合並回trunk,在每次合並前最好先update,然后將本地的修改先全部commit,保護好現場,萬一合並不理想隨時都可以revert  http://blog.csdn.net/eggcalm/article/details/6606520
 
5、關於解決沖突
發生沖突之后會出現三個臨時文件:
XXX.mine XXX.r1 XXX.r2
一旦解決了沖突,需用svn resolved讓subversion知道,這樣就會刪除這三個臨時文件,沖突狀態解決。
三種解決方式:
  • 手工合並沖突:需要將沖突標志刪除
  • 用某一個臨時文件覆蓋自己的工作文件
  • 用svn revert 放棄本地修改,不需要執行resolved
 
6、高級教程 很棒!!
https://i18n-zh.googlecode.com/svn/www/svnbook-1.4/index.html
 
7、Git和SVN的區別
Git是分布式svn是集中式;svn只有一個中央版本庫,而git有無限個;svn有全局的版本號,git沒有;git不必聯網就可以看到所有的log,svn必須聯網;git保存的是元數據,svn是復制整個文檔;git強調分支,svn只是不同的文件目錄,就是copy。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM