常用命令

svn checkout path

 svn checkout path

 例如:svn checkout  svn://192.168.1.1/pro/domain --username root --password 123456  简写:svn co

svn add file

svn add file

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

svn commit

svn commit -m “LogMessage“ [-N] [--no-unlock] path(如果选择了保持锁,就使用–no-unlock开关)

例如:svn commit -m “add test file for my test” test.php

简写:svn ci

一般步骤:

  • step-1:svn update

  • step-2:svn add file、svn delete file

  • step-3:svn commit -m “提交文件到远程服务器”

svn update

svn update -r m path
  1. svn update 后面没有目录,默认更新当前目录及子目录的所有文件到最新版本。

  2. svn update -r 200 test.php (将版本库中的文件test.php还原到版本200)  

简写:svn up

update命令还可以进行文件恢复。 (1)不小心写错了很多东西,想撤销所写的东西(已经把修改提交到服务器)svn update -r 版本号 (2)不小心删错了文件,想把文件恢复回来(已经把删除提交到服务器)
svn update -r 版本号

svn status

 svn status -v path
 svn status path
 简写:svn st

显示文件和子目录的状态。 第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。 注:svn statussvn diffsvn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。

文件状态描述

‘ ‘ 没有修改

I 被忽略

R 被替换

~ 受控文件被其他文件阻隔

"!"表示:本地执行了"rm -rf",但是未执行"svn del"的状态。

"?"表示:本地新加了一个文件,但是未执行"svn add"的状态。

"A"表示:本地新加了一个文件,且执行了"svn add"的状态。

"X"表示:执行了"svn external"的状态。

"D"表示:本地执行了"rm -rf",且执行了"svn del"的状态。

"M"表示:本地修改了该文件时的状态。

"C"表示:冲突状态,是重点关注状态之一。

svn delete

svn delete path -m “delete test file”
例如:
 1、删除远程服务器文件
 svn delete svn://192.168.1.1/pro/domain/test.php  -m “delete test file”
 2、删除本地文件,然后提交
 svn  delete test.php, 然后再svn ci -m “delete test file”,推荐使用这种
 简写:svn (del, remove, rm)

svn log

svn log path

 例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化。

如果在工程的根目录使用该命令可能会列出非常多的日志内容,因此为了查找方便,我们通常会使用一些附加参数来配合svn log命令的使用。

svn diff path

默认将修改的文件与基础版本比较。

例如:svn diff test.php
 svn diff -r m:n path(对版本m和版本n比较差异)
 例如:svn diff -r 200:201 test.php
 简写:svn di

svn merge

svn merge -r m:n path
 例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下。

svn merge (将分支代码合并到主干)

合并分支总结
1、哪个分支合并到哪个分支,就选择哪个分支右键分支代码TortoiseSVN-->Merge,比如A分支合并到B分支,此时B分支就是主分支,选择B分支右键分支代码TortoiseSVN-->Merge
2、使用merge a range of revisions时,URL From为被合并的分支代码。即A分支
3、使用merge two different trees时,From指定为合并的主分支代码,即B分支。To指定为需要被合并的分支代码,即A分支。

将分支合并到主干,需要选择主干代码右键Merge,选择对应合并类型处理。
将主干合并到分支,就需要选择对应分支右键Merge,选择对应合并类型处理。

1.merge a range of revisions
2.merge two different trees

svn 冲突

举例  :

svn update --accept tf foo.c

svn resolve --accept mf foo.c

svn resolve --accept ACTION PATH		svn resolve --accept mf foo.c	   mf:放弃服务器  tf:放弃本地