【转】SVN错误如何产生及解决方法专家剖析

来源:互联网 发布:ltda域名 编辑:程序博客网 时间:2024/05/22 09:49

原文:http://developer.51cto.com/art/201006/203185.htm

本节向大家简单描述一下SVN错误,在学习SVN的过程中如何避免SVN错误,SVN错误如何解决(locked conflict 文件不存在)这是大家最关心的问题,本节就和大家一起来学习一下,希望通过本节的介绍大家对SVN错误有深刻的理解。

这段时间做项目也学到了很多,尤其是关于SVN的。在使用SVN之前对于SVN的学习仅限于架服务器。对于学习中遇到的错误则都是通过一点一滴的经验得到的。
SVN错误记录

1.强制输入提交日志的钩子(hooks)程序(pre-commit)无法运行,提交的时候报错:
Error: Commit failed (details follow): Error: MERGE request failed on ‘/svn/ttt/trunk/engineering/doc/%E5%89%8D%E7%BD%AE%E6%9C%BA’ Error: Failed to start ‘/home/jira/repo/ttt/hooks/pre-commit’ hook

可能的原因:

(1).pre-commit的权限设置问题,确保具有运行权限,chmod a+x pre-commit;有些系统要求所有者为www-data:www-data,这点根据安装的svn而定

(2).系统的资源不足(主要是内存),重启apache服务,如果问题解决,一般是此原因。

2. Relocate can only change the repository part of an URL

如果服务器上的某个文件的位置有改动,如果我们想使用relocate将工作拷贝中的此目录的路径重定位的话,肯定会遇到这个错误的。但是如果使用 switch来改变路径,则不会遇见此错误。

原因(Switch & Relocate的区别)

Switch —–在版本库内改变与当前工作拷贝关联的服务器路径URL(只限于同一个Repository内),应用情景:有时,服务器的目录会有所变化,和你当前工作拷贝关联的服务器URL改变了,这种改变的直接结果是,你在工作拷贝中所做的修改不能提交到服务器,这时就需要Switch到正确的URL再提交。
Relocate—-功能和Switch雷同,差别在于,Relocate实现的是Repository和Repository之间的切换。当服务器地址或Repository名称发生变化时,可以用它来更新你的工作拷贝。
另外:relocate的功能与“svn switch –relocate 旧地址 新地址”相同。

3、最开始出现的SVN错误是locked,严格说,locked不是错误。解决比较简单:右击文件夹—>tortoiseàcleanup,一般情况下不会出错,如果遇到无法cleanup,那就是其他的错误或者冲突了。

4、再就是冲突,conflict。由于两个(或多个)人同时更改了一个文件。理论上专业一点的说法是:采用锁定-修改-解锁方案来进行版本控制。举个例子来讲Sally下载了版本A,此时,版本A此时就进行了锁定,然后Sally对A进行改动,成了A’,未提交;此时Herry再从服务器上下载的时候还是A。Herry也对A进行了改动,成了A’’。那么,Sally提交,版本A升到A’,Herry再提交的时候就会先提示文件过时,请先update。当update的时候提示冲突。
解决的方法也很简单:
在文件夹上右击—>tortoiseàresolveà在弹出的对话框中右击冲突的文件à选择resolve use theirs 或者选择 resolve use mine。此时,Sally和Herry的版本只能提交一份。也就是说只能使用版本A’和A’’ 其中之一。当然这实际上是人工解决的。SVN防止了无知覆盖错误的产生。

产生冲突并不是我们想要的,对于项目的开发也是不好的。所以要尽量避免SVN错误:

一、良好的工作分配是首要的。个人管个人的文件,不更改其他人的文件。

二、工作组安排好提交。

三、个人想要修改文件之前先update,然后再修改;修改完成后及时提交(commit)。

5、还会遇到***文件夹不存在的情况,有时候是组内成员将文件夹删除,这种问题一般不会在正规的开发中遇到。解决的办法就是先备份,然后重新checkout。本节关于SVN错误产生及解决介绍完毕。
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(390) | 评论(0) | 转发(0) |
0

上一篇:Hudson,Server certificate verification failed:

下一篇:【转】循环原子锁

相关热门文章
  • tar、tgz、gz批量解压方法...
  • 欢迎液晶显示专家在ChinaUnix...
  • 内网访问香港服务器慢——解决...
  • centos 7 安装 vmware worksta...
  • java.net.MalformedURLExcepti...
  • CU博客改版登录口说明...
  • 如何利用客户端在CU发博客...
  • CU博客改版反馈意见
  • 新版博文改进的一些功能...
  • ChinaUnix新博客正式上线,欢...
  • linux dhcp peizhi roc
  • 关于Unix文件的软链接
  • 求教这个命令什么意思,我是新...
  • sed -e "/grep/d" 是什么意思...
  • 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
原创粉丝点击