「Mac/開発環境/svk」の編集履歴(バックアップ)一覧はこちら

Mac/開発環境/svk」(2008/11/02 (日) 04:12:56) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

svkはDeveloper Toolsに含まれています。&br() なので、LeopardのインストールDVDからデベロッパーツールをインストールすれば、svkも使用可能になります。 バージョンは2.0.1、/usr/lib以下のsvnがらみのライブラリを使っているので、svnを入れる際にlib配下はそっとしておいた方が良いかもしれません。 ざっくり言うとcvsでいうベンダーブランチを使った追っかけと同じような事を自動でやってくれるツール、と思っておけばだいたい間違いなさそうです。 ベンダーブランチを切って、編集用ブランチを切って、とすればマージはコマンド1発で確実にやってくれる、という感じです。 だいたいの使い方としては、ローカルにリポジトリのミラーと作業ブランチを用意して、 ミラーはネットワークにつながってる間は常に本リポジトリと同期させ、&br() 作業はこまめに作業ブランチにコミットし一通りまとまって安定したら&br() 作業リポジトリにためていた変更を一気にミラーと本リポジトリに反映させる、&br() と言った感じになります。 * まずは準備 まず、 svk depotmap --init として、環境を作成する必要があります。&br() このコマンドを実行すると、$SVKROOTに設定ファイルやらリポジトリやらが作成されます。&br() $SVKROOTが未設定の場合は~/.svkが使用されます。 で、このリポジトリの事をdepotと言うみたいなんですが、こいつはデフォルトでは//…でアクセスするルートのdepotが$SVKROOT/localに置かれるだけで好きなdepotを好きな場所に置く事が出来ます。たとえば、 svk depotmap myProject /Volumes/svkroot/myProject の様に指定すると/myProject/でアクセスできるdepotを作成する事が出来ます。 depotのリストは、 svk depotmap -l で確認できます。svkの管理下から外す時は、たとえば先ほどのmyProjectを外す場合は svk depotmap -d myProject とすればsvkとは関係のないただのsvnリポジトリになります。 * mirrorの作成 depotが出来たら、ローカルにミラーを作成します。&br() 例えば先ほどのmyProjectの下のmirror/以下に「http://myProject.com/svn/product」をミラーリングしたい場合は、 svk mirror /myProject/mirror/product http://myProject.com/svn/product の様にします。 このミラー、svkを使って操作する限りは常に本リポジトリと同期してくれるようなのですが、svnを使って操作するといとも簡単に整合が取れなくなるので注意が必要です。 まぁ、手でマージして合わせれば良いだけなのですが…大変でした。 で、この状態ではまだミラーリングの設定が出来ただけで実際にリポジトリの内容が取り込まれてはいません。&br() 取り込むためには、 svk sync /myProject/mirror/product のようにsyncコマンドにmirrorで作成したミラーのパスを渡してやります。 また、 svk sync --all とすれば、複数ミラーが存在してもまとめて全てを取り込む事が出来ます。 * 作業用ブランチの作成 で、常に同期されるのも困りますしsvnから使いたいので、別にブランチというかコピーを作ってそっちを触ります。これは svk copy /myProject/mirror/product /myproject/product の様にcopyコマンドを使ってsvnでブランチを切るのと同じように切るだけです。 一度作った作業用ブランチに最新のミラーを反映させるためには svk pull /myproject/product の様にpullコマンドを使用します。 * 作業の反映 作業用ブランチを指定してpushコマンドを実行すれば一気にミラー、本体へと反映してくれるのですが、そのままだとsvkの書き足すヘッダが付いてしまいます。これを抑制するために、 svk push ---verbatim /myproject/product と「--verbatim」オプションを使用した方がいい感じです。
svkはDeveloper Toolsに含まれています。&br() なので、LeopardのインストールDVDからデベロッパーツールをインストールすれば、svkも使用可能になります。 バージョンは2.0.1、/usr/lib以下のsvnがらみのライブラリを使っているので、svnを入れる際にlib配下はそっとしておいた方が良いかもしれません。 ざっくり言うとcvsでいうベンダーブランチを使った追っかけと同じような事を自動でやってくれるツール、と思っておけばだいたい間違いなさそうです。 ベンダーブランチを切って、編集用ブランチを切って、とすればマージはコマンド1発で確実にやってくれる、という感じです。 だいたいの使い方としては、 - ローカルにリポジトリのミラーと作業ブランチを用意する - ミラーはネットワークにつながってる間は常に本リポジトリと同期させる - 作業はこまめに作業ブランチにコミットし - 一通りまとまったら作業リポジトリにためていた変更を一気にミラーと本リポジトリに反映 と言った感じになります。 * まずは準備 まず、 svk depotmap --init として、環境を作成する必要があります。&br() このコマンドを実行すると、$SVKROOTに設定ファイルやらリポジトリやらが作成されます。&br() $SVKROOTが未設定の場合は~/.svkが使用されます。 で、このリポジトリの事をdepotと言うみたいなんですが、こいつはデフォルトでは//…でアクセスするルートのdepotが$SVKROOT/localに置かれるだけで好きなdepotを好きな場所に置く事が出来ます。たとえば、 svk depotmap myProject /Volumes/svkroot/myProject の様に指定すると/myProject/でアクセスできるdepotを作成する事が出来ます。 depotのリストは、 svk depotmap -l で確認できます。svkの管理下から外す時は、たとえば先ほどのmyProjectを外す場合は svk depotmap -d myProject とすればsvkとは関係のないただのsvnリポジトリになります。 * mirrorの作成 depotが出来たら、ローカルにミラーを作成します。&br() 例えば先ほどのmyProjectの下のmirror/以下に「http://myProject.com/svn/product」をミラーリングしたい場合は、 svk mirror /myProject/mirror/product http://myProject.com/svn/product の様にします。 このミラー、svkを使って操作する限りは常に本リポジトリと同期してくれるようなのですが、svnを使って操作するといとも簡単に整合が取れなくなるので注意が必要です。 まぁ、手でマージして合わせれば良いだけなのですが…大変でした。 で、この状態ではまだミラーリングの設定が出来ただけで実際にリポジトリの内容が取り込まれてはいません。&br() 取り込むためには、 svk sync /myProject/mirror/product のようにsyncコマンドにmirrorで作成したミラーのパスを渡してやります。 また、 svk sync --all とすれば、複数ミラーが存在してもまとめて全てを取り込む事が出来ます。 * 作業用ブランチの作成 で、常に同期されるのも困りますしsvnから使いたいので、別にブランチというかコピーを作ってそっちを触ります。これは svk copy /myProject/mirror/product /myproject/product の様にcopyコマンドを使ってsvnでブランチを切るのと同じように切るだけです。 一度作った作業用ブランチに最新のミラーを反映させるためには svk pull /myproject/product の様にpullコマンドを使用します。 * 作業の反映 作業用ブランチを指定してpushコマンドを実行すれば一気にミラー、本体へと反映してくれるのですが、そのままだとsvkの書き足すヘッダが付いてしまいます。これを抑制するために、 svk push ---verbatim /myproject/product と「--verbatim」オプションを使用した方がいい感じです。

表示オプション

横に並べて表示:
変化行の前後のみ表示:
目安箱バナー