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 怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

windows 中svn a文件提交不了怎么解决

Svn 的版本冲突cleanup 解决不了

svn修改文件夹及文件名称后提交不了

SVN

IntelliJ IDEA提交项目到svn,步骤如下:

svn: resource out of date; try updating的解决