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万个。 我不知道windows一个目录下有3-5个文件会导致什么结果,但有一定我很清楚,会让机子很慢,常导致"无响应"。我推测有可能是这个目录下临时文件的个数太多了,导致SVN在此目录下创建临时文件失败。 然后我就一小部分一小部分的对目录里的文件进行删除(一次删2-3千个文件响应起来还是很快的),删了20多次,最终清理得只剩几个删不掉的文件了(正在使用的)。然后我再使用SVN的Commit进行文件提交,正如我所料,OK了。再试了其他的SVN命令都一切正常了。