現在、チーム用に小さな継続的インテグレーション サーバーをセットアップしています。最近、ソース コードを SVN サーバーに切り替えました。
たとえば、一部のスクリプト内からのSVNクライアントと、Pythonスクリプトからのsvn APIの使用との主な違いは何だろうと思っていました。どちらかの言語の知識がなければ、なぜどちらかを選択するのでしょうか。
私はまだこのプロジェクトの始まりなので、そのような質問をするのに適切な時期だと思います.
ありがとう!
コマンドライン ツールである SVN クライアントは、開発者が日常的に使用するものです。export/checkout/bump-version-and-commit のような些細なことだけが必要な場合は、コマンド ライン引数を入力して出力を解析する標準的な Unix の方法でインターフェイスするだけです。これは最も簡単な方法であり、何かが壊れた場合は、壊れた操作を手動で繰り返すことでデバッグできます。私はそれを行うプログラムをほとんど知りませんが、問題はないようです。
SVN クライアント API (libsvnclient) には、これらのコマンドライン クライアントが提供するコマンドと同じコマンド (基本的には 1:1) のプログラム インターフェイスが含まれていますが、プロセスをわずかに制御できます。ファイルのリスト/ツリーの操作、洗練された包含/除外ルール、一部のファイルの自動競合解決が必要な場合、および bash スクリプトまたは出力の解析では複雑すぎる可能性があるその他の操作があると予想される場合は、次に、この API が役立ちます。習得と使用は非常に簡単です (すぐに使い始めることができるほど簡単です)。
低レベルの SVN API (リポジトリ/workingcopy アクセス API など) は、Subversion プロセスのすべての側面をすべて制御します。リポジトリをデータベース バックエンドとして使用する場合、repo/wc で危険な低レベルの操作 (ログ メッセージの編集など) を行う必要がある場合は、リポジトリを使用する必要があります。基本的なことであっても、シンプルでも使いやすいわけでもありません (実際、libsvnclient の関数は、単純なことを単純にするために、これらの API のショートカットになっています)。なぜCIシステムがそれを必要とするのか想像できません。