4

sudo svn --username radek update ".$codebase." --force";自動化テストが開始される前に、毎晩 (SuSE 上で) 自分の php スクリプトから実行しています。そのため、テストは今日チェックインされた最新のコードで行われます。

svn up正常に終了したことを確認するにはどうすればよいですか? それで、テストがトリガーされなかった場合はどうなりますか?

4

3 に答える 3

5

svn update障害が発生した場合 (ネットワーク エラーやディスク エラーなど)、ゼロ以外の値を返す必要があります。

ただし、追加の考慮事項は、マージの競合です。 svn updateマージ競合のある作業コピーの更新が「成功」したと見なされます。

svn status -qしたがって、アプリケーションによっては、「C」ステータスのファイルを実行して検索することも重要になる場合があります。更新が競合して完了した場合は、別のアクションを実行することをお勧めします。

于 2012-04-05T04:18:56.837 に答える
4

コマンドラインから、私は通常svn status -q、すべてが最新の場合は何も出力しないはずです。そうしないと、エラーが発生するか、まだ更新されていないファイルが表示されます。

他の人が述べたように、svn up特定の理由で失敗した場合、ゼロ以外の値を返す必要があります。

Jenkinsのような継続的なビルド システムの使用を検討する必要があります。コミットごとに Jenkins にテストを実行させることも、1 日の特定の時間に自動的に実行させることもできます。このように、車輪の再発明をしているわけではありません。さらに、Jenkins はテスト結果を電子メールで送信し、表示する場所を提供できます。

于 2012-04-05T03:45:44.223 に答える
3

svn コマンドのリターン コード (ゼロである必要があります) を使用するか、標準出力の最後の行を確認してください。次のようになります。

At revision 123.

正しい LOCALE が必要であることに注意してください

于 2012-04-05T01:23:56.677 に答える