Python を使用して SVN コミットを自動化しています。SVN コマンドの出力をログ ファイルに書き込みたいと考えています。私が持っているコードで SVN を実行できますが、問題は、コミットが成功すると、subprocess
呼び出しがログの出力を返さないことです。
比較すると、手動で SVN を実行すると、コマンドの進行状況とコミットされているファイルを示す出力が得られます。それが私のログファイルに欲しいものです。SVN はそのデータを stdout または stderr よりもバッファに出力していますか? ログ用にそのデータを取得するにはどうすればよいですか?
私が使用しているコードは次のとおりです。
cmd = "svn commit --non-interactive --no-auth-cache -m 'Automatic commit' ./"
process = subprocess.Popen(cmd,
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True)
result = process.wait()
# Output
out = process.stdout.read()
err = process.stderr.read()
このコードを実行してコミットが成功すると、変数out
とerr
変数は両方とも空になります。