SVN状态说明

发布时间 2023-07-14 13:44:42作者: xiaowang_lj

1、svn status查看工作副本中目录与文件的状态

命令格式:svn status [PATH](简写:svn st)

打印工作拷贝中文件和目录的状态。

svn st | grep ^状态(获得某状态文件列表)

svn st | grep -v ^状态(也作svn st|grep ^[^状态],过滤掉某状态得到其他状态文件列表)

例:

svn st | grep ^M   (获取“M”状态文件列表)

svn st | grep -v ^?(过滤掉“?”状态的文件列表)

常见状态如下:

 “A” 预定加入到版本库
 “C” 发生冲突
 “D” 被删除了
 “M” 内容被修改
 “?” 条目未纳入版本控制
 “!” 该项目已遗失(被非svn命令删除)或不完整
 “~” 版本控制下的项目与其它类型的项目重名
 “G” 合并
 “I” 忽略
 “R” 替换
 “X” 未纳入版本控制,但被外部定义所用
 “?” 未纳入版本控制
 “L” 锁定
 “S” 已切换
 “K” 存在锁定标记

其中,“?”“!”“~”为非正常状态,svn不会将处于该状态的文件提交至项目仓库。 

 

l “!” 状态说明

出现原因:使用非svn命令(rm等)删除了此条目。 

解决方法:使用svn update(svn up),将被删除的条目更新出来。

正确操作方法:使用svn delete删除纳入版本控制的条目

 

 

l “~ ”状态说明

出现原因:删除了一个版本库的文件,新建了一个在原来的位置,新建文件类型与原有文件不一致,而且整个过程中没有使用svn delete或是svn add。

解决方法: 将“~”文件svn revert 掉,按照正确操作重新修改。

出错案例:

wsdl头文件统一建立在include/wsdl_include目录中,各模块webservice目录下的同名wsdl头文件只是创建的软链接。若拷贝include/wsdl_include目录中wsdl头文件将webservice目录下的同名wsdl头文件覆盖掉,svn st查看wsdl头文件状态为“~”。