`

SVN常见问题及解决方案

    博客分类:
  • SVN
 
阅读更多
1. 隐藏文件.svn目录删除了怎么办
Checkout后,工作空间下.svn目录下有大量隐藏文件,占用比较大的空间,他们是工作空间的管理文件,不能删除,如果不小心删除了也不要抓狂,不会影响服务器端的,重新checkout就又可以工作了。如果想不包含这些隐藏文件导出,可以用TSVN菜单里的export完成。
 
 
2.文件名大小写问题,在下载代码时,下载到一半,系统提示不能找到……文件, 提示Can't copy"……"to"……"系统找不到指定文件
该问题很可能是因为上传了大小写不同的同名文件,在Repo-Browser里找到同名文件删除一个就好了。(该问题曾经困惑过好长时间,解决了是如此简单)
 
 
3.为什么我的配置库http://ip/svn无法访问,提示没有权限,但是通过http://ip/svn/myproject可以访问
在apache配置文件httpd.conf配置的只是个配置库仓库的虚拟目录,物理上是不存在,即使有所有配置库的权限也只能访问到具体的配置库一级
 
 
4.在安装svn的机器上可以进行commit操作,但是通过其他机器commit出错
在安装svn的机器上可以进行commit操作,但是通过其他机器commit出现如下错误,appach的权限文件没有问题
错误信息如下
Error  Commit failed(details follow)
Error MKACTIVITY of '/svn/test/!svn/act/739fe0d1-58f7-be4a-915b-a:03 Forbidden (http://192.168.0.1) '
 
通过多次尝试,终于找到原因了。发现原来是域名写错了。
受下面的配置影响:
在Httpd.conf文件添加:
#SSPI authentication
<Location /repository>
              DAV svn
              SVNParentPath d:/repository
              AuthzSVNAccessFile e:/repository/accessfile               
              Require valid-user
              AuthType SSPI
           AuthName "Subversion repositories"
                     # SSPI settings
               SSPIAuth On
               SSPIAuthoritative On
               # point to domaincontroller
               SSPIDomain domain.com.cn
              SSPIOfferBasic On
</Location>
 
SSIDomain中的domain写的是全部的域名,我们公司的域名是domain.cn.把它修改成domain,然后重新启动appache就可以了
 
 
 
5.can’t connect to host …………
1,服务器有没有运行,有没有打开相应端口
如果服务器是svnserve,检查有没有运行svnserve,有没有打开3690端口
如果服务器是apache,检查apahce是否运行,是否打开80端口
检查时可以在服务器运行netstat -na看看相应端口是否在LISTEN
2,防火墙有没有开放相应端口
3,客户端是否可以连接服务器的相应端口
使用命令telnet 服务器IP 相应端口
如:telnet 192.168.0.1 3690
 
 
6.基于svnserve的subversion服务器在新配置权限后:svnserve.conf:12: Option expected
该问题是因为subversion读取配置文件svnserve.conf时,无法识别有前置空格的配置文件,因此在配置文件里每行前面不能有空格
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 Training_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_Satisfaction_Survey v1.0 (Internal Trainer).rtf" > filter2.dmp
(6)重新创建一个新的库,版本最好和以前的相同。而且不要做任何的修改
svnadmin create C:/myhouse/external/SVNRepos/svndump2
(7)把我们过滤后的那个导出文件,导入到新的库中
 
导入过程中出现提示:
...
<<< Started new transaction, based on original revision 46
 
------- Committed revision 46 >>>
 
<<< Started new transaction, based on original revision 47
     * editing path : src/build/build.xml ... done.
 
------- Committed revision 47 >>>
 
<<< Started new transaction, based on original revision 48
     * editing path : src/build/scmbuild.xml ... done.
 
------- Committed revision 48 >>>
显然46号版本已经保留了,但是我们要删除的那个文件也同样被删除了
(8)检查新库中的文件和版本状态
[案例三]
当前库的最新版本是60,我在第50个版本上,更加了一个5M的文件,名字为FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf;
同时修改了10个源代码文件;删除了2个源代码文件
现在我要把在第46个版本上新增加的5M文件彻底的删除,不想让它存在库中占用空间
考虑一下,如果按照我们案例中提供的方法是否能够做到保留历史,而删除物理文件?
并说明理由?
[总结]
删除文件确实能够通过我们上述的提供的方法解决,但是我们也看到如果当库中的版本很多,容量很大的时候
每次当我们导出和导入的时候,花费的时间比较长,而且使用的空间也比较大。我们建议,
所有的导入和导出以及过滤的操作尽量在同一块磁盘或者扇区上执行,这样速度比较快;当然你要保证你的
扇区的容量能够容纳原来仓库至少2倍(2~4倍)的大小((1)原始的库,(2)导出的dump,(3)导出的filter dump,(4)导入的库)
当然你也可以copy到别的扇区,磁盘或者机器上运行,只要保证环境一致就可以
 
 
 
8.svn-怎么把authz转换成UTF-8格式
 
用菜单转换功能转换先,
用unicode转换为utf-8,然后再存盘
打开后再用utf-8转unicode(ASCII编辑)即可。
 
 
 
 
9.如何从客户端修改用户密码
从客户端修改密码的工具见附件,apache方式
 
 
10.提示:405 Method Not Allowed的原因和解决方法
用TortoiseSVN访问基于apache配置的svn版本库时,有时候会提示错误405 Method Not Allowed,开始用TSVN checkout了一个正常的目录,假设服务器地址为:http://svn/project1,之后,服务器经过其它配置,这个地址变了,使得用这个地址不再能访问到正确的版本库,此时,TSVN就极有可能报405错误。另外,当你访问的地址大小写与服务器的地址不一致时,也会出现该错误。只要将TSVN访问的地址改成正确的,或修改服务器配置,使原地址可以访问即可解决。
 
 
11.执行Import操作,出错信息:Error: Can't create directory '/storage/yslProR/db/transactions/0-1.txn': Permission denied (来自网络)
方法:这跟linux用户访问目录的权限有关。
1)、创建apache用户、组,useradd apache groupadd apache
2)、将用户apache加入apache组 usermod -ggroup apache
3)、修改apache的http.cont文件
找到 User daemon
Group daemon
改为 User apache
Group apache
4)、修改只有apache用户对SVN库目录有操作权限。
chown -R apache /库路径
chmod 700 /库路径
5)、说明,如果你有apache的用户、组就不需要创建
 
12.Error: Can't create directory '/svn/test/db/transactions/1-1.txn': Permission denied (来自网络)
 
方法:没有可写权限,chmod go+w transactions
 
13.commit failed(details follow):Can't open activity db: Permission denied (来自网络)
 
方法:修改仓库下面dav和db目录的写权限..
 
14.如何提高TSVN的效率
 
如何提升 TortoiseSVN 的使用效率
看到这篇文章,觉得不错,推荐给大家,原文是繁体,翻译了一下
TortoiseSVN 安裝好了之后会有個 TSVNCache.exe 程序不断在后台执行,对电脑中所有 Subversion 工作目录(Working Copy)的状态缓存(Status Cache),最主要的目的是让你在执行 svn commit 或 svn update 的时候可以更迅速的进行。
 
不过当你的 TortoiseSVN 沒有特別调整过的話,这个 TSVNCache.exe 程序就会一直不断的扫描你所有磁盘中所有的目录看有沒有 _svn 或 .svn 目目录,然后再进行档案比对,看有沒有档案有异常,如果你电脑的档案目录过多或工作目录过多的話,很有可能会让 TSVNCache.exe占去你不少 CPU 资源,以及不断的耗用磁盘 I/O,导致电脑速度变慢!
以下是我的摘要說明,我是用 TortoiseSVN 1.5.0
 
 
1、建议可以勾选这个,让这些 Overlays Icon 只会在「资源管理器」里出现,当我们在用其他软件的「打开资源管理器」出现的那个窗口时,就不会显示这些 Overlays Icon,以降低系统负担。
2、建议仅仅勾选 Drive Types 中的 Fixed drives,也就是说 Overlays Icon 只会在本地电脑的几个磁盘分区才会出现。
3、將所有磁盘都列入 Exclude paths,让 TSVNCache.exe 预设不要搜索所有的磁盘,但记得要设定 C:/* 不要只输入 C:/ 喔。
4、最后將你的 Subversion 工作目录位置列入 Include paths 即可,像我习惯將所有工作目录全部放在一个集中的目录內方便管理,这里我就只需要将该目录列进去即可,记得最后也要填上 * 号才会包含该目录下所有目录与档案。
5、另外提醒一点,在你电脑中的 Subversion 工作目录数量是越少越好,沒用的本地copy请删掉,等要用的時候再 Checkout 出來,避免影响效率。

 

分享到:
评论

相关推荐

    svn常见问题及解决

    Subversion(SVN)是一种版本控制系统,用于...以上是SVN使用中的一些常见问题及解决方案,通过理解这些基本问题,可以更好地管理和协作开发项目。在实际工作中,遇到问题时,应参考SVN文档或在线资源以获取更多帮助。

    SVN 常见错误及解决方案汇总帖

    ### SVN(Subversion)常见错误及解决方案汇总 #### SVN服务配置错误:`svnserve.conf:12: Option expected` 在管理Subversion服务器时,你可能会遇到`svnserve.conf:12: Option expected`这样的错误信息。这通常...

    SVN常见的错误及解决方法

    以下是一些常见的SVN错误及其解决方法: 1. **错误信息:Server sent unexpected return value (500 Internal Server Error)** 这个错误通常是由于输入的用户名错误导致的。解决方法是检查并确保使用正确的用户名...

    浅析SVN常见问题及解决方法

    本文将深入探讨SVN在使用过程中遇到的一些常见问题以及对应的解决策略。 1. **黄色感叹号(有冲突)**: 当出现黄色感叹号时,意味着在你对文件进行修改的同时,其他人也进行了修改,并且他们的修改已被提交到仓库...

    SVN Cleanup 失败 解决方法

    因此,本文将详细介绍 SVN Cleanup 失败解决方法,解决 SVN Cleanup 失败问题,确保项目管理的顺畅运行。 SVN Cleanup 失败的原因 --------------------- 在 SVN 中,Cleanup 是一个重要的操作,用于清除无用的...

    Svn使用方法和问题的解决方案

    【Svn使用方法和问题的解决方案】 Svn,全称Subversion,是一种广泛使用的版本控制系统,用于管理和跟踪项目源代码的变化。它允许开发者在多个人协作的环境中进行代码的版本控制,确保团队成员的工作同步,并能追溯...

    SVN冲突解决方案.docx

    三、常见冲突解决方法 1. 文件替换 如果两个用户同时修改同一个文件,可以使用文件替换来解决冲突问题。具体步骤如下: * 两个用户分别将修改后的文件上传到SVN服务器。 * SVN服务器将自动合并两个文件,生成一个...

    SVN常见问题

    下面详细阐述这些常见问题及其解决方法。 1. SVN图标不显示问题 在使用TortoiseSVN时,有时候可能会发现检出后的文件或目录没有显示SVN图标,这是由于SVN状态信息没有被正确读取导致的。可以尝试对“检出目录”执行...

    svn可能碰到的问题20181151

    SVN常见问题解决方案 SVN(Subversion)是一种版本控制系统,广泛应用于软件开发、文档管理等领域。然而,在使用SVN时,用户可能会遇到一些问题,本文将详细介绍这些问题的解决方案。 问题一:更新冲突 在使用SVN...

    CVS团队升级SVN团队的解决方案

    ### CVS团队升级SVN团队的解决方案 #### 一、引言与背景介绍 随着软件开发技术的不断进步和发展,版本控制系统也在不断迭代更新。CVS(Concurrent Versions System)作为早期广泛使用的开源版本控制系统之一,虽然...

    SVN各种错误提示产生原因及处理方法大全

    本文将对 SVN 中常见的错误提示进行分析,并提供相应的解决方法。 1. svn: Server sent unexpected return value (500 Internal Server Error) in response to OPTIONS request for '...

    获取svn最新版本号示例 以及svn常用命令

    首先,获取svn的最新版本号通常是为了确保你正在使用的代码是最新的,避免因版本过旧而遇到已解决的问题或错过新功能。有几种方法可以获取: 1. **通过svn命令行**:在命令行中,你可以输入`svn info URL`,这里的...

    SVN常用功能详细说明

    #### 五、常见问题及解决方案 ##### 5.1 You must input the log message. - **产生原因**:提交时忘记填写提交说明。 - **解决方法**:在提交对话框中填写适当的提交说明。 ##### 5.2 Access denied. - **产生...

    64位svn(服务+客户端+安装中所有问题解决方案)

    在这个解决方案中,我们将深入探讨如何解决在安装和使用64位SVN过程中遇到的常见问题。 首先,关于"svn安装后中文包无效"的问题,这通常是因为安装时没有正确选择或应用中文语言包。为了解决这个问题,你需要在安装...

    svn问题解决

    本文将针对“svn问题解决”这一主题,详细讲解如何处理在提交代码时遇到的一些常见问题。 问题1:冲突与合并问题 当你和团队成员修改了同一份文件的相同部分,SVN在你尝试更新或提交时会检测到冲突。此时,文件通常...

    svn星号不显示问题解决

    ### SVN 星号不显示问题解决 在使用 Subversion (SVN) 进行版本控制时,用户可能会遇到一个常见的问题:SVN的状态图标(如星号)未能正常显示在文件或目录旁边。...希望以上解决方案能够帮助你解决 SVN 图标显示问题。

    SVN常用操作----查看代码提交以及改动记录方法

    **SVN常用操作——查看代码提交及改动记录方法** 在软件开发过程中,版本控制系统如Subversion(SVN)是团队协作的重要工具。它允许开发者跟踪和管理代码的修改历史,以便于协同工作、回溯错误并理解代码的发展过程...

    解决svn清理乱码工具

    标题“解决svn清理乱码工具”暗示了这是一个专门针对SVN乱码问题的解决方案。通常,乱码问题源于文件的字符编码不匹配,例如本地编辑器与SVN服务器之间使用的编码不同,或者文件本身包含了非标准字符。解决这个问题...

    常见SVN错误处理大串讲

    ### 常见SVN错误处理详解 #### 引言 在进行软件开发的过程中,版本控制系统...面对SVN中的各种问题,保持耐心,逐一排查,通常都能找到合适的解决方案。对于更复杂的错误,建议查阅官方文档或寻求专业人士的帮助。

Global site tag (gtag.js) - Google Analytics