我需要使用Objective C运行和SVN提交 使用 命令行应用程序
运行SVN命令的代码是这样的NSString *command = @"svn add folder; svn commit -m \"Test Add\""
NSArray *arguments = [NSArray arrayWithObjects:@"-c",command, nil];
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/bin/sh"];
[task setArguments:arguments];
NSPipe *pipe = [NSPipe pipe];
[task setStandardOutput:pipe];
NSFileHandle *file = [pipe fileHandleForReading];
[task launch];
NSData *data = [file readDataToEndOfFile];
NSString *output = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"Output %@",output);
但我收到此错误
svn: E155021: This client is too old to work with the working copy at ...
You need to get a newer Subversion client. For more details, see
http://subversion.apache.org/faq.html#working-copy-format-change
我尝试更新命令行工具但没有工作
在初始阶段我尝试使用终端进行SVN提交,但它也显示了相同的错误,所以基于此link我已经使用终端更新了SVN但是它仍然显示运行代码时的错误
我还使用新的SVN更新了 / bin / sh 但是做了最好的工作(还尝试了 / bin / bash )
有任何建议可以避免此错误并将其提交到存储库吗?
答案 0 :(得分:1)
终于得到了解决方案
我使用 svn 命令查找svn的安装位置 现在,当从Xcode中的运行按钮运行命令时,它将位置设为 /Applications/Xcode.app/Contents/Developer/usr/bin/svn
但终端正在使用该位置 的的/ usr / local / bin中/ SVN 强>
所以在Xcode goto Products文件夹下并复制 Application Name.app 文件并将其粘贴到桌面并双击运行它,现在它可以正常工作
但如果你需要解决这个问题,那就是我做的事情
自行承担风险
转到/Applications/Xcode.app/Contents/Developer/usr/bin/并复制以svn标题开头的所有文件并将其保留为备份。(请记住您复制的文件)
< / LI>转到/ usr / local / bin / svn并将svn文件从此处复制并替换为/Applications/Xcode.app/Contents/Developer/usr/bin/
现在运行它,您将不会收到任何版本错误
干杯!!! :)