A. SVN命令行怎麼用
SVN Commit
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:%f /notempfile /closeonend
SVN CommitAll
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:* /notempfile /closeonend
SVN Diff
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:diff /path:%f /notempfile /closeonend
SVN Log
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:log /path:%f /notempfile /closeonend
SVN Update
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:update /path:%f /notempfile /closeonend
SVN UpdateAll
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:update /path:* /notempfile /closeonend
Source Monitor
D:\SourceMonitor\SourceMonitor /DC++ %f
B. 公司新人svn使用教程
公司新人svn使用教程如下:
1。如果使用命令行,則拉取分支是SVN。
2.對於TortoiseSVN的客戶端,右擊源文件夾,在右擊菜單中選擇TortoiseSVN-「分支/標記」,在彈出窗口的「toURL」列中填寫分支存儲路徑,然後確認。
3.還有一種簡單的方法可以在tortoisesvn客戶機中提取分支。右鍵單擊源文件夾,不要釋放滑鼠,將其拖到存儲分支的文件夾中,釋放滑鼠,將出現菜單。在菜單中,選擇「SVN將版本控制項復制到當前位置」。
創建分支:1。您可以瀏覽TortoiseSVNpoint版本庫,然後在需要創建分支的路徑(例如trunk)中單擊「復制到新分支名稱」(注意:它不能與trunk同名,您可以創建一個新名稱,例如branch)。2瀏覽TortoiseSVNpoint版本庫,右鍵單擊TortoiseSVN並選擇createfolder,然後創建一個新的路徑名(folder),並將主幹或其他分支路徑(在本例中,估計您希望並行開發)的代碼導入該路徑。
C. 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
D. svn如何使用
svn(subversion)是近年來崛起的版本管理工具,是cvs的接班人。目前,絕大多數開源軟體都使用svn作為代碼版本管理軟體。如何快速建立Subversion伺服器,並且在項目中使用起來,這是大家最關心的問題,與CVS相比,Subversion有更多的選擇,也更加的容易,幾個命令就可以建立一套伺服器環境,
本文是使用Subversion最快速的教程,在最短的時間里幫助您建立起一套可用的伺服器環境,只需略加調整就可以應用到實際項目當中。
本教程分為以下幾個部分,為了說明簡單,教程是在windows下使用的方式,以方便資源有限的項目使用。在UNIX環境下,只是安裝方式不同,命令執行並無太大區別。
工具/原料
Subversion伺服器程序安裝包
Subversion的Windows客戶端TortoiseSVN安裝包
方法/步驟
1軟體下載
<1>、下載Subversion伺服器程序
到官方網站的下載二進制安裝文件,來到二進制包下載部分,找到 Windows NT, 2000, XP and 2003部分,然後選擇Apache 2.0 或者 Apache 2.2,這樣我們可以看到許多下載的內容,目前可以下載Setup-Subversion-1.7.12.msi 。
<2>、下載Subversion的Windows客戶端TortoiseSVN。
TortoiseSVN是擴展Windows Shell的一套工具,可以看作Windows資源管理器的插件,安裝之後Windows就可以識別Subversion的工作目錄。
官方網站是TortoiseSVN ,下載方式和前面的svn伺服器類似,在Download頁面的我們可以選擇下載的版本,目前的最高穩定版本的安裝文件為TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi。
2svn伺服器和客戶端安裝
<1>、安裝Subversion,直接運行Setup-Subversion-1.5.3.msi ,根據提示安裝即可,這樣我們就有了一套伺服器可以運行的環境。
<2>、安裝TortoiseSVN,同樣直接運行TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi按照提示安裝即可,不過最後完成後會提示是否重啟,其實重啟只是使svn工作拷貝在windows中的特殊樣式生效,與所有的實際功能無關,這里為了立刻看到好的效果,還是重新啟動機器。
<3>、安裝svn的客戶端程序,需要的話還可以安裝svn的語言包,注意語言包的版本也必須與客戶端程序的版本一致
3建立版本庫(Repository)
運行Subversion伺服器需要首先要建立一個版本庫(Repository),可以看作伺服器上存放數據的資料庫,在安裝了Subversion伺服器之後,可以直接運行,如:
svnadmin create E:\svndemo\repository
就會在目錄E:\svndemo\repository下創建一個版本庫。
我們也可以使用TortoiseSVN圖形化的完成這一步:
在目錄E:\svndemo\repository下"右鍵->TortoiseSVN->Create Repository here...「, 然後可以選擇版本庫模式, 這里使用默認即可, 然後就創建了一系列目錄和文件。
步驟閱讀 .4SVN配置用戶和許可權
來到E:\svndemo\repository\conf目錄,修改svnserve.conf:
# [general]
# password-db = passwd
改為:
[general]
password-db = passwd
然後修改同目錄的passwd文件,去掉下面三行的注釋:
# [users]
# harry = harryssecret
# sally = sallyssecret
最後變成:
[users]
harry = harryssecret
sally = sallyssecret
在passwd文件中,「=」前的字元就是用戶名,後面的就是密碼。還要注意「[users]」前面的注釋「#」一定要刪除掉。
步驟閱讀 .5運行獨立伺服器
在任意目錄下運行:
svnserve -d -r E:\svndemo\repository 我們的伺服器程序就已經啟動了。注意不要關閉命令行窗口,關閉窗口也會把svnserve停止。
6初始化導入
來到我們想要導入的項目根目錄,在這個例子里是E:\svndemo\initproject,目錄下有一個readme.txt文件:
右鍵->TortoiseSVN->Import...
在URL of repository輸入「svn://localhost/trunk」
在Import Message中輸入你的日誌信息
完成之後目錄沒有任何變化,如果沒有報錯,數據就已經全部導入到了我們剛才定義的版本庫中。
需要注意的是,這一步操作可以完全在另一台安裝了TortoiseSVN的主機上進行。例如運行svnserve的主機的IP是133.96.121.22,則URL部分輸入的內容就是「svn://133.96.121.22/trunk」。
步驟閱讀 .7基本客戶端操作
取出版本庫到一個工作拷貝:
來到任意空目錄下,在本例中是E:\svndemo\wc1,運行右鍵->Checkout,在URL of repository中輸入svn://localhost/trunk,這樣我們就得到了一份工作拷貝。
在工作拷貝中作出修改並提交:
打開readme.txt,作出修改,然後右鍵->Commit...,這樣我們就把修改提交到了版本庫,我們可以運行。
察看所作的修改:
readme.txt上右鍵->TortoiseSVN->Show Log,這樣我們就可以看到我們對這個文件所有的提交。在版本1上右鍵->Compare with working ,我們可以比較工作拷貝的文件和版本1的區別。
最後,所有的內容都已經錄制為動畫文件,大家可以參考。
關於本教程大家有什麼意見,可以這里討論 。
如果更新文件以後,有兩個人或者多個人同時修改了某個文件的某個位置,是否沖突,(一般不會這樣子,因為上傳的版本是可以編譯通過的,而且每個人負責自己的模塊,不會多人獨立修改同一個文件,別人也是先更新,後上傳修改,,,,)
開發者習慣性動作。早上上班第一件事就是更新svn版本庫,再開始一天的工作。
晚上下班,或者其他時候要上傳東西可以直接上傳因為你負責的東西沒人去修改。
沖突是怎麼產生的呢:因為不同的人,同時修改了同一個文件的同一個地方,這個時候,他提交了,你沒有提交,你就提交不了,這個時候,你要先更新,更新就會出現代碼沖突問題。最好不要多人同時修改一個文件,公用的文件,更改之前要和大家溝通一下,或者解決沖突 呵呵
先更新,沒有沖突,再提交。有沖突,解決沖突再提交。否則也提交不了。
對於一些處於沖突狀態下的文件 ,右鍵TortoiseSVN ->Resolved,解決沖突。解決沖突: http://www.blogjava.net/jasmine214--love/archive/2011/04/07/347769.html
更新-解決沖突-刪掉以下三個文件-提交(如果自己沒有修改的文件有沖突,刪除再更新即可,自己修改的文件解決沖突)
test.php.mine 是沖突前自己的文件
test.php.版本號 是沖突前本地的版本文件
test.php.伺服器的版本號 是沖突後伺服器版本文件
END注意事項
如果修改文件後提交不了,大多是因為版本不一致造成的。更新一下,不產生沖突的情況,就可以提交了。
更新文件,如果出現沖突的情況,打開沖突文件test.php會看到類似以下的內容
<<<<<<<<<<<<<<<
asdfadfadfadf
11111111111111
=======
asdfadfadfadf
111111111111111
222222222222
>>>>>>>>>>>>>>>>
結合別人修改的內容和自己修改的內容,然後把文件中的<<<<<,=====,>>>>>>>這類沖突符號去掉。去掉後,還是不能提交的,為什麼?因為沖突時會產生三個文件,有這三個文件存在肯定提交不了。
客戶端用的tortoisesvn(這個估計程序員用的最多),沖突時會多產生,三個文件
test.php.mine 是沖突前自己的文件
test.php.版本號 是沖突前本地的版本文件
test.php.伺服器的版本號 是沖突後伺服器版本文件
提交的時候,把這三個文件刪除掉就可以提交了。
產生覆蓋的原因。
a),在修改沖突文件test.php時,把別人代碼都刪除掉了,只留下了自己的代碼。這樣就會產生覆蓋了。
b),把test.php.mine中的內容直接到test.php文件,這樣也會產生代碼覆蓋。
上面二種情況都是我親眼看到新手這樣操作的,要避免這二種操作方法。
E. svn命令使用方法
在svn
commit後面可以附加參數指定路徑的,這個路徑你指定為這單個文件就行了
svn
commit
[path...]
使用svn
help
commit查看commit指令的詳細幫助
另外如果用tortoisesvn等客戶端的話,在這單個文件上點右鍵,然後選擇commit菜單就行了
F. windowns怎麼命令行安裝svn
1.windows下的命令行svn客戶端
http://somebody-hjh.iteye.com/blog/1415992
我們知道,在linux下面的svn客戶端採用命令的方式管理與伺服器端svn交互。有些朋友想在windows下也具有相同的功能,而不是TortoiseSVN的GUI管理方式。這樣可以使用我們熟悉的svn命令。
在不用安裝TortoiseSVN客戶端的情況,大家可以再http://subversion.apache.org/packages.html#windows 找到windows下的svn客戶端工具。選擇Win32Svn 進行安裝。
安裝好後,bin目錄下就是相應程序了。通過添加環境變數的方式,把bin目錄添加到path。啟動cmd,敲入 svn help 以確認是否安裝成功。
好了,可以找到你的代碼,做checkout了。在commit代碼的過程中,經常會出現的一個問題是:svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR is set, and no 'editor-cmd' run-time configuration option was found
這表示你的系統,沒有指定svn客戶端通過什麼樣的文本編輯器來寫提交的注釋。我們添加環境變數,SVN_EDITOR的值為notepad。再次svn ci 代碼。notepad彈出了,寫完注釋保存。代碼提交!
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2.使用SVN命令行工具,svn下載,windows命令行下svn
http://hi..com/cpuramdisk/item/6e8e0fc29f7dbe2f46d5c038
從http://subversion.tigris.org獲取subversion for windows的版本,安裝之後就有了svn.exe這個基於命令行的客戶端工具。當然伺服器端的程序也有了,這里就不關心如何配置SVN服務了。安裝程序把svn.exe的路徑加入了path環境變數,我們已經可以在命令行中直接輸入svn就可以使用了。
如果你不知道命令怎麼用svn命令,可通過如下方式查詢:
svn help
知道了子命令,但是不知道子命令的用法,還可以查詢:
svn help ci
開發人員常用命令
導入項目
svn import http://svn.chinasvn.com:82/pthread --message "Start project"
導出項目
svn checkout http://svn.chinasvn.com:82/pthread
採用 export 的方式來導出一份「干凈」的項目
svn export http://svn.chinasvn.com:82/pthread pthread
為失敗的事務清場
svn cleanup
在本地進行代碼修改,檢查修改狀態
svn status -v
svn diff
更新(update)伺服器數據到本地
svn update directory
svn update file
增加(add)本地數據到伺服器
svn add file.c
svn add dir
對文件進行改名和刪除
svn mv b.c bb.c
svn rm d.c
提交(commit)本地文檔到伺服器
svn commit
svn ci
svn ci -m "commit"
查看日誌
svn log directory
svn log file
相關的一些東西:
1、在本地文件中,每個目錄下都有一個.svn文件夾(屬性為隱藏),保存了相關的信息。
2、注冊環境變數SVN_EDITOR為"E:\Program Files\Vim\vim71\gvim.exe",結果在svn ci的時候,出現錯誤:
'E:\Program' 不是內部或外部命令,也不是可運行的程序
或批處理文件。
svn: 提交失敗(細節如下):
svn: system('E:\Program Files\Vim\vim71\gvim.exe svn-commit.tmp') 返回 1
把SVN_EDITOR改為"gvim.exe",並且在path中添加路徑"E:\Program Files\Vim\vim71",這樣就可以在提交的時候用vim編寫注釋了。
附:
提供免費SVN服務的網站:
http://www.svnhost.cn/(推薦)
http://www.chinasvn.com
http://www.javaforge.com
http://unfuddle.com
http://svn.coollittlethings.com/index.php(針對開源免費,針對私人項目收費)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
3.http://space.itpub.net/14466241/viewspace-713138
Windows下SVN命令行工具使用詳解(附加TortoiseSVN)
上一篇 / 下一篇 2011-12-12 09:32:22 / 置頂(3) / 個人分類:網路文摘
查看( 4610 ) / 評論( 1 ) / 評分( 5 / 0 )
根據我的記憶,似乎Windows 7下自自帶一個svn命令行工具。如果你的機器沒有,不必擔心。你可以從http://subversion.tigris.org獲 取subversion for windows的版本,安裝之後就有了svn.exe這個基於命令行的客戶端工具。安裝程序把svn.exe的路徑加入了path環境變數,我們已經可以在命令行中直接輸入svn就可以使用了。
如今,好用的開源工程遍布世界各地。許多這樣的工具都提供了相應的工程源碼的SNV下載地址,所以,這個工具你幾乎是非了解不可的。以下列出svn使用使用的典型舉例。
一、關於命令行工具SVN
如果你不知道命令怎麼用svn命令,可通過如下方式查詢:
svn help
知道了子命令,但是不知道子命令的用法,還可以查詢:
svn help ci
常用命令格式與舉例
導入項目
svn import http://svn.chinasvn.com:82/pthread --message "Start project"
導出項目
svn checkout http://svn.chinasvn.com:82/pthread
採用 export 的方式來導出一份「干凈」的項目
svn export http://svn.chinasvn.com:82/pthread pthread
為失敗的事務清場
svn cleanup
在本地進行代碼修改,檢查修改狀態
svn status -v
svn diff
更新(update)伺服器數據到本地
svn update directory
svn update file
增加(add)本地數據到伺服器
svn add file.c
svn add dir
對文件進行改名和刪除
svn mv b.c bb.c
svn rm d.c
提交(commit)本地文檔到伺服器
svn commit
svn ci
svn ci -m "commit"
查看日誌
svn log directory
svn log file
二、關於可視化SVN工具TortoiseSVN
到http://tortoisesvn.net/downloads.html處下載可視化SVN工具TortoiseSVN。這個工具非常好用,是一個WINDOWS下可視化工具,特別是支持斷點續傳。
因此,如果下載小型的SVN內容,使用上面的WINDOWS自帶的命令行工具SVN.EXE足夠了。但是,當下載大傢伙時,常常下載到中間便失去與伺服器的聯系。如果再重新下載,非常可憐,而且往往還是不行。我在下載LIBGDX這個游戲引擎的源碼工具時便是遇到這樣的情況。因此才搜索到這個工具。
下載安裝後,這個工具是以WINDOWS資源管理器插件的形式存在的,非常人性化。你只要右鍵點擊一個你想存儲下載內容的文件夾,選擇「SVN Checkout...」選擇,然後彈出一個對話框。此後,你輸入你的SVN資源地址,便OK了。而且,這個工具下載速度非常快......
備註:在這個頁面http://bbs.mountblade.com.cn/viewthread.php?tid=168300
有幾個截圖,參考一下吧。
G. 如何用命令行實現TortoiseSVN命令
TortoiseSVN是一個GUI客戶端,這個自動化指導為你展示了讓TortoiseSVN對話框顯示並收集客戶輸入,如果你希望編寫不需要輸入的腳本,你應該使用官方的Subversion命令行客戶端。
TortoiseSVN的GUI程序叫做TortoiseProc.exe。所有的命令通過參數/command:asdf指定,其中asdf是必須的命令名(命令名詳見」表 1. 有效命令及選項列表「)。大多數此類命令至少需要一個路徑參數,使用/path:"some\path"指定。在下面的命令表格中,命令引用的是/command:asdf參數,餘下的代表了/path:"some\path"參數。
因為一些命令需要一個目標路徑的列表(例如提交一些特定的文件),/path參數可以接收多個路徑,使用*分割。
TortoiseSVN 使用臨時文件在 shell 擴展和主程序之間傳遞多個參數。從 TortoiseSVN 1.5.0 開始,廢棄/notempfile參數,不再需要增加此參數。
The progress dialog which is used for commits, updates and many more commands usually stays open after the command has finished until the user presses theOK button. This can be changed by checking the corresponding option in the settings dialog. But using that setting will close the progress dialog, no matter if you start the command from your batch file or from the TortoiseSVN context menu.
To specify a different location of the configuration file, use the parameter /configdir:"path\to\config\directory". This will override the default path, including any registry setting.
如果想在進度對話框執行完畢後自動關閉,而又不必設置永久性的參數,可以傳遞/closeonend參數。
/closeonend:0 不自動關閉對話框
/closeonend:1 如果沒發生錯誤則自動關閉對話框
/closeonend:2 如果沒發生錯誤和沖突則自動關閉對話框
/closeonend:3如果沒有錯誤、沖突和合並,會自動關閉
下面的列表列出了所有可以使用TortoiseProc.exe訪問的命令,就像上面的描述,必須使用/command:asdf的形式,在列表中,因為節省空間的關系省略了/command的前綴。
表 1. 有效命令及選項列表
命令
描述
:about 顯示關於對話框。如果沒有給命令也會顯示。
:log 打開日誌對話框,/path 指定了顯示日誌的文件或目錄,另外還有三個選項可以設置: /startrev:xxx、/endrev:xxx和/strict
:checkout 打開檢出對話框,/path指定了目標路徑,而/url制定了檢出的URL。
:import 打開導入對話框,/path 指定了數據導入路徑。
:update 將工作副本的/path更新到HEAD,如果給定參數/rev,就會彈出一個對話框詢問用戶需要更新到哪個修訂版本。為了防止指定修訂版本號/rev:1234的對話框,需要選項/nonrecursive和/ignoreexternals。
:commit 打開提交對話框,/path 指定了目標路徑或需要提交的文件列表,你也可以使用參數 /logmsg 給提交窗口傳遞預定義的日誌信息,或者你不希望將日誌傳遞給命令行,你也可以使用/logmsgfile:path,path 指向了保存日誌信息的文件。為了預先填入bug的ID(如果你設置了集成bug追蹤屬性),你可以使用/bugid:"the bug id here"完成這個任務。
:add 將/path的文件添加到版本控制 。
:revert 恢復工作副本的本地修改,/path說明恢復哪些條目。
:cleanup 清理中斷和終止的操作,將工作副本的/path解鎖。
:resolve 將/path指定文件的沖突標示為解決,如果給定/noquestion,解決不會向用戶確認操作。
:repocreate 在/path創建一個版本庫。
:switch 打開選項對話框。/path 指定目標目錄。
:export 將/path的工作副本導出到另一個目錄,如果/path指向另一個未版本控制目錄,對話框會詢問要導出到/path的URL。
:merge Opens the merge dialog. The /path specifies the target directory. For merging a revision range, the following options are available: /fromurl:URL, /revrange:string. For merging two repository trees, the following options are available: /fromurl:URL, /tourl:URL, /fromrev:xxx and /torev:xxx. These pre-fill the relevant fields in the merge dialog.
:mergeall Opens the merge all dialog. The /path specifies the target directory.
: Brings up the branch/tag dialog. The /path is the working to branch/tag from. And the /url is the target URL. You can also specify the /logmsg switch to pass a predefined log message to the branch/tag dialog. Or, if you don't want to pass the log message on the command line, use /logmsgfile:path, where path points to a file containing the log message.
:settings 打開設置對話框。
:remove 從版本控制里移除/path中的文件。
:rename 重命名/path的文件,會在對話框中詢問新文件,為了防止一個步驟中詢問相似文件,傳遞/noquestion。
:diff Starts the external diff program specified in the TortoiseSVN settings. The /path specifies the first file. If the option /path2 is set, then the diff program is started with those two files. If /path2 is omitted, then the diff is done between the file in /path and its BASE. To explicitly set the revision numbers use /startrev:xxx and /endrev:xxx. If/blame is set and /path2 is not set, then the diff is done by first blaming the files with the given revisions.
:showcompare
Depending on the URLs and revisions to compare, this either shows a unified diff (if the option unified is set), a dialog with a list of files that have changed or if the URLs point to files starts the diff viewer for those two files.
The options url1, url2, revision1 and revision2 must be specified. The options pegrevision, ignoreancestry, blame and unified are optional.
:conflicteditor Starts the conflict editor specified in the TortoiseSVN settings with the correct files for the conflicted file in /path.
:relocate 打開重定位對話框,/path指定了重定位的工作副本路徑。
:help 打開幫助文件
:repostatus 打開為修改檢出對話框,/path 指定了工作副本目錄。
:repobrowser Starts the repository browser dialog, pointing to the URL of the working given in /path or /path points directly to an URL. An additional option /rev:xxx can be used to specify the revision which the repository browser should show. If the /rev:xxx is omitted, it defaults to HEAD. If /path points to an URL, the /projectpropertiespath:path/to/wcspecifies the path from where to read and use the project properties.
:ignore 將/path中的對象加入到忽略列表,也就是將這些文件添加到 svn:ignore 屬性。
:blame
為 /path 選項指定的文件打開追溯對話框。
如果設置了 /startrev 和 /endrev 選項,不會顯示詢問追溯范圍對話框,直接使用這些選項中的版本號。
如果設置了 /line:nnn 選項,TortoiseBlame 會顯示指定行數。
也支持 /ignoreeol,/ignorespaces 和 /ignoreallspaces 選項。
:cat 將/path指定的工作副本或URL的文件保存到/savepath:path,修訂版本號在/revision:xxx,這樣可以得到特定修訂版本的文件。
:createpatch 創建/path下的補丁文件。
:revisiongraph 顯示/path目錄下的版本變化圖。
:lock Locks a file or all files in a directory given in /path. The 'lock' dialog is shown so the user can enter a comment for the lock.
:unlock Unlocks a file or all files in a directory given in /path.
:rebuildiconcache Rebuilds the windows icon cache. Only use this in case the windows icons are corrupted. A side effect of this (which can't be avoided) is that the icons on the desktop get rearranged. To suppress the message box, pass /noquestion.
:properties 顯示 /path 給出的路徑之屬性對話框。
Examples (which should be entered on one line):
TortoiseProc.exe /command:commit
/path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt"
/logmsg:"test log message" /closeonend:0
TortoiseProc.exe /command:update /path:"c:\svn_wc\" /closeonend:0
TortoiseProc.exe /command:log /path:"c:\svn_wc\file1.txt"
/startrev:50 /endrev:60 /closeonend:0
H. SVN常用命令及例句
1、Linux命令行下將文件checkout到本地目錄
svn checkout path(path是伺服器上的目錄)
例如:svn checkout svn://192.168.1.1/pro/domain
簡寫:svn co
2、Linux命令行下往版本庫中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加當前目錄下所有的php文件)
3、Linux命令行下將改動的文件提交到版本庫
svn commit -m 「LogMessage「 [-N] [--no-unlock] PATH(如果選擇了保持鎖,就使用–no-unlock開關)
例如:svn commit -m 「add test file for my test「 test.php
簡寫:svn ci
4、Linux命令行下的加鎖/解鎖
svn lock -m 「LockMessage「 [--force] PATH
例如:svn lock -m 「lock test file「 test.php
svn unlock PATH
5、Linux命令行下更新到某個版本
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
6、Linux命令行下查看文件或者目錄狀態
1)svn status path(目錄下的文件和子目錄的狀態,正常狀態不顯示)
【?:不在svn的控制中;M:內容被修改;C:發生沖突;A:預定加入到版本庫;K:被鎖定】
2)svn status -v path(顯示文件和子目錄狀態)
第一列保持相同,第二列顯示工作版本號,第三和第四列顯示最後一次修改的版本號和修改人。
註:svn status、svn diff和 svn revert這三條命令在沒有網路的情況下也可以執行的,原因是svn在本地的.svn中保留了本地版本的原始拷貝。
簡寫:svn st
7、Linux命令行下刪除文件
svn delete path -m 「delete test fle「
例如: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)
8、Linux命令行下查看日誌
svn log path
例如:svn log test.php 顯示這個文件的所有修改記錄,及其版本號的變化
9、Linux命令行下查看文件詳細信息
svn info path
例如:svn info test.php
10、Linux命令行下比較差異
svn diff path(將修改的文件與基礎版本比較)
例如:svn diff test.php
svn diff -r m:n path(對版本m和版本n比較差異)
例如:svn diff -r 200:201 test.php
簡寫:svn di
11、Linux命令行下將兩個版本之間的差異合並到當前文件
svn merge -r m:n path
例如:svn merge -r 200:205 test.php(將版本200與205之間的差異合並到當前文件,但是一般都會產生沖突,需要處理一下)
12、Linux命令行下SVN 幫助
svn help
svn help ci
以上是常用命令,下面寫幾個不經常用的
13、Linux命令行下版本庫下的文件和目錄列表
svn list path
顯示path目錄下的所有屬於版本庫的文件和目錄
簡寫:svn ls
14、Linux命令行下創建納入版本控制下的新目錄
svn mkdir: 創建納入版本控制下的新目錄。
用法: 1、mkdir PATH…
2、mkdir URL…
創建版本控制的目錄。
1、每一個以工作副本 PATH 指定的目錄,都會創建在本地端,並且加入新增調度,以待下一次的提交。
2、每個以URL指定的目錄,都會透過立即提交於倉庫中創建.在這兩個情況下,所有的中間目錄都必須事先存在。
15、Linux命令行下恢復本地修改
svn revert: 恢復原始未改變的工作副本文件 (恢復大部份的本地修改)。revert:
用法: revert PATH…
注意: 本子命令不會存取網路,並且會解除沖突的狀況。但是它不會恢復被刪除的目錄
16、Linux命令行下代碼庫URL變更
svn switch (sw): 更新工作副本至不同的URL。
用法: 1、switch URL [PATH]
2、switch –relocate FROM TO [PATH...]
1、更新你的工作副本,映射到一個新的URL,其行為跟「svn update」很像,也會將伺服器上文件與本地文件合並。這是將工作副本對應到同一倉庫中某個分支或者標記的方法。
2、改寫工作副本的URL元數據,以反映單純的URL上的改變。當倉庫的根URL變動(比如方案名或是主機名稱變動),但是工作副本仍舊對映到同一倉庫的同一目錄時使用這個命令更新工作副本與倉庫的對應關系。
17、Linux命令行下解決沖突
svn resolved: 移除工作副本的目錄或文件的「沖突」狀態。
用法: resolved PATH…
注意: 本子命令不會依語法來解決沖突或是移除沖突標記;它只是移除沖突的相關文件,然後讓 PATH 可以再次提交。
18、Linux命令行下輸出指定文件或URL的內容。
svn cat 目標[@版本]…如果指定了版本,將從指定的版本開始查找。
svn cat -r PREV filename > filename (PREV 是上一版本,也可以寫具體版本號,這樣輸出結果是可以提交的)
以上是Linux命令行下常用svn命令的使用方法。
I. 如何在自己的windows環境中創建svn
一、准備工作
1、SVN伺服器:解壓縮包,可以從官方網站下載最新版本。
2、SVN客戶端:TortoiseSVN,即常說的小烏龜,是一個客戶端程序,用來與伺服器端通訊。
二、安裝伺服器和客戶端程序
1、SVN伺服器:直接解壓縮到某個文件夾下即可。示例路徑:c:\svn\
備註:如果下載的是msi程序,直接運行按提示安裝即可。
2、SVN客戶端:直接運行按提示安裝即可。示例路徑:C:\Program Files\Subversion
三、建立版本庫(Repository):示例路徑:e:\svnroot。建立版本庫有兩種方法:
方法一,建立空目錄e:\svnroot\repos1,進入repos1文件夾,在空白處點擊右鍵,選擇「TortoiseSVN->Create Repositoryhere...」,
方法二,建立空目錄e:\svnroot\repos2,進入DOS命令行,輸入如下命令:
svnadmincreate e:\svnroot\repos2
四、運行SVN伺服器,啟動服務。啟動服務有兩種方法:
方法一,臨時啟動服務,在DOS下輸入如下命令:
svnserve -d -r e:\svnroot\repos1 --listen-host ip地址 --listen-port=埠號
說明:「listen-host」和「listen-port」可選。默認埠是3690,如果埠已經被佔用,可以通過選項listen-port指定埠號。
注意:請不要關閉命令行窗口,關閉窗口會把 svn服務就停止了。
方法二,啟動SVN服務為後台運行程序:
sc create svnserve binPath= "c:\svn\bin\svnserve.exe --service -r e:\svnroot\repos1" displayname= "Subversion" depend=Tcpip start= auto
說明一:
(1)sc是windows自帶的服務配置程序。svnserve是服務的名稱,可根據需求取名。
(2)參數binPath表示svnserve可執行文件的安裝路徑。
(3)--service表示以windows服務的形式運行,--r指明svnrepository的位置,service參數與r參數都作為binPath的一部分,因此與svnserve.exe的路徑一起被包含在一對雙引號當中。
(4)displayname表示在windows服務列表中顯示的名字,depend=Tcpip表示svnserve服務的運行需要tcpip服務,start=auto表示開機後自動運行。安裝服務後,svnserve要等下次開機時才會自動運行。
說明二:
(1)binPath的等號前面無空格,等號後面有空格。displayname、depend、start也一樣,service前面是--,不是- ,而r前面是-。
(2)若要卸載svn服務,則執行 sc delete svnserve 即可。
(3)從「sc」到「auto」是在同一個命令sc,必須寫在同一行。
(4)啟動服務命令:netstart svnserve,停止服務命令:net start svnserve,也可以進入Windows提供的界面操作SVNService服務了,即控制面板—>服務。
(5)如果路徑中包括空格,一定要用「\」處理「"」號,例如上面的例子中如果svnserve.exe在「c:\programfiles\svn\」中,則命令應該寫為「binpath="\"c:\programfiles\svn\bin\svnserve.exe\"
五、配置用戶和許可權
(1)修改svnserve.conf,在e:\svn\repos1\conf目錄下,用文本編輯器打開svnserve.conf:
將:
# anon-access = read
# auth-access = write
# password-db = passwd
改為
anon-access = read
auth-access = write
password-db = passwd
注意說明:
anon-access等列前面是沒有空格的。
anon-access = read表示沒通過用戶名密碼登錄的訪問只有讀的許可權,如果改為none則沒有用戶名密碼不能訪問
auth-access = write表示通過用戶名密碼登錄的有寫的許可權(當然讀的許可權也就有了)
password-db = passwd表示可以通過 用戶名 = 密碼 的方式在passwd文件中添加用戶
(2)修改同目錄的passwd文件,增加用戶帳號:
將:
[users]
# harry = harryssecret
# sally = sallyssecret
添加帳號:
[users]
# harry = harryssecret
# sally = sallyssecret
admin = admin
添加一個admin賬戶,密碼是admin。
六、初始化SVN,導入數據
選中要上傳SVN的文件夾,「右鍵 ->TortoiseSVN -> Import...」 ,在彈出對話框的「URL of repository」輸入「svn://localhost/project1/」。在「Importmessage」輸入注釋,點擊OK,要求輸入帳號,輸入賬戶admin和密碼admin。
七,測試SVN
本地測試:新建一空文件夾test1,單擊右鍵,選擇「SVN Checkout」,在「URL of repository」中輸入「svn://localhost/project1」。
其他機器測試:如果運行svnserve的主機IP地址是1.2.3.4,則URL輸入的內容就是「svn://1.2.3.4/project1」。
J. svn info對應git什麼命令
svn命令列舉:
svn checkout :從伺服器上下載一份新的代碼到本地
svn up:在本地代碼目錄下執行,與伺服器上最新代碼保持同步
svn status:在本地代碼目錄下執行,查看當前目錄下的本地改動情況,可簡寫為svn st
svn revert <file-name>:在本地代碼目錄下執行,撤銷對<file-name>文件的改動,恢復到未改動前狀態。
svn diff <file_name>:在本地代碼目錄執行,查看對文件<file-name>的修改。
svn log -l4:查看當前目錄下的最新的4條修改歷史,可改為-l5,-l6,-l10 (注意是小寫的"L")
svn info:查看當前代碼版本信息
svn commit:提交修改的代碼到伺服器;