svn状态与常见错误

TortoiseSVN 1.6.16是最后一个目录独立管理自身cache的svn版本(每个目录下都有一个隐藏的.svn文件夹)
之后的版本会则会根目录上统一进行管理(只有根目录下有一个隐藏的.svn文件夹)
各个目录独立管理自己cache会有很多好处:
① 各个目录相互独立,互相不受影响
② 目录下出现难以处理的svn错误时,可通过删除目录重新拉取来暴力解决
由于svn默认对.a和.so文件设置了过滤:对某个目录add时,不会将该目录下的.a、.so文件add,必须再手动一个一个的add进去

Global ignore pattern: *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store
该设置记录在注册表以下键值(HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\miscellany\global-ignores)中:

注:Global ignore pattern设置是全局有效的,会作用于本机所有svn的Working Copy
----------------------------------------------------------------------------------------------------------
服务器:Repository
本地: Local 或 Working Copy
== 状态==
Updated 文件a或目录A在服务器和本地均受控,本地未做过任何修改且版本较老,执行svn更新时,使用服务器版本覆盖该文件或目录
Added 文件a或目录A在服务器受控、本地不存在且不受控,执行svn更新时,使用服务器版本新建该文件或目录
Deleted 文件a或目录A在本地受控且存在,但在服务器已被删除,执行svn更新时,删除本地该文件或目录;
若执行svn更新文件或目录依然存在,将文件或目录Revert掉即可(按照从上到下的顺序,先Revert目录,然后再Revert掉目录下的文件)
Versioned 文件a或目录A在服务器受控、本地不受控,但本地存在一个与服务器一致的文件或目录,执行svn更新时,则该文件或目录的状态会变为Versioned
Restored 文件a或目录A受控,本地的版本号已为最新,但却在本地被删除了,执行svn更新时,则该文件或目录的状态会变为Restored
External 外部引用链接

注:在TGame目录下右键菜单 TortoiseSVN - Properities,即可看到externals所指向的具体路径
该路径可以为相对路径、也可以为绝对URL。
Missing
1. 文件a或目录A受控,在本地被删除了,则其状态在本地则为Missing
可以通过执行svn更新,从服务器重新拉取文件a或目录A
2. 有一种情况:即使执行update也不能从服务器拉得Missing掉的文件a或目录A
当服务器存在文件a和文件a(或目录A和目录a) -- 注:linux操作系统下的文件目录名是区分大小写的
然而windows上,是不允许同一文件夹中存在2个仅仅大小写不同的文件(或目录)
正是由于操作系统之间的差异,如果本地已经有a.txt的版本信息,在windows上提交仅大小写不同的A.txt文件时,会弹出如下警告:

解决办法1:
① 删除服务器上所有仅大小写不同的文件(或目录): 打开Repository Browser,然后选择这些文件(或目录),进行Delete删除 注:删除前记得备份一下
② 通知所有的客户端,本地执行update
③ 最后,上传目标文件(或目录)即可
解决办法2:
① 删除服务器上一个仅大小写不同的文件(或目录) 打开Repository Browser,然后选择该文件(或目录),进行Delete删除
② 在本地执行update时,会出现“Can't open file 系统找不到文件的错误”
此时需要,新建一个与服务器同名的文件(或目录),然后执行svn -- delete 注:删除前记得备份一下;这一步主要是为了清除本地的有问题的缓存
③ 最后,上传目标文件(或目录)即可
Merged 文件a在服务器和本地均受控,本地做过修改且版本较老,执行svn更新时,使用服务器版本覆盖该文件能自动合并修改(注:本地修改与服务器修改不在同一地方)
Conflicted
1. 文件a受控,在本地有修改(mine);当其服务器版本(118)比本地(112)新,执行update不能被svn智能Merged处理时,则文件a的状态在本地则为Conflicted
a.txt
a.txt.mine
a.txt.r112
a.txt.r118
可以在update列表中,选中红色处于冲突状态的文件a,在弹出的右键菜单中进行冲突处理:

若已经关掉了update列表,可以在commit列表中按照上述方法进行冲突处理;
或者执行revert,将本地的修改直接丢弃掉,使用服务器的修改
Resolved conflicted解决后,状态会变成Resolved。
Tree conflict
1. 本地文件a原来受控,在本地有修改,当其被服务器删除,执行update时,则文件a的状态在本地则为Tree conflict
可以在commit列表执行revert,将其Text status由added(+),tree conflict变为non-versioned,tree conflict,然后执行delete,将本地文件a删除掉
2. 本地目录A原来受控,在本地目录A中的文件有修改,当其被服务器删除,执行update时,则目录A的状态在本地则为Tree conflict
可以在commit列表对A中的所有修改文件执行revert,然后对目录A执行Undo Add,最后将目录A删除掉
更多状态请参考:http://svnbook.red-bean.com/en/1.8/svn.ref.svn.c.status.html
== svn1.6.16 本地cache文件说明 ==
-- 以Weapon_SCAR_ClipIn.wav(音频二进制文件)和Weapon_SCAR_ClipIn.wav.meta(文本文件)文件为例
entries中文件信息块:

all-wcprops中的一个文件的信息块:

注:FF为换页符(16进制:0x0C),CR为回车符(16进制:0x0D),LF为换行符(16进制:0x0A)
prop-base目录 -- 二进制文件配置信息 如:Weapon_SCAR_ClipIn.wav.svn-base
text-base目录 -- 文件配置信息 如:Weapon_SCAR_ClipIn.wav.svn-base(其内容为二进制) Weapon_SCAR_ClipIn.wav.meta.svn-base(其内容为文本)
svn状态与常见错误的更多相关文章
- SVN中的常见错误(长期更新)
一 svn中的简写含义. A:add,新增 C:conflict,冲突 D:delete,删除 M:modify,本地已经修改 G:modify and merGed,本地文件修改并且和服务器的进行合 ...
- Elasticsearch 集群和索引健康状态及常见错误说明
之前在IDC机房线上环境部署了一套ELK日志集中分析系统, 这里简单总结下ELK中Elasticsearch健康状态相关问题, Elasticsearch的索引状态和集群状态传达着不同的意思. 一. ...
- Mac下SVN基本操作和常见错误
一.基本操作 1 从服务器上下载代码 svn checkout http://xxx.xxx.xxx/xxx 2 获取最新的代码 svn update 3 提交代码 svn commit -m ...
- SVN常见错误和版本冲突解决
之前在Eclipse下面误删除了svn的一些插件包,后来重装了就问题重重,在这里还是建议, Windows下SVN最好使用桌面版,在文件管理器下面更新和提交. 1.常见错误整理 #, c-format ...
- Ubuntu 搭建svn服务器 ,以及常见错误解决方案
一.安装命令: 1)以root身份登录.执行:sudo su -命令 2)执行安装命令:apt-get install subversion 二.创建项目目录 1)mkdir /home/svn ...
- svn常见错误总结
1. svn: Server sent unexpected return value (500 Internal Server Error) in response to OPTIONS reque ...
- File already exists: filesystem '/path/file', transaction svn常见错误解决方法
前言 多人任务基本都会用到SVN,于是提交的时候如果不先更新在提交或者操作顺序不对,会经常出现错误,其中File already exists: filesystem这个就是个常见问题,上网找了半天没 ...
- coreseek常见错误原因及解决方法
coreseek常见错误原因及解决方法 Coreseek 中文全文检索引擎 Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和 ...
- .Net常见错误
常见错误 #1: 把引用当做值来用,或者反过来 C++ 和其他很多语言的程序员,习惯了给变量赋值的时候,要么赋单纯的值,要么是现有对象的引用.然而,在C# 中,是值还是引用,是由写这个对象的程序员决定 ...
随机推荐
- sql server 性能调优之 当前用户请求分析 (1)
一. 概述 在生产数据库运行期间,有时我们需要查看当前用户会话状态或者是说数据库当前是否运行良好, 应用的场景比如:当运行的应用系统响应突然变慢时需要分析数据库的.或想分析当前的数据库是否繁忙,是否有 ...
- Python GUI之tkinter窗口视窗教程大集合(看这篇就够了)
一.前言 由于本篇文章较长,所以下面给出内容目录方便跳转阅读,当然也可以用博客页面最右侧的文章目录导航栏进行跳转查阅. 一.前言 二.Tkinter 是什么 三.Tkinter 控件详细介绍 1. T ...
- JavaEE 要懂的小事:三、图解Session(会话)
Writer :BYSocket(泥沙砖瓦浆木匠) 微 博:BYSocket 豆 瓣:BYSocket FaceBook:BYSocket Twitter ...
- [Be a Coding Plasterer] Components 1:get Basic Things
Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want. Written In The Font I a ...
- 《用OpenResty搭建高性能服务端》笔记
概要 <用OpenResty搭建高性能服务端>是OpenResty系列课程中的入门课程,主讲人:温铭老师.课程分为10个章节,侧重于OpenResty的基本概念和主要特点的介绍,包括它的指 ...
- python scrapy 爬取西刺代理ip(一基础篇)(ubuntu环境下) -赖大大
第一步:环境搭建 1.python2 或 python3 2.用pip安装下载scrapy框架 具体就自行百度了,主要内容不是在这. 第二步:创建scrapy(简单介绍) 1.Creating a p ...
- solr调用lucene底层实现倒排索引源码解析
1.什么是Lucene? 作为一个开放源代码项目,Lucene从问世之后,引发了开放源代码社群的巨大反响,程序员们不仅使用它构建具体的全文检索应用,而且将之集成到各种系统软件中去,以及构建Web应用, ...
- thinkphp自动填充分析
thinkphp有一个自动填充字段的方法填充规则如下 array( array(完成字段1,完成规则,[完成条件,附加规则]), array(完成字段2,完成规则,[完成条件,附加规则]), .... ...
- Python 的名称空间和作用域
最开始对名称空间的了解是在学习函数的时候,那时候知道了作用域的查找顺序,以及全局名称空间和局部名称空间,产生疑惑的时候为学递归的时候,那时候还没有名称空间这个概念,只知道递归有个最大深度,那时候以后递 ...
- RNN入门(三)利用LSTM生成旅游点评
介绍 前几天,某个公众号发文质疑马蜂窝网站,认为它搬运其它网站的旅游点评,对此,马蜂窝网站迅速地做出了回应.相信大多数关注时事的群众已经了解了整个事情的经过,在这里,我们且不论这件事的是是非非,也 ...