用SVN管理代码出现的一些问题
问题1:SVN:This client is too old to work with working copy 错误
用TortoiseSVN上传代码后,用eclipse迁出时提示"The client is too old to work"错误。
查看TortoiseSVN的版本为:
TortoiseSVN 1.7.2, Build 22327 - 32 Bit , 2011/11/29 22:43:53
Subversion1.7.2,
apr1.4.5
apr-utils1.3.12
neon0.29.6
OpenSSL1.0.0e6Sep2011
zlib 1.2.5安装的eclipse插件subeclipse的版本为1.6.x。在网上搜索得知,两者版本不匹配会出现上面的错误。官网上注明(NOTICE部分)了,但是我没注意看。
Subclipse 1.4.x includes and requires Subversion 1.5.x client features and working copy format.
Subclipse 1.6.x includes and requires Subversion 1.6.x client features and working copy format.
Subclipse 1.8.x includes and requires Subversion 1.7.x client features and working copy format。
所以解决办法是安装匹配版本,本例中,我应该安装Subeclipse 1.8.x。
问题2:Incompatible JavaHL library loaded. 1.7.x or later required.
如果出现“JavaHL”错误时,注意检查是否安装好了JavaHL。wiki地址为:http://subclipse.tigris.org/wiki/JavaHL#head-3aade2af9917e233083d3a19446311d48c6f4ff7 。windows下和linux下处理方式有些不一样。
问题3:安装上面的操作依然不可以checkout!
很无奈,太折腾了。现在弄清楚原因了。
原因如下:
我宿舍一台windows电脑,安装的是subversion1.7+subeclipse1.8.x;实验室的电脑是ubuntu,安装的是subversion1.6+subeclipse1.8.x。
我没想到的是ubuntu更新后安装的也还是svn1.6,通过svn --verison可以查看。问题就出在这里!我一直以为ubuntu里装的是最新版。更要命的是,如果你用svn1.7建的仓库,并上传了代码,那么用svn1.6是无法下载下来的!所以解决办法如下:
用svn1.6建仓库!windows上用svn1.7也可以checkout!
windows下配置为:subversion1.7+subeclipse1.8.x
ubuntu下配置为:subversion1.6+subeclipse1.6.x 【用低版本的建仓库,第一次传代码】
附录:如何将现有代码变为仓库?
1、在google code申请一个帐号,完成后会得到一个svn的地址。此外,密码是随机生成的,需要翻&*&墙得到。
2、进入工程文件夹,用RabbitSvn或者TortoiseSvn的commit(提交)命令将该文件夹提交上去。注意:此时代码并未上传,仅仅在文件夹下生成了一个.svn的文件夹,表示这个目录下有新的文件处于添加状态(刷新后显示"+"号)。
3、在eclipse中已经安装好subeclipse插件,刷新工程文件,会看到所有文件显示+号。
4、右键工程->Team->commit(提交),选择要上传的代码即可!
问题4:Commit后提示以下错误,无法提交成功!
命令行下,提示 "svn: Commit failed (details follow): svn: '/***/xxx.c' is scheduled for addition, but is missing"
用RabbitSVN,图形界面下提示"/xxx/xxx.cisnotaworkingcopy"
原因:之前用SVN提交过的文件,被标记为"add"状态,等待被加入到仓库。若此时你把这个文件删除了,SVN提交的时候还是会尝试提交这个文件,虽然它的状态已经是 "missing"了。
解决:在命令行下用 "svn revert xxx.c",在图形界面下,右键--Revert,选中那个文件。这样就告诉SVN把这个文件退回到之前的状态 "unversioned",也就是不对这个文件做任何修改
相关推荐
pub_svnserve.conf的 pub_authz.conf的配置文件有非法字符的原因引起,需要查找pub_authz.conf提的非法内容比如多余的空格删除或直接将pub_authz.conf