当前位置: > Linux服务器 > SVN >

SVN使用笔记

时间:2014-11-27 14:29来源:linux.it.net.cn 作者:IT

收集一些遇到的问题

1)commit 时出错

apache服务器,sh_team为根目录,下建了一个project仓库,能够checkout,设了用户权限,权限在根目录下时能够commit,设在具体目标文件夹下commit时提示出错比如修改一个文件后,commit 时
Error: Commit failed (details follow):   Error: CHECKOUT of '/sh_team/project/!svn/ver/8/%E9%93%B6%E8%81%94/%E7%A6%8F%E5%BB%BA%E9%93%B6%E8%81%94/test.txt': 403 Forbidden (http://192.168.0.12)  
 
后经测试访问中文目录时发生以上问题,访问英文目录时正常。应该是SVN对中文目录的支持不好造成的。
 
 

2)

浏览器中访问http://localhost/svn/test出现访问的网页不存在
apache error.log中显示
File does not exist: C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/svn
后来把httpd.conf中的配置设置为最初
<Location /svn>
DAV svn
SVNParentPath D:/SVN
</Location>
重装了Subversion
 
 
 
 
 
 
 

3)关于svn对中文目录的支持

应该如果不是svn数据库名用中文,下面的文件用中文没有关系。

 

4)如何恢复SVN备份的文件

我的库在E:/svn/project下,用svnadmin hotcopy e:/svn/project d:/bak 后重装了SVN,如何恢复备份的文件再到e:/svn/project中呢?

直接复制到那个目录

 

5)

遇到svn服务器本机可以访问,http://192.168.0.12/sh_team/project 但客户端访问非常慢(网页和乌龟),有时还无法访问,想到服务器重新装过了系统,可能是windows自带防火墙的关系,关掉之后可以访问了。

 

6)SVN权限继承关系

1、父目录设置权限,子目录未设置,则子目录继承父目录权限;

2、父目录设置rw,子目录设置r,则子目录实际为r权限;

3、父目录设置r,子目录设置rw,则子目录实际为rw权限;

4、父目录设置了权限,子目录设置空权限(等号后面什么也不写),则子目录无读取权限;

5、同一目录在配置文件中先后多行设置权限,以最后一行为准;

 

7)

不知道svn能不能能不能备份一个区间段的版本?比如我想备份version-15至version-30之间的配置库内容,谢谢!如果可以恢复的时候应该怎么恢复?

导出   svnadmin dump path(路径)/ --revision 15:30 > stn.r15-30.dump

导入   svnadmin load path(路径)/ (--parent-dir fload 这个参数看你是否要指定路径) < stn.r15-30.dump

 

8)

发现SVN的权限控制只有根目录有用,下面子目录设的权限都没有用。

后来原来是SVN库里有很多中文的文件路径,发现是SVN对中文路径的支持不好。要将配置文件转换成 UTF-8文件不包含 BOM 。新版本 UltraEdit 提供了选项,允许用户选择是否需要 BOM,而老版本的不会添加 BOM。每次修改后都要用UE保存一下才行。

 

9)

解决Apache日志文件ACCESS.LOG日益膨胀的一个办法:

将httpd.conf中CustomLog logs/access.log common 改成

CustomLog "|c:/apache/bin/rotatelogs c:/apache/logs/%Y_%m_%d.access.log 86400 480" common

重启Apache

其中c:/apache/是你安装apache的路径

这样每一天生成一个日志文件

rotatelogs.exe 就是apache提供用来做多日志文件的处理程序,从上面配置来看,apache实际上是通过“管道”(由命令前的竖线|判断)将要输出的日志信息传给rotatelogs.exe程序,由该程序负责日志的分割。

 

10)

如何设置文件保存的时间=Commit时间?

如何设置文件保存的时间=Commit时间? TSVN->settings->General选择"set filedates to the' last commit_time'

set filedates to the' last commit_time'只是让tortoisesvn在update或checkout时,将文件的时间设置为它最后一次提交时的时间,不然就设置为当前系统时间

(责任编辑:IT)
------分隔线----------------------------