svn简单记录

时间:2023-12-05 17:34:20

记录一下工作中常用到的svn命令

一、文件的提交流程

1.svn up   // 先更新本地文件

2.svn st   // svn status 查看要提交的文件

3.#svn ci -m "xxx" filename  // 提交要提交的文件

//加 # 号,是为了防止在输入命令时,不小心按错,直接提交,写好命令后,去掉 # 号

//注意:为确保文件的修改正确,可进行文件的 svn diff filename ,参考下面svn diff 命令

二、svn log

svn log -l 10 -v   // svn log -limit 10 -v  显示最近10条提交的log

若刚提交完的svn记录,svn log时不显示,需svn up后,在svn log

svn log -r5:18 -v   // 查看特定版本范围内的日志记录

svn log path/xxx |more   查找更多 xxx文件 提交的版本

svn log -r {2011-9-27}:{2011-9-29}  // 查看某个时间段内的日志

// 查看log中,特定用户提交的log (相当于是先查询,再搜索指定用户的log)

svn log -l 10 -v path/xxx | sed -n '/username/,/--$/ p'

三、svn diff

svn diff -r2566:2677 filename 对比file任意版本差异

svn diff filename 对比当前的文件和缓存在.svn下的版本库文件

svn diff -r9412 filename 对比当前文件和特定版本的的差异

四、svn revert (回滚版本)

回滚的操作过程如下:
1、保证我们拿到的是最新代码:
    svn update
    假设最新版本号是28。
2、然后找出要回滚的确切版本号:
    svn log -l 5 -v
    假设根据svn log日志查出要回滚的版本号是25,此处的something可以是文件、目录或整个项目
    如果想要更详细的了解情况,可以使用svn diff -r 28:25 [something]
3、回滚到版本号25:
    svn merge -r 28:25 目录/文件
    为了保险起见,再次确认回滚的结果:
    svn diff [something] 
    发现正确无误,提交。
4、提交回滚:
    svn commit -m "Revert revision from r28 to r25,because of ..."
    提交后版本变成了29。

将以上操作总结为三条如下:
1. svn update,svn log,找到最新版本(latest revision)
2. 找到自己想要回滚的版本号(rollbak revision)
3. 用svn merge来回滚: svn merge -r : something

五、其他

1.创建项目

svnadmin create /path/to/repos

2.导入文件
准备一个类似下面例子中的用来导入的文件、目录树。在树结构中,应该包含三个顶层目录:branches、tags 和 trunk

svn import /tmp/project file:///path/to/repos -m "initial import"

3.建立工作副本的拷贝

svn checkout file:///path/to/repos/trunk project
简写
svn co http://xxx.com newName

4.svn blame 显示特定文件和URL每一行的作者和修订版本信息

svn blame <file or url>  --  每一行文本在开头都放了最后修改的作者(用户名)和修订版本号。

svn blame -r <version> <file or url>