Ⅰ Windows與linux下SVN怎樣使用
Windows與Linux下SVN怎樣使用?
本文分2個部分(包括Windows與Linux操作系統平台),第1部分:怎樣安裝 第2部分:怎樣使用
-----------------------------------------第1部分:怎樣安裝-----------------------------------------
怎樣安裝分2種情況,第1種:在公司上班 第2種:在宿舍電腦
--------------------第1種:在公司上班--------------------
說明:通常SVN伺服器是安裝在windows上的,安裝好後,客戶端2種平台都能使用
Windows平台下
服務端與客戶端:
通常這種情況,你想安裝,公司都不會讓你安裝,一般是由公司內網管專業人士統一安裝好,並給你分配好賬戶與密碼,以及每個SVN下使用許可權,所以這種情況你可以不用去管怎樣安裝了,只管怎樣使用即可
linux平台下
服務端:即windows上的服務端
客戶端:如果你在本機安裝的Linux虛擬機,通常是自己安裝的,不是公司網管安裝的,安裝辦法如下:
1步即能安裝:在linux下輸入命令 sudo apt-get install subversion
即SVN,安裝後同windows上SVN一樣,只不過這里是輸入命令而已
--------------------第2種:在宿舍電腦--------------------
Windows與Linux平台下
說實在的,宿舍就1台電腦.本來電腦就垃圾.而且還開著虛擬機,在開2個VS2010,就已經卡的要死.在來個SVN,估計會慢如蝸牛,其實大部分程序員也是只有一台電腦,安裝SVN真的沒必要.除非有多台電腦.SVN本質是為方便團隊開發
-----------------------------------------第2部分:怎樣使用-----------------------------------------
怎樣使用要分2種情況,第1種:是Windows平台 第2種:是Linux平台
--------------------第1種:是Windows平台--------------------
1.更新
右鍵->SVN更新
2.提交(也可說成是上傳)
第1步:進入要提交的SVN文件目錄裡面,導入文件
第2步:導入後,返回上一層目錄,即返回到要提交的SVN文件目錄,右鍵點擊此SVN目錄,彈出,提交,進入
第3步:進入提交對話框後,會顯示2個編輯框,上面的編輯框是確認要提交的內容,下面的編輯框是你剛導入的文件內容,
你現在若是想提交剛才導入的內容,就把下面編輯框的內容用滑鼠拖動到上面的編輯框,並按確定
若不想提交剛才導入的內容,直接按取消退出即可
3.導出
即怎樣去掉SVN的專用標志,有的是對勾,有的是?號等等?
方法 1:在文件屬性--->選擇顯示所有文件,這時文件里會出現1個.svn的文件目錄,把它刪掉即可.(文件目錄多時,不推薦)
方法 2:在SVN右鍵--->導出,這時導出的文件不會帶SVN標志了
4.刪除
在SVN右鍵中,刪除之後.要返回上一層目錄,點提交.
刪除信息在變更列表,要拖動到信息欄下,然後點確定
5.保存認證
每當電腦密碼更改時,SVN以前保存的密碼也會要更新,此時會彈出一個認證框,重新輸入賬號與新密碼,在保存認證處打勾即可
--------------------第2種:是Linux平台--------------------
1.更新
命令:svn update
2.提交(也可說成是上傳)
第1步:進入要提交的SVN文件目錄裡面,
第2步:添加要提交的目錄用svn add *----------->注:(*代表添加文件、目錄或符號鏈)
第3步:提交
(1)提交全部
svn ci -m"*"----------->m表示寫注釋,*代表注釋內容
注:在LINUX上同一目錄存在其它文件,svn ci提交時,只會提交SVN伺服器已有的文件.如果想讓同一目錄下的其它文件也提交到SVN伺服器,可以先通過svn add先添加此文件或文件夾等
(2)提交單個
svn ci -m"add select_area packet" Gateway_Handler.cpp
後面一個加上要提交的文件(記的把後綴名寫上去).
提交成功後會提示
Sending Gateway_Handler.cpp
Transmitting file data .
Committed revision 242.
3.保存認證
每當電腦密碼更改時,SVN以前保存的密碼也會要更新,此時會顯示要輸入密碼,重新輸入賬號與新密碼,最後會提示是否要保存密碼(yes/no),選yes即可
4.下載
命令 svn co * (*代表下載地址,例如http://192.168.1.101/project/servers/command)
之後會在當前目錄下,導出一個command文件夾,裡面是SVN伺服器上的文件
5.刪除
svn del *(*為文件名,或文件)
6.查看修改後的操作是哪些
svn diff
---------------------------------------------------以下是摘抄的---------------------------------------------------
1、將文件checkout到本地目錄
svn checkout path(path是伺服器上的目錄)
例如:svn checkout svn://192.168.1.1/pro/domain
簡寫:svn co
1、將文件checkout到本地目錄
svn checkout path(path是伺服器上的目錄)
例如:svn checkout svn://192.168.1.1/pro/domain
簡寫:svn co
2、往版本庫中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加當前目錄下所有的php文件)
3、將改動的文件提交到版本庫
svn commit -m 「LogMessage「 [-N] [--no-unlock] PATH(如果選擇了保持鎖,就使用–no-unlock開關)
例如:svn commit -m 「add test file for my test「 test.php
簡寫:svn ci
4、加鎖/解鎖
svn lock -m 「LockMessage「 [--force] PATH
例如:svn lock -m 「lock test file「 test.php
svn unlock PATH
5、更新到某個版本
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、查看文件或者目錄狀態
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、刪除文件
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、查看日誌
svn log path
例如:svn log test.php 顯示這個文件的所有修改記錄,及其版本號的變化
9、查看文件詳細信息
svn info path
例如:svn info test.php
10、比較差異
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、將兩個版本之間的差異合並到當前文件
svn merge -r m:n path
例如:svn merge -r 200:205 test.php(將版本200與205之間的差異合並到當前文件,但是一般都會產生沖突,需要處理一下)
12、SVN 幫助
svn help
svn help ci
——————————————————————————
以上是常用命令,下面寫幾個不經常用的
——————————————————————————
13、版本庫下的文件和目錄列表
svn list path
顯示path目錄下的所有屬於版本庫的文件和目錄
簡寫:svn ls
14、創建納入版本控制下的新目錄
svn mkdir: 創建納入版本控制下的新目錄。
用法: 1、mkdir PATH…
2、mkdir URL…
創建版本控制的目錄。
1、每一個以工作副本 PATH 指定的目錄,都會創建在本地端,並且加入新增
調度,以待下一次的提交。
2、每個以URL指定的目錄,都會透過立即提交於倉庫中創建。
在這兩個情況下,所有的中間目錄都必須事先存在。
15、恢復本地修改
svn revert: 恢復原始未改變的工作副本文件 (恢復大部份的本地修改)。revert:
用法: revert PATH…
注意: 本子命令不會存取網路,並且會解除沖突的狀況。但是它不會恢復
被刪除的目錄
16、代碼庫URL變更
svn switch (sw): 更新工作副本至不同的URL。
用法: 1、switch URL [PATH]
2、switch –relocate FROM TO [PATH...]
1、更新你的工作副本,映射到一個新的URL,其行為跟「svn update」很像,也會將
伺服器上文件與本地文件合並。這是將工作副本對應到同一倉庫中某個分支或者標記的
方法。
2、改寫工作副本的URL元數據,以反映單純的URL上的改變。當倉庫的根URL變動
(比如方案名或是主機名稱變動),但是工作副本仍舊對映到同一倉庫的同一目錄時使用
這個命令更新工作副本與倉庫的對應關系。
17、解決沖突
svn resolved: 移除工作副本的目錄或文件的「沖突」狀態。
用法: resolved PATH…
注意: 本子命令不會依語法來解決沖突或是移除沖突標記;它只是移除沖突的
相關文件,然後讓 PATH 可以再次提交。
18、輸出指定文件或URL的內容。
svn cat 目標[@版本]…如果指定了版本,將從指定的版本開始查找。
svn cat -r PREV filename > filename (PREV 是上一版本,也可以寫具體版本號,這樣輸出結果是可以提交的)
19、查找工作拷貝中的所有遺留的日誌文件,刪除進程中的鎖。
當Subversion改變你的工作拷貝(或是.svn中的任何信息),它會盡可能的小心,在修改任何事情之前,它把意圖寫到日誌文件中去,然後執行log文件中的命令,然後刪掉日誌文件,這與分類帳的文件系統架構類似。如果Subversion的操作中斷了(舉個例子:進程被殺死了,機器死掉了),日誌文件會保存在硬碟上,通過重新執行日誌文件,Subversion可以完成上一次開始的操作,你的工作拷貝可以回到一致的狀態。
這就是svn cleanup所作的:它查找工作拷貝中的所有遺留的日誌文件,刪除進程中的鎖。如果Subversion告訴你工作拷貝中的一部分已經「鎖定」了,你就需要運行這個命令了。同樣,svn status將會使用L 顯示鎖定的項目:
$ svn status L somedirM somedir/foo.c $ svn cleanup$ svn statusM somedir/foo.c20、拷貝用戶的一個未被版本化的目錄樹到版本庫。svn import命令是拷貝用戶的一個未被版本化的目錄樹到版本庫最快的方法,如果需要,它也要建立一些中介文件。
$ svnadmin create /usr/local/svn/newrepos $ svn import mytree file:///usr/local/svn/newrepos/some/project Adding mytree/foo.c Adding mytree/bar.c Adding mytree/subdir Adding mytree/subdir/quux.h Committed revision 1.
在上一個例子里,將會拷貝目錄mytree到版本庫的some/project下:
$ svn list file:///usr/local/svn/newrepos/some/project bar.c foo.c subdir/
注意,在導入之後,原來的目錄樹並沒有轉化成工作拷貝,為了開始工作,你還是需要運行svn checkout導出一個工作拷貝。
另附:為SVN加入Email通知
可以通過Subversion的Hook腳本的方式為SVN加入郵件列表功能
編譯安裝了Subversion後 在源碼的tools 下有一個comm-email.pl的Perl腳本,在你的檔案目錄下有一個hooks目錄,進入到hooks目錄把post-commit.tmpl 改名為post-commit並給它可執行的許可權。
更改post-commit腳本 把comm-email.pl腳本的決對路徑加上,否則 SVN找不到comm-email.pl
REPOS="$1"
REV="$2"
/usr/local/svn/resp/commit-email.pl "$REPOS" "$REV" [email protected] [email protected]
#log-commit.py --repository "$REPOS" --revision "$REV"
最後一行是用來記日誌的 我不用這個功能 所以注釋掉了.
-------------------------------------------------------------------------------------------------------
注意:為保證代碼安全.最好要備份.每個操作都要謹慎
Ⅱ 怎麼用linux命令啟動伺服器svn服務
先轉到SVN的安裝目錄,比如,你安裝在/home/svn 下面。
然後轉到bin目錄下,在這里可以看見一個叫svnserve的文件,我們需要用這個來啟動SVN服務。
試一下svnserve --help,看看這個命令的幫組,其中有-d和-r,分別表示後台運行和數據倉庫目錄。
數據倉庫目錄表示你保存數據的地方,如你將工程的信息保存在/home/svndata下面,這個svndata就是你的數據倉庫目錄。
弄清楚了這些就可以來啟動了:
輸入命令:
svnserve -d -r /home/svndata
後面那個要跟你自己的數據倉庫目錄。
這樣我們就啟動了SVN了,SVN默認監聽的是3690。有時候我們需要更改一下監聽的埠,這時就需要設定一下監聽埠了,按照如下命令來進行:
svnserve --listen-port 9999 -d -r /opt/svndata
這樣我們就把監聽埠改成了9999了,當然你也可以可以把9999改成你自己想監聽的埠~
Ⅲ linux怎麼重啟svn服務
你可以通過如下命令來進行:
1. 查看svnserver 狀態和pid
2. 殺死進程
kill -9 pid
3. 重新啟動
svnserve -d -r /home/data/svn/
其中 -d 表示守護進程
-r 表示在後台執行
/home/data/svn/ 為 svn的安裝目錄。
希望能幫到你。。。。。。
Ⅳ 在linux下查詢/關閉/啟動svn服務進程
查詢SVN服務進程號
# ps -ef|grep svnserve
查出SVN服務進程後,如果要關閉SVN服務,使用如下命令
# kill 進程號
如果要啟動SVN服務,使用如下命令
# svnserve -d -r /data/svn
其中/data/svn為SVN版本庫所在的路徑
Ⅳ linux下svn命令錯誤command not find
會不會是環境變數的問題
echo $PATH 查看下是否有/sbin
PATH=$PATH:/sbin
試試??
或者 輸入命令 /sbin/svn
剛剛試了下,不是上面的問題- -
我的環境變數沒有/sbin 都可以使用svn
Ⅵ 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
有幾個截圖,參考一下吧。
Ⅶ Linux中svn伺服器安裝與使用
直接開放svnserve的埠就可以了,默認埠是3690
如果selinux開啟了,它會阻止文件的寫入,從倉庫中拉去正常,但上傳的時候會出現 不能打開文件"***/db/txn-current-lock"許可權不夠
如果出現semanage未定義,可以參考 CentOS7 中安裝semanage來設置selinux
倉庫目錄為 /home/svn/test ,如果要刪除版本倉庫直接刪除目錄就可以了 rm -rf /home/svn/test
在倉庫目錄 /home/svn/test 的 conf 目錄中會有三個文件
修改配置
修改配置添加賬號密碼,以 賬號=密碼 的格式配置, = 號二邊盡量不要存在空格
許可權管理分為組管理和目錄許可權管理
多個創建可以共用一套賬號和密碼許可權管理。也可以用不同的賬號密碼管理,如果用不同的配置少單倉庫類似,修改每個倉庫conf下的賬號和許可權文件就可以了。下面說一下共用賬號許可權文件的情況。
在倉庫目錄 /home/svn 目錄中創建authz文件和passwd文件。
修改配置各倉庫下conf/svnserve.conf。將password-db和authz-db指向/home/svn/目錄下的文件
修改/home/svn/passwd配置添加賬號密碼,以 賬號=密碼 的格式配置, = 號二邊盡量不要存在空格
修改/home/svn/authz許可權管理分為組管理和目錄許可權管理
如果單倉庫以/home/svn啟動,此時訪問的地址會有倉庫名。 svn://ip/test
訪問地址分別為:
編輯 /etc/sysconfig/svnserve 文件,修改 OPTIONS="-r /var/svn" 參數改為svn倉庫目錄 OPTIONS="-r /home/svn"
設置開機啟動
修改後也可以用systemctl來啟動、停止、重啟
svnserve啟動後,修改authz和passwd文件是時實生效的,並不需要重啟服務
有時隨著倉庫越來越多,許可權配置也越來越多時,會出現一些配置錯誤,導致訪問時出現無法載入許可權驗證之前的錯誤,這個時候我們可以將svn伺服器的日誌列印出來,看些配置出錯了。
停止svn伺服器,重新附加log-file參數輸入日誌到指定文件
Ⅷ linux設置svn開機啟動
首先,我也沒徹底解決這個問題。我也遇到這個現象,這個現象發生在使用開機自動啟動SVN,但是手工啟動卻正常(CentOS)。然後我的臨時解決方案是關閉SELinux就可以正常訪問。
關閉SELinux方法有臨時關閉:setenforce 0 。永久關閉,修改文件(請繼續網路)。
但是這個方案本質上沒有徹底解決,因為啟用SELinux後,還是要手工啟動SVN才能正常訪問。
Ⅸ linux上svn服務怎麼提交修改後的文件
1、首先,連接相應linux主機,進入到linux命令行狀態下,等待輸入shell指令。
Ⅹ Linux下安裝SVN(圖文詳解)
附:
查看SVN所有命令: svn + Tab鍵
svnadmin幫助命令:svnadmin help
create幫助命令:svnadmin help create
開啟默認3690埠
方法一:
方法二(推薦):