断断续续看过 试过好几次 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 了
好吧今天就记到这边,也算有点小收获 :-)
转载于:https://blog.51cto.com/vsfor/753949