SVN提交不了代码Compression of svndiff data failed 怎么解决
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SVN提交不了代码Compression of svndiff data failed 怎么解决相关的知识,希望对你有一定的参考价值。
故障排查:在google中查找得知,有可能是版本库损坏导致
1.确定出现问题的版本号
在服务端使用svnadmin verify PATH,尝试校验版本库完整性。
当检测到2165版本号时,又出现Decompression of svndiff data failed: no size“错误信息,怀疑是2165版本号有问题
2.找到版本号所对应的日志
在svn项目对应的目录下,进入db/revprops/2目录,查看2165所对应的日志文件,日志文件是2165
3.查看日志
在日志中可以看到,在哪个时间,哪个账号提交了数据,同时可以看到提交时的描述信息,但没有记录具体提交了哪些内容
4.找到该账号所对应的用户,在该用户的本地拷贝中,查看2165版本号中所做的操作,原来是在某个目录下提交了图片文件,但在服务端的2165版本号中,用户提交的文件有损坏(之前硬盘出了故障,导致部分数据不完整),提交的日期是2011-10-10
5.在最新的版本号中,同样的目录中也发现了有几个损坏的文件,提交的日期是2011-10-10,可以确定是这些文件损坏导致的
解决方法:
在服务端将这些文件删除,在本地拷贝中,重新将文件提交到服务端,然后再次更新,故障消失 参考技术A 先add 然后将空文件夹提交 再 add+提交 文件夹下的文件 参考技术B SVN服务端的问题,把SVN服务重启后就OK.
SVN 快速入门
一、SVN 简介
(1) SVN 是 Subversion 的缩写,是一个开源的版本控制系统
(2) SVN 基于 C/S 架构,有一台中央服务器,多台客户端通过网络从中央服务器拉取或提交代码,以此达到多人协作开发
(3) SVN 是集中式的开源版本控制系统,集中式核心在于中央服务器,开发者需要先从服务器上拉取/提交代码,一旦离开了服务器,基本无法工作,这是缺点之一
(4) SVN 客户端需要通过网络从中央服务器拉取或提交代码,特别依赖网络,因此一旦网络出现问题,也就无法拉取或提交代码,这也是缺点之一
二、SVN 服务端安装
[[email protected] ~]$ yum install -y subversion # 安装SVN
[[email protected] ~]$ mkdir -p /data/svn # 我们使用/data/svn目录作为版本库,先创建该目录 [[email protected] ~]$ svnadmin create /data/svn # 创建版本库,使得客户端能够从这里拉取/提交代码
[[email protected] ~]$ ll /data/svn total 24 drwxr-xr-x 2 root root 4096 Jan 18 22:53 conf # SVN服务端配置文件目录 drwxr-sr-x 6 root root 4096 Jan 18 22:53 db # SVN版本数据存储目录 -r--r--r-- 1 root root 2 Jan 18 22:53 format # 存储一个整数的文件,此整数代表库层次结构版本 drwxr-xr-x 2 root root 4096 Jan 18 22:53 hooks # 存放版本库钩子的目录 drwxr-xr-x 2 root root 4096 Jan 18 22:53 locks # 存储库锁目录,用来跟踪库的访问者 -rw-r--r-- 1 root root 229 Jan 18 22:53 README.txt # 说明文件
[[email protected] ~]$ ll /data/svn/conf total 12 -rw-r--r-- 1 root root 1080 Jan 18 22:53 authz # SVN用户权限配置文件 -rw-r--r-- 1 root root 309 Jan 18 22:53 passwd # 密码文件,用于客户端登录服务端时的用户名密码验证 -rw-r--r-- 1 root root 3090 Jan 18 22:53 svnserve.conf # SVN版本库的配置文件
[[email protected] ~]$ vim /data/svn/conf/authz # 用户权限配置文件 [groups] db = user1, user2 # groups 用于定义用户组,把功能相同的用户分成一个组,以便管理 web = user3, user4 [/data/svn/] # 定义为哪个目录进行权限分配 user1 = rw # 可以对单个用户进行权限分配,rw表示可读可写 @web = rw # 可以对某个组的用户进行权限分配,写法是:@组名 * = r # 表示对剩下的所有用户进行权限分配
三、Linux 上使用 SVN
四、Windows 上使用 SVN
以上是关于SVN提交不了代码Compression of svndiff data failed 怎么解决的主要内容,如果未能解决你的问题,请参考以下文章