Subversion(SVN)リポジトリディレクトリ+ファイルから現在のリビジョンを抽出する方法

Subversion(SVN)リポジトリディレクトリ+ファイルから現在のリビジョンを抽出する方法

Webインターフェイスなどを介して管理されるSVNリポジトリがあり、svn checkout https://server/repos/proj1すべてがうまく機能します。

たとえば、サーバー上のシェルコマンドを使用してcommit最新バージョンをディレクトリにコピーしたいとします。/home/user/somewhere/proj1/rev102/

私が正しく覚えている場合は、コマンドごとに1つのコマンドを呼び出すことができますcommit。実行方法についてはあまり心配しません(失敗した場合はcronジョブを作成できます)。

svn updatesvnログインメカニズムなどを使用せずにローカルで実行されるシェルスクリプトを使用してsvn repoディレクトリ/ファイルから最新のファイルを抽出するにはどうすればよいですか?すべてのファイルがそこにあり、シェルからアクセスできるので簡単です。

答え1

svn loginsvnデータベースファイルに直接アクセスできる場合は必要ありません。サーバーのどこかにディレクトリなどのsvnデータベースのルートがあります/some/dir。ここにはdbconfおよびサブディレクトリがあります。次のコマンドを使用して、同じマシン上でこのリポジトリをチェックアウトできます。hookslocks

cd /home/user/somewhere/
svn list file:///some/dir/
svn checkout file:///some/dir/repos/proj1/rev102  proj1/rev102

svn update新しく作成されたサブディレクトリでもこれを実行できます。

言ったように、すべてのコミットでコマンドを呼び出すことができます。ファイルを編集して名前をinhooks/post-commit.tmplに変更します。hooks/post-commit/some/dir

関連情報