Linux Svn 命令詳解

1)檢出:

1
2
3
4
5
6
7
8
9
10
11
#svn co http://路徑(目錄或文件的全路徑) [本地目錄全路徑]
 --username 用戶名 --password 密碼
 
#svn checkout http://路徑(目錄或文件的全路徑) [本地目錄全路徑]
 --username 用戶名 --password 密碼
 
#svn co svn://路徑(目錄或文件的全路徑) [本地目錄全路徑]
 --username 用戶名 --password 密碼
 
#svn checkout svn://路徑(目錄或文件的全路徑) [本地目錄全路徑]
 --username 用戶名 --password 密碼

注:如果不帶--password 參數傳輸密碼的話,會提示輸入密碼,建議不要用明文的--password 選項。其中 username 與 password前是兩個短線,不是一個。不指定本地目錄全路徑,則檢出到當前目錄下。

例子:

1
2
3
4
5
6
7
8
9
10
11
#svn co svn://localhost/daobidao /home/daobidao
  --username daobidao --password daobidao
 
#svn checkout svn://localhost/daobidao /home/daobidao
  --username daobidao --password daobidao
 
#svn co http://localhost/daobidao /home/daobidao
  --username daobidao --password daobidao
 
#svn checkout http://localhost/daobidao /home/daobidao
  --username daobidao --password daobidao

2)導出(導出一個乾淨的不帶.svn文件夾的目錄樹):

1
2
3
#svn export [-r 版本號] http://路徑(目錄或文件的全路徑)[本地目錄全路徑]
#svn export [-r 版本號] svn://路徑(目錄或文件的全路徑)[本地目錄全路徑]
#svn export 本地檢出的(即帶有.svn文件夾的)目錄全路徑 要導出的本地目錄全路徑

注:第一種從版本庫導出乾淨工作目錄樹的形式是指定URL,如果指定了修訂版本號,會導出相應的版本,

如果沒有指定修訂版本,則會導出最新的,導出到指定位置。如果省略本地目錄全路徑,URL的最後一部分會作爲本地目錄的名字。

第二種形式是指定 本地檢出的目錄全路徑 到要導出的本地目錄全路徑,所有的本地修改將會保留,但是不在版本控制下(即沒提交的新文件,因爲.svn文件夾裏沒有與之相關的信息記錄)的文件不會拷貝。

例子:

1
2
3
#svn export svn://localhost/daobidao /home/daobidao
#svn export http://localhost/daobidao /home/daobidao
#svn export /home/daobidao /tmp/daobidao

有效選項:

-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2範圍)

版本參數可以是如下之一:

NUMBER 版本號

'{' DATE '}' 在指定時間以後的版本

'HEAD' 版本庫中的最新版本

'BASE' 工作副本的基線版本

'COMMITTED' 最後提交或基線之前

'PREV' COMMITTED的前一版本

-q [--quiet] : 不打印信息,或只打印概要信息

-N [--non-recursive] : 過時;嘗試 --depth=files 或 --depth=immediates

--depth ARG : 受深度參數 ARG(“empty”,“files”,“immediates”,或“infinity”) 約束的操作

--force : 強制操作運行

--native-eol ARG : 使用非標準的 EOL 標記

系統中立的文件標記 svn:eol-style 屬性取值爲 “native”。

ARG 可以是以下之一“LF”,“CR”,“CRLF”

--ignore-externals : 忽略外部項目

全局選項:

--username ARG : 指定用戶名稱 ARG

--password ARG : 指定密碼 ARG

--no-auth-cache : 不要緩存用戶認證令牌

--non-interactive : 不要交互提示

--trust-server-cert : 不提示的接受未知的 SSL 服務器證書(只用於選項 “--non-interactive”)

--config-dir ARG : 從目錄 ARG 讀取用戶配置文件

--config-option ARG : 以下屬格式設置用戶配置選項:

FILE:SECTION:OPTION=[VALUE]

3)添加新文件:

1
#svn add filename

注:告訴SVN服務器要添加文件了,還要用svn commint -m真實的上傳上去!

例子:

1
2
3
4
#svn add test.php /*添加test.php*/
#svn commit -m "添加我的測試用test.php" test.php
#svn add *.php /*添加當前目錄下所有的php文件*/
#svn commit -m "添加我的測試用全部php文件" *.php

4)提交:

1
2
#svn commit -m "提交備註信息文本" [-N] [--no-unlock] filename
#svn ci -m "提交備註信息文本" [-N] [--no-unlock] filename

注:必須帶上-m參數,參數可以爲空,但是必須寫上-m

例子:

1
2
3
4
5
6
7
8
9
10
#svn commit -m "提交當前目錄下的全部在版本控制下的文件" *
  /* 注意這個*表示全部文件*/
#svn commit -m "提交我的測試用test.php" test.php
#svn commit -m "提交我的測試用test.php" -N --no-unlock test.php
  /*保持鎖就用–no-unlock開關*/
#svn ci -m "提交當前目錄下的全部在版本控制下的文件" *
  /*注意這個*表示全部文件*/
#svn ci -m "提交我的測試用test.php" test.php
#svn ci -m "提交我的測試用test.php" -N --no-unlock test.php
 /*保持鎖就用–no-unlock開關*/

5)更新文件:

1
2
3
#svn update
#svn update -r 修正版本 filename
#svn update filename

例子:

1
2
3
#svn update /*後面沒有目錄,默認將當前目錄以及子目錄下的所有文件都更新到最新版本*/
#svn update -r 200 test.cpp /*將版本庫中的文件 test.cpp還原到修正版本(revision)200*/
#svn updatetest.php /*更新與版本庫同步*/

注:提交的時候提示過期衝突,需要先 update 修改文件,然後清除svn resolved,最後再提交commit。

6)刪除文件:

1
#svn delete svn://路徑(目錄或文件的全路徑) -m "刪除備註信息文本"

推薦如下操作:

1
2
#svn delete 文件名
#svn ci -m "刪除備註信息文本"

例子:

1
#svn deletesvn://192.168.1.1/testapp/test.php -m "刪除測試文件test.php"

推薦如下操作:

1
2
svn delete test.php
svn ci -m "刪除測試文件test.php"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章