だから私は現在、次のコードを使用してSVNディレクトリをチェックアウトしています:
NSTask *task = [[NSTask alloc] init];
NSPipe *checkoutPipe = [[NSPipe alloc] init];
[task setLaunchPath:@"/usr/bin/svn"];
[task setArguments:[NSArray arrayWithObjects:@"checkout",SVN_URL_OF_PRJECT_DIR,DEST_DIR,@"--username",SVN_USER,@"--password",SVN_PASSWORD,nil]];
[task setStandardOutput:checkoutPipe];
[task launch];
NSFileHandle *file = [checkoutPipe fileHandleForReading];
NSData *data = [file readDataToEndOfFile];
NSString *checkoutResult = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"Result: %@",checkoutResult);
このコードは正常に動作しますが、チェックアウトが本当に成功したかどうかをプログラムで確認したいですか? Checked out revision XY.
チェックアウトが成功した場合、NSLog は " " を出力しますが、指定されたディレクトリにファイルを実際に置くことができなかった場合でも (出力先のパスが何らかの理由で間違っている場合)、それが出力されることを確認しました。チェックアウトされたリビジョン XY メッセージと、宛先ディレクトリが不適切であるというメッセージが出力されます。
だから私の質問は次のとおりです:チェックアウトが完全にOKであったかどうかをテストする確実な方法と、チェックアウトプロセスが完了した後にチェックが行われたことを確認する方法は何ですか(よくわかりませんが、非同期ではありませんか?それとも非同期にするために bg スレッドにいる必要がありますか?)。