Ⅰ windows 怎麼用svn命令
1、Windows下命令行工具:
發現原來安裝的tortoisesvn已經集成到shell中,不能在命令行下使用。
下載Apache Subversion command line tools,這是一個可以在cmd下使用的命令行工具,解壓後把裡面bin目錄這個路徑添加到環境變數的path,這樣在cmd下就可以使用了,和linux下使用svn的習慣一樣了。
目錄約定:
/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 解決沖突
http://zccst.iteye.com/blog/1765519
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 / 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
4、關於merge
branch主要用於新功能的開發
合並發生在本地working ,只要你不提交就不會影響到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,保護好現場,萬一合並不理想隨時都可以reverthttp://blog.csdn.net/eggcalm/article/details/6606520
http://zhengkun.readthedocs.org/zh_CN/latest/2014/02/07/svn-usage/
5、關於解決沖突
發生沖突之後會出現三個臨時文件:
XXX.mine XXX.r1 XXX.r2
一旦解決了沖突,需用svn resolved讓subversion知道,這樣就會刪除這三個臨時文件,沖突狀態解決。
三種解決方式:
手工合並沖突:需要將沖突標志刪除
用某一個臨時文件覆蓋自己的工作文件
用svn revert 放棄本地修改,不需要執行resolved
Ⅱ svn如何合並代碼
使用TortoiseSVN郵件菜單中的「Merge」功能,可以合並代碼,一般用於分支與主幹代碼的合並。
Ⅲ svn 使用merge操作,將branch合並到trunk上時,出現了如下圖所示的問題,哪位高手幫忙解決啊
你既然用的是tortoisesvn,那麼你不要用復興分支這個選項,用「合並一個版本范圍」 。
我對復興分支用了解不多,抱歉羅。我一般只用merge「合並一個版本范圍"。
這樣的問題是,萬一某個branch使用時間很長,需要多次同步到trunk,必須記錄下分支上已經合並過去的版本,以免產生不必要的沖突。看起來,復興分支的作用在目錄的屬性中記錄了已經合並過什麼版本,自動處理一些東西,但我不大會用。
對」合並一個版本范圍「,我的理解和你一樣。詳細說下出問題的操作步驟吧,我還沒遇到過merge不成的。
看到你的出錯提示里」復興「二字,還以為你用的是復興分支合並方式。
Ⅳ 如何利用SVN合並代碼
利用SVN合並
Subversion的版本庫是一種文件伺服器,但不是「一般」的文件伺服器。Subversion版本庫的特別之處在於,它會記錄每一次改變:每個文件的改變,甚至是目錄樹本身的改變,例如文件和目錄的添加、刪除和重新組織;可見SVN可自動識別出開發者具體修改什麼代碼,在合並時,只要知道SVN版本號,它會自動找出修改過的代碼,然後合並到最終目標文件中。因此使用SVN來合並代碼具有合並質量高以及高效的特點。SVN的合並有三種類型,如下圖:
點「resolved」按鈕,至此,當前的沖突已解決;SVN會繼續合並後面的版本。
9.提交代碼
合並完代碼後,最後別忘記提交代碼,同時要輸入注釋,方便日後追溯。注釋參考格式如下:從[分支或主幹]合並代碼到[主幹或分支],版本號是從[開始的版本號]到[結束的版本號];
Ⅳ SVN配置管理的問題,如何令多個項目合並到一個裡面
使用來SVN的外部引用功能可以實源現你的需求
C中包含了A、B的內容,那麼在C中外部引用A、B,這樣在更新C時就可以自動獲取A、B的最新版本,而A、B還是正常使用。
外部引用可以理解為對另一個版本庫的鏈接,其用法簡單來說就是在C中為A、B各建一個文件夾,對該文件夾設置屬性svn:externals指向A、B這個兩個SVN庫或這兩個庫中的某個文件夾,更詳細的信息你搜索一下SVN的externals屬性