优秀的编程知识分享平台

网站首页 > 技术文章 正文

Linux C编程 - 使用SVN(linux配置svn)

nanyue 2024-09-01 20:26:48 技术文章 3 ℃

svn checkout 下载代码

svn checkout  svn://A.B.C.D/xx
username: xxxx
password: xxxx

svn update 更新代码

1. svn update
后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。

2. svn update -r 200 test.c
将版本库中的文件test.c 还原到修正版本200。

3. svn update test.c
更新test.c 文件与版本库同步。

svn delete

svn delete test.c
svn commit -m 'delete test.c'

svn diff 比较差异

svn diff test.c
将修改的文件与基础版本比较。

svn diff -r 200:201 test.c
将修正版本号200 与 修正版本号201 比较差异

svn status 查看文件状态

svn status 目录路径
[?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定]

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

注:
svn status、svn diff和svn revert这三条命令在没有网络的情况下也可以执行的,
原因是svn在本地的.svn中保留了本地版本的原始拷贝。

svn log 查看提交日志

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

linux 下SVN忽略文件/文件夹的方法

假如想忽略文件temp
1. cd到temp所在的目录下:
2. svn propedit svn:ignore .
注意:请别漏掉最后的点(. 表示当前目录)
3. 打开的文件就是忽略列表文件(默认是空的),每一行是一项,在该文件中输入temp, 保存退出。
4. svn status 查看状态,temp的?状态已经消除了。

使用SVN 生成的patch以及打入patch的command

1. 生成patch 文件
svn diff > test.diff // 整个工程的变动生成patch
svn diff test.c > test.diff //某个文件单独改动生成patch

2. svn 回滚
svn revert test.c //单个文件回滚
svn revert DIR --depth=infinity //整个目录进行递归回滚

3. 打patch
patch -p0 < test.patch //-p0 选项要从当前目录查找目的文件
patch -p1 < test.patch //-p1 选项要从当前目录查找目的文件,不包含patch中的最上级目录
ex: 两个版本以a,b开头,而a,b并不是真正有效地代码路径,则这个时候需要使用"-p1"参数。
a/src/...
b/src/...

svn status 命令查看svn 状态

A:add,新增
C:conflict,冲突; tc以他们改得为准
D:delete,删除
M:modify,本地已经修改
G:modify and merGed,本地文件修改并且和服务器的进行合并
U:update,从服务器更新
R:replace,从服务器替换
I:ignored,忽略

svn commit 提交文件

svn add test.c //添加test.c
svn commit -m 'add test.c' test.c
svn add *.c //添加当前目录下所有的c文件
svn commit -m 'add all c file' *.c

查看某一个版本提交的log 信息

svn log -r ARG -v
ARG: 版本号
可以是如下之一:
NUMBER 版本号
'{' DATE '}' 在指定时间以后的版本
'HEAD' 版本库中的最新版本
'BASE' 工作副本的基线版本
'COMMITTED' 最后提交或基线之前
'PREV' COMMITTED的前一版本
ex: 
svn log -r 1314 -v

查看某一个版本其中一个文件的修改:
svn diff -c 935 test.c
935表示版本号,test.c 当前目录下的文件

查看目前的n次提交:
svn log --limit n
ex: 查看当前的3次提交
svn log --limit 3

实现查看某个指定用户提交的记录

svn log -v | sed -n '/username/,/--$/ p'
其中username 为用户名,可以替换为其它用户

查询某个用户username的最近10条commit log

svn log --search username -l 10

忽略显示带问号的文件

svn status -q


使用SVN 命令行提交代码时,可以让提交的注释换行的方法

svn commit -m #39;comment1\ncomment2\ncomment3\n'
最近发表
标签列表