断断续续看过 试过好几次 svn 都是看一下就放掉了。今天重新开始看了,决定了解并慢慢使用 适应它。
由于实力有限,总想找一些傻瓜化的,简单又好用的工具来解除使用。好了 废话不多说,这边做一个简单的流水账。 首先下载了,uberSVN 目前还是测试版的。ubersvn.com注册成功后 获取了 key。于是首先在Windows下安装尝试了下(其官网有详细的使用说明文档,这边就不做具体说明了)。 结果在创建版本库的时候 提示js 类出错 Whoa! That wasn't supposed to happen! Sorry, it looks like uberSVN has encountered a problem, details of which can be found below. Please let us know if you believe this is a bug or an error on our part and we'll get straight down to fixing it. javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class org.tigris.subversion.javahl.SVNAdmin 网上搜索了下,没发现什么好的解决方案,也不知道怎么动手解决,于是放弃了。 重新下载了linux版本,开启虚拟机 然后安装。 安装的时候出现了 Not enough space left in /tmp (0 KB) to decompress ****************** (******** KB) Consider setting TMPDIR to a directory with more free space. 的错误提示,空间不足,但是要怎么修改TMPDIR呢,怎么查看其他的文件目录剩余空间呢。继续上网搜 $df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 3.8G 3.7G 0 100% / /dev/sda5 14G 1.3G 12G 10% /home /dev/sda1 46M 11M 33M 25% /boot tmpfs 506M 0 506M 0% /dev/shm 发现home 目录下剩余空间还很多,于是 修改TMPDIR export TMPDIR="/home/tmp" 当然首先对应的目录 要先建好 :-) 然后继续安装,并修改安装目录,统统放到home 目录下,因为它比较空 :-) 安装完成,对照说明文档 熟悉了一下控制台界面。 额 发现它原来只是一个基本的管理工具。 并不是我想象中的那样,管理的同时,可以在线编辑 更新 提交 文件 控制版本。。。。。。。。 额,但想的太完美了 往往都是不太现实的。 还好本地已经有装 svn了,于是尝试着将虚拟机里面刚建的一个版本库给导出到本地来, 不知道 是什么原因,中途有点小小的错误提示,不过还是在本地生成了 一个库。 新建几个目录,放几个新文件。ok。 测试更新 提交。 错误又来了 error: Can't find a temporary directory svn 还真不是那么好用 :-) 相对于小菜鸟来说。 继续上网查,有位老兄碰到过类似的问题,这边就直接先贴一下 他的(部分)原文机子上的SVN突然没有办法进行代码提交了,出现的错误提示信息为: Error:Can't find temporary directory:internal error 然后试了下其他的SVN源,发现均无法提交,并且update时也出现上面的错误信息。对比项目文件时出现"不能创建目录或文件" 公司网站首页正在改版,突然出现上面的问题,导致代码管理无法使用,此时是十分着急, 赶忙到google上去搜索,发现很多人出现了同样的问题,普遍的问题产生原因是:linux 下盘满,导致svn找不到临时目录存放文件所至. 然后我去装有SVN服务的LINUX机器上查看了一下磁盘空间:df -h /dev/mapper/VolGroup00-LogVol00 18G 6.3G 11G 38% / /dev/hda6 99M 12M 82M 13% /boot tmpfs 248M 0 248M 0% /dev/shm 很显然,磁盘空间还有很多剩余,并非磁盘空间不足导致的。 然后继续谷歌,但查找了很久始终没有找到有效的解决方法: 如:查看下 /var/tmp和/tmp的权限是否正确,使用chmod -R 1777 /var/tmp 和 chmod -R 1777 /tmp 修改目录权限。 检测过权限没有问题,并也试用过上面的命令,但均告无效。 也试了一些网上谈到的其他方法,不过都没有得到解决,问题依旧。 找网上查找无门后,自己开始寻求其他途径,我想可能有以下原因导致问题: 1、端口问题,端口可能被占用。 2、SVN客户端版本问题。 刚开始试了下方法:我把我的SSH服务的端口从2002(早期时期改了2002)改为了22,然后试了下SVN更新,竟然突然好了,可以使用了。 我很高兴,以为是端口问题,可我就是想不明白端口为何会导致这样。 但是,过了10分钟左右,我使用SVN进行提交,又出现了之前的那个错误提示。 这下真是郁闷了。我又试着改了SSH端口号,但这次我怎么改都没用了。 这个方法最终我宣告放弃了。 我开始尝试第二个方法,我检测到自己的客户端版本不是与SVN服务对应的版本,然后我下载了对应的版本,安装,然后重启机器。 然后再SVN提交,但问题依旧。 本想这下拿它没折了,但意外的发现,这次提交失败的错误信息更加详细了, Error:Can't find temporary directory Error: C:/Documents and Settings/Administrator/Local Settings/Temp/tmpxxxxx internal error 提示的"find temporary directory" 这里的临时目录文件指向的路径竟然是客户端机器的目录地址。 这就是关键! 我根据提示信息发现C:/Documents and Settings/Administrator/Local Settings/Temp/这个目录是存在的。 但是为何它提示不存在? 暂时想不明白,先不管了。 我发现那个目录下全是临时文件,目录大小有350多M。看着不顺眼,想把里面的文件全清楚了,我Ctrl+a 然后 Shift+Delete, 本以为一下就能全删除了。 结果却是:无响应,试了多次,都是无响应。 仔细一想,明白了,那个目录下的文件太多了,全是1K大小左右的文件,至少3-5万个。 然后就是慢慢的把这些文件删除咯,随后 问题都解决了。 尽管,我的问题只是其中的一个小小部分,不过他这个解决思路还是可以参考下的 哈哈。 因为刚刚已经处理过 tmp 目录的权限问题了,这步就不尝试了, 直接去看下 新的tmp 目录权限。 chmod 777 /home/tmp 修改后 重新更新 提交,ok 没问题了 也可以在uberSVN 中正常处理 Repositories 了 好吧今天就记到这边,也算有点小收获 :-)