subversion(SVN)常见问题及其解决方法
1. 隐藏文件.svn目录删除了怎么办
Checkout后,工作空间下.svn目录下有大量隐藏文件,占用比较大的空间,他们是工作空间的管理文件,不能删除,如果不小心删除了也不要抓狂,不会影响服务器端的,重新checkout就又可以工作了。如果想不包含这些隐藏文件导出,可以用TSVN菜单里的export完成。
2.文件名大小写问题,在下载代码时,下载到一半,系统提示不能到……文件, 提示Can't copy"……"to"……"系统不到指定文件
该问题很可能是因为上传了大小写不同的同名文件,在Repo-Browser里到同名文件删除一个就好了。(该问题曾经困惑过好长时间,解决了是如此简单)
3. .can’t connect to host …………
1),服务器有没有运行,有没有打开相应端口
如果服务器是svnserve,检查有没有运行svnserve,有没有打开3690端口(我们用的是这个,
端口是9999
如果服务器是apache,检查apahce是否运行,是否打开80端口
检查时可以在服务器运行netstat -na看看相应端口是否在LISTEN
2),防火墙有没有开放相应端口
3),客户端是否可以连接服务器的相应端口
使用命令telnet 服务器IP 相应端口
如:telnet 192.168.0.1 9999
4. 路径或权限不足时将出现错误信息提示:
  localhost (路径不对)
  Error * PROPFIND request failed on '/' PROPFIND of '/': 200 OK (localhost)
  localhost/svn (权限不足)
  Error * PROPFIND request failed on '/svn' PROPFIND of '/svn': 403 Forbidden (localhost)
repository文件夹可以删除吗
  localhost/svn/repos (正常显示)
  localhost/repos (权限不允许)
  Error * PROPFIND request failed on '/repos' PROPFIND of '/repos': 405 Method Not Allowed (localhost)
解决办法是填写正确的路径或给予适当的权限。
5、不启动E:\subversion\ ,但启动了ApacheSVN ,访问(tortoiseSVN –> Repo – browser)或提交(SVN Commit)情形如下:
  现象:svn://localhost/svn/repos 不能访问或提交,提示:Error * Can't connect to host 'localhost': 由于目标机器积极拒绝,无法连接。 file:///e:/svn/repos localhost/svn/repos 可以访问或提交。
  原因:svn:// 是独立服务器 svnserver 自己的协议。file:/// 是本地访问,即服务器端和客户端在一个机器上。
  解决方法:使用 http 方式访问。(咱启动用的是svnserve
6. 提示:405 Method Not Allowed的原因和解决方法
TortoiseSVN访问基于apache配置的svn版本库时,有时候会提示错误405 Method Not Allowed,开始用TSVN checkout了一个正常的目录,假设服务器地址为:svn/project1,之后,服务器经过其它配置,这个地址变了,使得用这个地址不再能访问到正确的版本库,此时,TSVN就极有可能报405错误。另外,当你访问的地址大小写与服务器的地址不一致时,也会出现该错误。只要将TSVN访问的地址改成正确的,或修改服务器配置,使原地址可以访问即可解决。
7.怎样才能把svn版本库中的某一个文件或目录永久的删除?
 
[案例一]
例如:当前库的最新版本是46,我在第46个版本上,更加了一个5M的文件,名字为FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf
现在我要把这个新增加的5M文件彻底的删除,不想让它存在库中占用空间
(1)svn log -v命令查看添加文件时的Path。或者使用tortoisesvn之类的客户端工具查看也可以
C:/myhouse/SCM_Home/SVN_HOME/localtest/docs/general>svn log -v "FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf"
------------------------------------------------------------------------
r46 | zhangjia | 2007-09-23 10:40:34 +0800 | 3 lines
Changed paths:
  A /docs/general/FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf
 
FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf
 
delete for ever
------------------------------------------------------------------------
(2)结果得到添加的路径为/docs/general/FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf
(3)把整个库先lock住,防止在此过程中有人继续修改
当然如果不lock也是可以了,只不过当你把所有的内容导入到新库中之后,还要用dumpfilter把旧库中新增部分也导入到新库中。为了避免不必要的麻烦,所以我们需要lock
(4)导出旧库中的所有版本
svnadmin dump C:/myhouse/external/SVNRepos/svn > svns.dmp
(5)对导出的旧库中的文件做过滤,剔除我们不用的那个文件的PATH
type svns.dmp | svndumpfilter exclude "docs/general/FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf" > filter.dmp
(6)重新创建一个新的库,版本最好和以前的相同。而且不要做任何的修改
svnadmin create C:/myhouse/external/SVNRepos/svndump
(7)把我们过滤后的那个导出文件,导入到新的库中
svnadmin load C:/myhouse/external/SVNRepos/svndump < filter.dmp
(8)检查新库中的文件和版本状态
[案例二]
当前库的最新版本是48,我在第46个版本上,更加了一个5M的文件,名字为FY07 GDCC Tr
aining_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf
现在我要把在第46个版本上新增加的5M文件彻底的删除,不想让它存在库中占用空间
(1)svn log -v命令查看添加文件时的Path。或者使用tortoisesvn之类的客户端工具查看也可以
C:/myhouse/SCM_Home/SVN_HOME/localtest/docs/general>svn log -v "FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf"
------------------------------------------------------------------------
r46 | zhangjia | 2007-09-23 10:40:34 +0800 | 3 lines
Changed paths:
  A /docs/general/FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf
 
FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf
 
delete for ever
------------------------------------------------------------------------
(2)结果得到添加的路径为/docs/general/FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf
(3)把整个库先lock住,防止在此过程中有人继续修改
(4)导出旧库中的所有版本
svnadmin dump C:/myhouse/external/SVNRepos/svn > svns2.dmp
(5)对导出的旧库中的文件做过滤,剔除我们不用的那个文件的PATH
type svns2.dmp | svndumpfilter exclude "docs/general/FY07 GDCC Training_Customer_Sa
tisfaction_Survey v1.0 (Internal Trainer).rtf" > filter2.dmp
(6)重新创建一个新的库,版本最好和以前的相同。而且不要做任何的修改

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。