svn: Can't find a temporary directory 問題解決

 

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命令都一切正常了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章