Windows下升级SVN后,在Ubuntu下执行svn命令报错,如下:
svn: E155021: This client is too old to work with the working copy at
'/home/hwruanjian/WorkArea/android_mtk_jb_6589/android_mtk_jb_6589' (format 31).You need to get a newer Subversion client. For more details, see
http://subversion.apache.org/faq.html#working-copy-format-change
原因:
由于svn工作拷贝目录下都有个.svn目录,里面保存着svn需要的一些版本信息等,当客户端软件升级后,里面的信息也相应增加以支持更多的特性。比如如果你在终端下用1.4版本的svn客户端co了一份代码,然后到windows下用更高级的tortoiseSVN去操作,会在.svn里增加一些文件。那么以后你再想回到1.4版本去工作,就会有兼容性错误,因为老的客户端(如:subclipse 1.0.6)无法识别那些,所以会报错:"svn: This client is too old to work with working copy '.'; please get a newer Subversion client".
解决方法:
官方解决办法:
http://subversion.tigris.org/faq.html#working-copy-format-change
http://svn.collab.net/repos/svn/trunk/tools/client-side/change-svn-wc-format.py
一、先安装python
1)到http://code.google.com/p/smallfish/ 下载2.6版
注意:从目前来看,最好使用Python 2.6,如果是用最新的3.0版本会出现问题。 比如无法打开Script,出现异常等等
2)切换到Python的文件目录下执行:
1../configure
2.make
3.make test
4.sudo make install
在这里可能会遇到几个问题,第一个是在./configure时,可能会出现C compiler cannot create executables,对于这个问题的解决,可以使用sudo apt-get install build-essential命令来解决。
还有一个问题是在安装完成后,使用Python命令来测试安装是否成功时,如果以前预装了Python2.6,仍然会显示旧有的版本。原因在于安装时没有设置--prefit,默认安装在/usr/local目录,/usr/bin文件仍然连接到原有的Python版本。解决方案是:
1.sudo rm /usr/bin/python
2.sudo ln /usr/local/python* /usr/bin/python即可。
本人进行第3 步( 3.make test,该步进行时间较长,中途退出执行)报错:
test test_logging failed -- Traceback (most recent call last):
File "/home/hwruanjian/mysvn/Python-3.1.1/Lib/test/test_logging.py", line 774, in setUp
self.tcpserver = LogRecordSocketReceiver(port=0)
File "/home/hwruanjian/mysvn/Python-3.1.1/Lib/test/test_logging.py", line 749, in __init__
ThreadingTCPServer.__init__(self, (host, port), handler)
File "/home/hwruanjian/mysvn/Python-3.1.1/Lib/socketserver.py", line 400, in __init__
self.server_bind()
File "/home/hwruanjian/mysvn/Python-3.1.1/Lib/socketserver.py", line 411, in server_bind
self.socket.bind(self.server_address)
socket.error: [Errno 99] Cannot assign requested address
二、装完python后,用下面这个脚本就可以解决了,来自tortoiseSVN官网: http://www.blogjava.net/Files/lingy/change-svn-wc-format.rar 用法如:
python2.6 change-svn-wc-format.py ./projctName "1.4" --verbose
注:python2.7无法应用打开脚本—change-svn-wc-format.py
最终执行提示报错:Unrecognized WC format 12 in '/pentest/exploits/framework/.svn/entrie
所装svn为1.8的,版本太高,不兼容,最后降低到1.7后正常。