① 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怎麼上傳文件
一般我們都是按以下步驟操作的:
1.先將那個目錄checkout下來
2.將要添加的文件或者文件夾放到這個目錄中
3.右擊文件執行svn菜單中的add命令
4.右擊文件執行svn菜單中的commit命令
上面的步驟3和4可以合並成一步完成,即右擊整個svn文件夾然後選擇commit命令,對話框會顯示哪些文件需要添加,將復選框勾上然後確定即可。
如果只是單純的提交一個文件到svn中某個目錄用上面方法的話會不會很繁瑣,如果能像共享文件夾那樣直接復制粘貼多好,其實方法是有的。
如果要將某個文件夾aa連同裡面的文件一起放到svn的某個目錄請按下面步驟操作:
1.右擊文件夾執行svn菜單的import命令
2.在彈出的對話框中選擇要放到svn的哪個目錄中
3.確定即可
如果你要提交的僅僅是個文件(假設為c:\test.txt)你會發現在右擊的svn菜單中找不到import,這可能是svn的某個小bug,不過別擔心,方法是有的:
1.打開cmd窗口
2.輸入TortoiseProc.exe /command:import /path:"c:\test.txt"然後回車
3.這時會彈出和上面一樣的對話框
4.選擇要存放的目錄,注意這時點確定的話會提示錯誤,還需要在目錄後加個文件名字,而這個文件名字必須是svn中不存在的,例如/test.txt,寫成/xxx.txt也行
5.確定即可
用這個方法來操作文件夾也是可行的。
對於svn的一些操作,如果有什麼復雜的需求的話建議好好閱讀它的幫助文檔,它的幫助文檔寫的和軟體一樣好,上面的需求實現就是從它的幫助文檔上找到答案的。
③ SVN中如何將指定文件或文件夾直接提交到svn指定目錄
一般我們都是按以下步驟操作的:
1.先將那個目錄checkout下來
2.將要添加的文件或者文件夾放到這個目錄中
3.右擊文件執行svn菜單中的add命令
4.右擊文件執行svn菜單中的commit命令
如果只是單純的提交一個文件到svn中某個目錄用上面方法的話會不會很繁瑣,如果能像共享文件夾那樣直接復制粘貼多好,其實方法是有的。
如果要將某個文件夾aa連同裡面的文件一起放到svn的某個目錄請按下面步驟操作:
1.右擊文件夾執行svn菜單的import命令
2.在彈出的對話框中選擇要放到svn的哪個目錄中
3.確定即可
如果你要提交的僅僅是個文件(假設為c:\test.txt)你會發現在右擊的svn菜單中找不到import,這可能是svn的某個小bug,不過別擔心,方法是有的:
1.打開cmd窗口
2.輸入TortoiseProc.exe /command:import /path:c:\test.txt然後回車
3.這時會彈出和上面一樣的對話框
4.選擇要存放的目錄,注意這時點確定的話會提示錯誤,還需要在目錄後加個文件名字,而這個文件名字必須是svn中不存在的,例如/test.txt,寫成/xxx.txt也行
5.確定即可
用這個方法來操作文件夾也是可行的。
④ svn 命令怎麼add全部提交
用svn客戶端,選中文件夾,提交的時候默認是整個全部提交,可以勾選某些文件不用提交;
⑤ svn的常用命令有哪些
1、將文件checkout到本地目錄
svn checkout path(path是伺服器上的目錄)
簡寫:svn co
2、往版本庫中添加新的文件
svn add file
3、將改動的文件提交到版本庫
svn commit -m 「LogMessage」 [-N] [--no-unlock] PATH(如果選擇了保持鎖,就使用–no-unlock開關)
簡寫:svn ci
4、加鎖/解鎖
svn lock -m 「LockMessage」 [--force] PATH
svn unlock PATH
5、更新到某個版本
svn update -r m path
簡寫:svn up
6、查看文件或者目錄狀態
1)svn status path(目錄下的文件和子目錄的狀態,正常狀態不顯示)
2)svn status -v path(顯示文件和子目錄狀態)
簡寫:svn st
7、刪除文件
svn delete path -m 「delete test fle」
簡寫:svn (del, remove, rm)
8、查看日誌
svn log path
9、查看文件詳細信息
svn info path
10、比較差異
svn diff path(將修改的文件與基礎版本比較)
svn diff -r m:n path(對版本m和版本n比較差異)
簡寫:svn di
11、將兩個版本之間的差異合並到當前文件
svn merge -r m:n path
12、SVN 幫助
svn help
svn help ci
⑥ svn 中的add 和commit命令有何區別啊,謝謝
svn 中的add 和commit的區別在於:
add會將新增的文件加入到編譯器中,而不會將修改的文件添加進去。
commit則會將修改的文件添加到編譯器中,同時也會將新增的文件添加進去。
如果是只有新增文件使用add,有新增文件又有修改文件或只有修改文件請使用commit。
(6)svnadd命令擴展閱讀:
SVN安裝
(1)首先,到SVN的官方網站htp:/subversion.tigris.org下載最新版本的SVN伺服器安裝程序。
(2)運行安裝程序,安裝過程與普通軟體的安裝過程基本相同,例如F:ASubversion。其餘步驟都採用默認設置,依次單擊Next按鈕,直至安裝結束。
⑦ svn更新時提示文件不在版本控制范圍內,更新失敗
①進入D:\DevWorkSpace\SVNSpace\MyERP目錄
②創建一個文件test.txt
③執行svn commit命令,運行結果是
D:\DevWorkSpace\SVNSpace\MyERP>svn commit test.txt
svn: E200009: 提交失敗(細節如下):
svn: E200009: 「D:\DevWorkSpace\SVNSpace\MyERP\test.txt」 尚未納入版本控制
說明一個文件必須納入版本控制才可以提交到伺服器端。
④執行svn add命令,將test.txt納入版本控制
D:\DevWorkSpace\SVNSpace\MyERP>svn add test.txt
A test.txt
⑤再次執行svn commit命令
D:\DevWorkSpace\SVNSpace\MyERP>svn commit test.txt
svn: E205007: 提交失敗(細節如下):
svn: E205007: 無法使用外部編輯器獲得日誌信息;考慮設置環境變數 $SVN_EDITOR,或者使用 –message (-m) 或 –file (-F) 選項
svn: E205007: 沒有設置 SVN_EDITOR,VISUAL 或 EDITOR 環境變數,運行時的配置參數中也沒有 「editor-cmd」 選項
此時要求附加日誌信息
⑥使用-m參數附加日誌信息
D:\DevWorkSpace\SVNSpace\MyERP>svn commit -m 「My first commit」 test.txt
svn: E170001: 提交失敗(細節如下):
svn: E170001: 認證失敗
原因是沒有許可權
⑦暫時先開啟匿名訪問許可權
[1]進入對應的版本庫目錄下的conf目錄:D:\DevRepository\Subversion\ERP\conf
[2]打開svnserve.conf
[3]將第19行的# anon-access = read改為anon-access = write,也就是去掉「# 」,將read改為write。注意前面不要留空格,一定要頂格寫。
[4]不需要重啟SVN服務,甚至命令行窗口都不需要重新打開。
⑧重新執行提交命令
D:\DevWorkSpace\SVNSpace\MyERP>svn commit -m 「My first commit」 test.txt
正在增加 test.txt
傳輸文件數據.
提交後的版本為 1。
說明提交成功了。
⑨其實svn commit命令最後可以不指定具體文件,此時表示提交當前工作副本中的所有修改。
4.3 更新
①將伺服器端文件檢出到一個新的目錄,模擬另外一個終端
D:\DevWorkSpace\SVNSpace>svn checkout svn://localhost/ERP TomERP
A TomERP\test.txt
取出版本 1。
②回到MyERP目錄,對test.txt文件修改後提交。
③進入TomERP目錄
④執行svn update命令
D:\DevWorkSpace\SVNSpace\TomERP>svn update
正在升級 『.』:
U test.txt
更新到版本 2。
這樣我們就可以在TomERP目錄下看到MyERP目錄下提交的修改。
⑤思考:更新和檢出的相同點和不同點分別是什麼?
檢出 更新
相同點 從伺服器端下載最新內容
不同點1 下載整個項目 下載與本地工作副本不同的內容
不同點2 創建.svn目錄,使檢出目錄成為工作副本 依賴.svn目錄
不同點3 只能操作1次 可以操作多次
⑧ 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命令的使用方法。
⑨ 工程代碼有什麼用
如下:
update:把伺服器上的代碼更新到本地,如果本地代碼有被修改(增加代碼,修改代碼),可能和伺服器上代碼發生沖突,這時需要把有沖突的文件找到,然後把修改過的代碼進行到其他地方保存起來,然後revert回伺服器上的代碼,這時沖突解決了。
再把保存起來修改過的一部分代碼復制到你發生沖突的文件對應位置,總之,就是右鍵revert沖突的文件,然後在修改成自己想要的。因此,開始做項目時,最好先update,然後在寫代碼,免得自己修改了其他工程的代碼。
commit:提交自己修改過的代碼,但是第一次不能commit,需要長安左鍵拖到SVN伺服器對應的文件夾下面。
checkout:將需要的工程下載到本地(首先要在SVN上找到你要下載的工程的地址,SVN地址在地址欄中,然後復制地址,回到自己的本地工程所在文件夾,checkout時粘貼剛才復制的地址。)
add:上傳我們的工程代碼到SVN代碼庫時,一般.so文件會漏掉,這時,我們需要通過SVN的add命令,將.so文件上傳到代碼庫中,方法如圖所示。
revert:這個也是我們經常用到的SVN命令,可以回溯我們的代碼,本地修改的代碼如果上傳到SVN上面和庫上的代碼發生沖突,這時,我們需要先回溯代碼到伺服器,然後在update,在修改我們的代碼,然後在上傳到伺服器。
相關內容:
工程代碼就是定額或清單規范中給定的單位工程的編號。
所謂工程模式,其實是指利用手機檢測基站各種指標參數所處的一種工作模式。各家行動電話製造公司均有專門的開啟工程模式的產品出售,它具備了普通用戶使用的行動電話所有功能,同時可用做檢測行動電話所處位置的包括場強、距離基站距離。
手機所佔頻道號碼以及目前所使用的臨時號碼等等信息,因此價格往往高出普通行動電話許多。但是只要將我們普通行動電話做些電路和程序上的改動,就可以使其開啟工程模式從而身價大增。
⑩ 如何用svn命令行提交某個目錄下多個新文件到伺服器
首先這個文件夾必須是受SVN控制的,也就是說這個文件夾是必須從伺服器端checkout出來的;然後寫一個批處理,裡面核心就兩行,第一行是svn add * ,把所有新增的文件加上add標記,第二行是svn commit 把所有新增和修改過的文件提交到伺服器端;然後把這個批處理設置成操作系統的定時任務,每隔一定時間自帶執行一次。如何用svn命令行提交某個目錄下多個新文件到伺服器