SVN常见问题及解决方案
. 隐藏文件.svn目录删除了怎么办
Checkout后,工作空间下.svn目录下有大量隐藏文件,占用比较大的空间,他们是工作空间的管理文件,不能删除,如果不小心删除了也不要抓狂,不会影响服务器端的,重新checkout就又可以工作了。如果想不包含这些隐藏文件导出,可以用TSVN菜单里的export完成。 .文件名大小写问题,在下载代码时,下载到一半,系统提示不能找到……文件, 提示Can't copy"……"to"……"系统找不到指定文件
该问题很可能是因为上传了大小写不同的同名文件,在Repo-Browser里找到同名文件删除一个就好了。(该问题曾经困惑过好长时间,解决了是如此简单) .为什么我的配置库http://ip/svn无法访问,提示没有权限,但是通过http://ip/svn/myproject可以访问
在apache配置文件httpd.conf配置的只是个配置库仓库的虚拟目录,物理上是不存在,即使有所有配置库的权限也只能访问到具体的配置库一级 .在安装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就可以了 .can’t connect to host …………
,服务器有没有运行,有没有打开相应端口
如果服务器是svnserve,检查有没有运行svnserve,有没有打开3690端口
如果服务器是apache,检查apahce是否运行,是否打开80端口
检查时可以在服务器运行netstat -na看看相应端口是否在LISTEN
,防火墙有没有开放相应端口
,客户端是否可以连接服务器的相应端口
使用命令telnet 服务器IP 相应端口
如:telnet 192.168.0.1 .基于svnserve的subversion服务器在新配置权限后:svnserve.conf:: Option expected
该问题是因为subversion读取配置文件svnserve.conf时,无法识别有前置空格的配置文件,因此在配置文件里每行前面不能有空格
. 怎样才能把svn版本库中的某一个文件或目录永久的删除? [案例一]
例如:当前库的最新版本是46,我在第46个版本上,更加了一个5M的文件,名字为FY07 GDCC Training_Customer_Satisfaction_Survey v1. (Internal Trainer).rtf
现在我要把这个新增加的5M文件彻底的删除,不想让它存在库中占用空间
()用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 | -- :: + | lines
Changed paths:
A /docs/general/FY07 GDCC Training_Customer_Satisfaction_Survey v1. (Internal Trainer).rtf FY07 GDCC Training_Customer_Satisfaction_Survey v1. (Internal Trainer).rtf delete for ever
------------------------------------------------------------------------
()结果得到添加的路径为/docs/general/FY07 GDCC Training_Customer_Satisfaction_Survey v1. (Internal Trainer).rtf
()把整个库先lock住,防止在此过程中有人继续修改
当然如果不lock也是可以了,只不过当你把所有的内容导入到新库中之后,还要用dumpfilter把旧库中
新增部分也导入到新库中。为了避免不必要的麻烦,所以我们需要lock
()导出旧库中的所有版本
svnadmin dump C:/myhouse/external/SVNRepos/svn > svns.dmp
()对导出的旧库中的文件做过滤,剔除我们不用的那个文件的PATH
type svns.dmp | svndumpfilter exclude "docs/general/FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf" > filter.dmp
()重新创建一个新的库,版本最好和以前的相同。而且不要做任何的修改
svnadmin create C:/myhouse/external/SVNRepos/svndump
()把我们过滤后的那个导出文件,导入到新的库中
svnadmin load C:/myhouse/external/SVNRepos/svndump < filter.dmp
()检查新库中的文件和版本状态
[案例二]
当前库的最新版本是48,我在第46个版本上,更加了一个5M的文件,名字为FY07 GDCC Training_Customer_Satisfaction_Survey v1. (Internal Trainer).rtf
现在我要把在第46个版本上新增加的5M文件彻底的删除,不想让它存在库中占用空间
()用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 | -- :: + | lines
Changed paths:
A /docs/general/FY07 GDCC Training_Customer_Satisfaction_Survey v1. (Internal Trainer).rtf FY07 GDCC Training_Customer_Satisfaction_Survey v1. (Internal Trainer).rtf delete for ever
------------------------------------------------------------------------
()结果得到添加的路径为/docs/general/FY07 GDCC Training_Customer_Satisfaction_Survey v1. (Internal Trainer).rtf
()把整个库先lock住,防止在此过程中有人继续修改
()导出旧库中的所有版本
svnadmin dump C:/myhouse/external/SVNRepos/svn > svns2.dmp
()对导出的旧库中的文件做过滤,剔除我们不用的那个文件的PATH
type svns2.dmp | svndumpfilter exclude "docs/general/FY07 GDCC Training_Customer_Satisfaction_Survey v1.0 (Internal Trainer).rtf" > filter2.dmp
()重新创建一个新的库,版本最好和以前的相同。而且不要做任何的修改
svnadmin create C:/myhouse/external/SVNRepos/svndump2
()把我们过滤后的那个导出文件,导入到新的库中 导入过程中出现提示:
...
<<< Started new transaction, based on original revision ------- Committed revision >>> <<< Started new transaction, based on original revision
* editing path : src/build/build.xml ... done. ------- Committed revision >>> <<< Started new transaction, based on original revision
* editing path : src/build/scmbuild.xml ... done. ------- Committed revision >>>
显然46号版本已经保留了,但是我们要删除的那个文件也同样被删除了
()检查新库中的文件和版本状态
[案例三]
当前库的最新版本是60,我在第50个版本上,更加了一个5M的文件,名字为FY07 GDCC Training_Customer_Satisfaction_Survey v1. (Internal Trainer).rtf;
同时修改了10个源代码文件;删除了2个源代码文件
现在我要把在第46个版本上新增加的5M文件彻底的删除,不想让它存在库中占用空间
考虑一下,如果按照我们案例中提供的方法是否能够做到保留历史,而删除物理文件?
并说明理由?
[总结]
删除文件确实能够通过我们上述的提供的方法解决,但是我们也看到如果当库中的版本很多,容量很大的时候
每次当我们导出和导入的时候,花费的时间比较长,而且使用的空间也比较大。我们建议,
所有的导入和导出以及过滤的操作尽量在同一块磁盘或者扇区上执行,这样速度比较快;当然你要保证你的
扇区的容量能够容纳原来仓库至少2倍(~4倍)的大小(()原始的库,()导出的dump,()导出的filter dump,()导入的库)
当然你也可以copy到别的扇区,磁盘或者机器上运行,只要保证环境一致就可以 .svn-怎么把authz转换成UTF-8格式 用菜单转换功能转换先,
用unicode转换为utf-,然后再存盘
打开后再用utf-8转unicode(ASCII编辑)即可。 .如何从客户端修改用户密码
从客户端修改密码的工具见附件,apache方式 .提示: Method Not Allowed的原因和解决方法
用TortoiseSVN访问基于apache配置的svn版本库时,有时候会提示错误405 Method Not Allowed,开始用TSVN checkout了一个正常的目录,假设服务器地址为:http://svn/project1,之后,服务器经过其它配置,这个地址变了,使得用这个地址不再能访问到正确的版本库,此时,TSVN就极有可能报405错误。另外,当你访问的地址大小写与服务器的地址不一致时,也会出现该错误。只要将TSVN访问的地址改成正确的,或修改服务器配置,使原地址可以访问即可解决。 .执行Import操作,出错信息:Error: Can't create directory '/storage/yslProR/db/transactions/-.txn': Permission denied (来自网络)
方法:这跟linux用户访问目录的权限有关。
)、创建apache用户、组,useradd apache groupadd apache
)、将用户apache加入apache组 usermod -ggroup apache
)、修改apache的http.cont文件
找到 User daemon
Group daemon
改为 User apache
Group apache
)、修改只有apache用户对SVN库目录有操作权限。
chown -R apache /库路径
chmod /库路径
)、说明,如果你有apache的用户、组就不需要创建 .Error: Can't create directory '/svn/test/db/transactions/-.txn': Permission denied (来自网络) 方法:没有可写权限,chmod go+w transactions .commit failed(details follow):Can't open activity db: Permission denied (来自网络) 方法:修改仓库下面dav和db目录的写权限.. .如何提高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. 、建议可以勾选这个,让这些 Overlays Icon 只会在「资源管理器」里出现,当我们在用其他软件的「打开资源管理器」出现的那个窗口时,就不会显示这些 Overlays Icon,以降低系统负担。
、建议仅仅勾选 Drive Types 中的 Fixed drives,也就是说 Overlays Icon 只会在本地电脑的几个磁盘分区才会出现。
、將所有磁盘都列入 Exclude paths,让 TSVNCache.exe 预设不要搜索所有的磁盘,但记得要设定 C:/* 不要只输入 C:/ 喔。
4、最后將你的 Subversion 工作目录位置列入 Include paths 即可,像我习惯將所有工作目录全部放在一个集中的目录內方便管理,这里我就只需要将该目录列进去即可,记得最后也要填上 * 号才会包含该目录下所有目录与档案。
5、另外提醒一点,在你电脑中的 Subversion 工作目录数量是越少越好,沒用的本地copy请删掉,等要用的時候再 Checkout 出來,避免影响效率。
SVN常见问题及解决方案的更多相关文章
- [SVN]常见问题的解决方案
Date:2014-1-3 Summary: SVN使用的一些常见问题解决方案记录,来源Internet,本人亲测 Contents: 1.回滚自己的分支到某一个版本 $svn merge -r rH ...
- 《PDF.NE数据框架常见问题及解决方案-初》
<PDF.NE数据框架常见问题及解决方案-初> 1.新增数据库后,获取标识列的值: 解决方案: PDF.NET数据框架,已经为我们考略了很多,因为用PDF.NET进行数据的添加操作时 ...
- Svn常见问题及相关原因
1. svn: Server sent unexpected return value (500 Internal Server Error) in response to OPTIONS reque ...
- XHTML CSS 常见问题和解决方案
原文地址:XHTML CSS 常见问题和解决方案 作为前端开发人员,在日常的页面制作时,不可避免的会碰上这样那样的问题,我挑选了其中的一些进行总结归档,希望对大家会有所帮助: 1.如何定义高度很小的容 ...
- 自学华为IoT物联网_06 智慧家庭物联网常见问题及解决方案
点击返回自学华为IoT物流网 自学华为IoT物联网_06 智慧家庭物联网常见问题及解决方案 1. 家庭中遇到的问题 2.1 华为智慧家庭概念的发展历程 2.2 华为智慧家庭的解决方案架构 智慧家庭主要 ...
- 自学华为IoT物联网_05 能源工业物联网常见问题及解决方案
点击返回自学华为IoT物流网 自学华为IoT物联网_05 能源工业物联网常见问题及解决方案 1. 1 能源工业--油田业务面临的三大挑战 故障处理不及时: 部分油田开采难道大.机械故障较多.现场发生的 ...
- 自学华为IoT物联网_04 车联网常见问题及解决方案
点击返回自学华为IoT物流网 自学华为IoT物联网_04 车联网常见问题及解决方案 1.1 可以预见的车联网未来 车辆对车辆.车辆对道路.车辆对网络通信 车辆对外发送车辆状态信息 周边环境信息发送给车 ...
- 自学华为IoT物联网_03 公共事业物联网常见问题及解决方案
点击返回自学华为IoT物流网 自学华为IoT物联网_03 公共事业物联网常见问题及解决方案 本文从以下六项公共事业,看看物联网的解决方案: 停车问题 路灯管理问题 消防栓管理问题 井盖管理问题 水表管 ...
- ARKit从入门到精通(11)-ARKit开发常见问题及解决方案
转载请注明出处:ARKit从入门到精通(11)-ARKit开发常见问题及解决方案 本文主要介绍ARKit开发过程中一些常见问题 1.ARKit框架无法导入问题 2.ARKit运行黑屏或者白屏问题:Un ...
随机推荐
- Servlet的学习之Session(4)
在本篇中,我们来使用Session完成一个用户登录的案例,前提声明:这个案例主要用于学习Session技术,是属于比较简单的类型,以后会采用MVC模式来开发登录,那就会比较复杂. 现在大多数网站都提供 ...
- 【翻译】ASP.NET Web API是什么?
原文 [翻译]ASP.NET Web API是什么? 说明:随微软ASP.NET MVC 4一起发布的还有一个框架,叫做ASP.NET Web API.目前国内关注这项技术的人似乎还很少,这方面的文章 ...
- 四种方法解决DIV高度自适应问题
本文和大家重点讨论一下解决DIV高度自适应的方法,这里主要从四个方面来向大家介绍,相信通过本文学习你对DIV高度自适应问题会有更加深刻的认识. DIV高度自适应 关于DIV高度的自适应,一直是个让人头 ...
- oracle RAC搭建中的潜规则 该死的app
oracle RAC 安装目录必须是 ORACLE_BASE=/u01/app/grid ORACLE_HOME=/u01/app/11.2.0/grid 看着中间有个app,又没什么实际用处,就删掉 ...
- "Invalid username/password or database/scan listener not up"
文档 ID … 11.2 RAC DBconsole Creation Fails With Error: "Invalid username/password or ...
- Android应用开发学习笔记之ContentProvider
作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz ContentProvider用于为其它应用程序提供共享数据,它为不同应用程序间共享数据提供了统一的操作接口. 一. ...
- [Cocos2d-x]Cocos2d-x开发中C++调用Object-c
2013年12月29日 简介: Cocos2d-x开发过程中,难免需要通过C++调用Object-C
- java学习笔记11--Annotation
java学习笔记11--Annotation Annotation:在JDK1.5之后增加的一个新特性,这种特性被称为元数据特性,在JDK1.5之后称为注释,即:使用注释的方式加入一些程序的信息. j ...
- 猎豹移动(金山网络)2015校园招聘(c++project师)
1.已知类MyString的原型为: class MyString { public: MyString(const char *str=NULL);//普通构造函数 MyString(const M ...
- hdoj 1258 SUM IT UP
程序的思想是:输入数据是,先使用快排对其从大到小进行排序,然后记录相同数据的个数,比如4 3 3 2 2 1 1,最后的数据变成4 3 2 1 ,并且同时数据的个数f[]变成1 2 2 2 然后就是遍 ...