SVN命令使用汇总

总结一下SVN使用中一些常用命令及示例。

初始化项目

1
svn import 本地文件路径 http://server/项目路径 --username=用户名 --password=密码 -m "批注"

例如:
svn import /Users/Wynter/Desktop/项目目录 http://server/项目路径 –username=Wynter –password=Wynter -m “import”

下载项目到本地

1
2
svn checkout 服务器项目路径 -username=用户名 --password=密码 本地项目路径
svn co

例如:
svn checkout http://server/项目路径 –username=Wynter –password=Wynter /Users/Wynter/Desktop/本地项目路径

添加文件

1
2
svn add  file
svn add .

例如:
svn add test.txt(添加test.txt)
svn add *.php(添加当前目录下所有的php文件)
svn add . (添加当前目录下所有文件)

提交添加的文件,或者本地做的修改提交到版本库

1
2
svn commit -m "批注" [-N] [--no-unlock] path(如果选择了保持锁,就使用–no-unlock开关)
svn ci -m "批注"

例如:
svn ci -m “add test.txt by test”

删除文件

1
2
svn delete path -m "批注"
svn (del, remove, rm) path -m "批注"

例如:
svn delete https://server/项目目录/test.text -m “删除test.text 文件”
svn delete /Users/Wynter/本地项目目录 -m “删除目录”

更新最新版本或指定版本

1
2
3
svn update
svn update -r 回滚到的版本号
svn up

例如:
svn update (如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本)
svn update -r 200 test.txt (更新指定的版本)

注意:
如果在提交的时候提示过期的话,是因为冲突,需要先 svn update,修改文件,然后清除svn resolved,最后再提交 svn ci -m “”

查看本地修改的文件状态

1
2
svn status
svn st

例如:
svn status path(目录下的文件和子目录的状态,正常状态不显示)
【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】

svn status -v path(显示文件和子目录状态)
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。

下载不带版本控制的项目到本地(没有svn隐藏记录信息)

1
svn export 服务器项目路径 -username=用户名 --password=密码 本地项目路径

例如:
svn export http://server/项目路径 –username=Wynter –password=Wynter /Users/Wynter/Desktop/本地项目目录

加锁/解锁

1
2
svn lock path
svn unlock path

例如:
svn lock /Users/Wynter/Desktop/本地项目目录(或文件名)-m “批注”
svn unlock /Users/Wynter/Desktop/本地项目目录(或文件名)

查看日志

1
svn log path

例如:
svn log /Users/Wynter/Desktop/本地项目目录/test.txt

比较差异

1
2
3
svn diff path(将修改的文件与基础版本比较)
svn diff -r m:n path (对版本m和版本n比较差异)
svn di

例如:
svn diff text.txt
svn diff -r 200:201 text.txt

合并两个版本

1
svn merge -r m:n path

例如:
svn merge -r 12:14 text.txt (把版本12和14之间的差异合并到当前的文件中)

冲突合并

1
svn resolved path (移除工作副本的目录或文件的"冲突"状态)

例如:
svn resolve test.txt

恢复本地修改

1
2
svn revert file path
svn revert -R path

例如:
svn revert test.text
svn revert -r /Users/Wynter/Desktop/本地项目目录

复制一个项目(打标签/打分支)

1
2
3
svn copy 原地址URL 目标地址URL -m "批注"
svn copy . 目标地址 -m "批注" (必须要原地址目录下)
svn cp

例如:
svn copy http://server/项目路径/branch/IPM http://server/项目路径/tag/IPM_V1 -m “在分支中打个tag”
svn copy . http://server/项目路径/tag/tag目录目录 -m “在分支中打个tag”

合并代码

1
svn merge -r m:n path

例如:
合并文件:
svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件)

主干合并到分支
cd branch
svn merge http://server/trunk

分支合并到主干
cd trunk
svn merge –reintegrate http://server/branchs/IPM_V1_1

合并版本并将合并后的结果应用到现有的分支上
svn merge -r 200:205 http://server/trunk

代码库URL变更

1
2
3
svn switch <branch_full_url>   (切换分支)
svn switch --relocate <from_url> <to_url> [path]  (切换资源库)
svn sw

例如:
svn switch http://server/branchs/IPM_V1_1
svn sw –relocate http://old_server/项目目录 http://new_server/项目目录

svn帮助

1
2
svn help
svn help commit