A. 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
有幾個截圖,參考一下吧。
B. 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
C. svn命令行使用
命令: svn co url path
例如:
命令: svn up -r m path
例如:
命令:svn st -v path
例如:
命令: svn add file
例如:
命令: svn del path -m "msg"
例如:
命令: svn ci -m "msg"
命令: svn log path
命令: svn diff path
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. 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