SVN リポジトリからファイルをチェックアウト/チェックインできる perl スクリプトを作成したいと考えています。、など
のいくつかのPerlモジュールをチェックしました。Alien::SVN
SVN::Core
SVN::Client
しかし、ファイルのチェックアウトまたはチェックインを行う関数は実際には見つかりませんでした。
誰か助けてくれませんか?
SVN::Clientは、ファイルのチェックアウトとチェックインの両方を行うことができます。
チェックアウト方法に関するドキュメントからの抜粋を次に示します。
$ctx->checkout($url, $path, $revision, $recursive, $pool);
新しくチェックアウトされた作業コピーのルート ディレクトリとして $path を使用して、$revision で $url の作業コピーをチェックアウトします。
$revision
数字、'HEAD'、または日付でなければなりません。$revision がこれらの要件を満たさない場合、$SVN::Error::CLIENT_BAD_REVISION
が発生します。リポジトリから実際にチェックアウトされたリビジョンの値を返します。
チェックインの場合:
$ctx->commit($targets, $nonrecursive, $pool);
ターゲットが参照するファイルまたはディレクトリをコミットします。log_msg コールバックを使用して、コミットのログ メッセージを取得します。
$targets にパスが含まれていない (要素がない) 場合、何もせず、エラーなしですぐに戻ります。
次のいずれかのアクションでコミットが進行するときに、通知コールバックを呼び出します。
$SVN::Wc::Notify::Action::commit_modified, $SVN::Wc::Notify::Action::commit_added, $SVN::Wc::Notify::Action::commit_deleted, $SVN::Wc::Notify::Action::commit_replaced, $SVN::Wc::Notify::Action::commit_postfix_txdelta.
$nonrecursive
ディレクトリ ターゲットのサブディレクトリを無視する必要があることを示すために使用します。svn_client_commit_info_t オブジェクトを返します。コミット情報オブジェクトのリビジョン メンバーが
$SVN::Core::INVALID_REVNUM
存在し、エラーが発生しなかった場合、コミットは何も行われませんでした。何もコミットする必要はありませんでした。