最近の VCS はもっぱら git だが、現場では Subversion がまだまだ現役。
その一方、Mac で使いやすいクライアントが少ないということで、自分が昔から使っている svnX を取り上げてみる。
svnX のいいとこ
- 無料
以上!
機能的にはまあまあなんだけど、使い勝手はいまひとつというか、ある操作に対して何が起こるのか予測しにくいというか、いろんな機能がそこかしこに隠れている感じ。
それを発見できたときは面白いんだけど、はじめて触る人からしたら面倒なだけなんで、ここで簡単にまとめておきます。
ちなみにお金に余裕のある方は Versions がいいそうな。
配布元
本家は こっち なんだけど、古いバイナリしか置いてないので こちら からダウンロード。
現時点の最新版は 1.3.4 です。
こいつはガワだけなので、Subversion の本体も別途入れておくこと。
使い方
最初の起動では、もしかしたらウィンドウが何も出てこないかもしれません。
とりあえず Window メニューを展開しましょう。
- Repositories : 登録リポジトリ一覧パネルを表示。
- Working Copies : チェックアウトした作業コピー一覧パネルを表示。
- Activity : 実施した操作の履歴パネルを表示。
チェックアウト(svn checkout)
- Repositories パネルを開く。
- リスト右下の [+] ボタンをクリックし、以下を入力。
- Name: 管理用の名称。(自由)
- Path: リポジトリの URL。
- User: リポジトリへログインユーザ名。
- Password: ログインパスワード。
- リストに追加された項目をダブルクリックするとウィンドウが表示され、リポジトリに接続する。
- ウィンドウ最下部のツリーを下り、チェックアウトしたいディレクトリを選択。
- ツールバーの Checkout をクリックし、チェックアウト先を選択して実行。
- チェックアウト対象ディレクトリは作成されないので、必要であれば自分で作成してそこをチェックアウト先にすること。
- Working Copies パネルにチェックアウト先ディレクトリが追加される。
更新(svn update)
- Working Copies パネルを開く。
- リストから更新対象の作業コピーをダブルクリックするとウィンドウが表示される。
- ツールバーの Update をクリック。
- 詳細は Output をクリックすると表示されるドロワーに出力される。
コミット(svn commit)
- Working Copies パネルを開く。
- リストからコミット対象の作業コピーをダブルクリックするとウィンドウが表示される。
- コミット対象ファイルを選択し、Commit ボタンをクリック。
- コミットメッセージを入力して実行。
応用
リポジトリウィンドウの詳細
以下の 4 つのペインで構成される。
コミット内容ペインは履歴ペイン上にある「歯車アイコン」をクリックすると表示できる。
- 履歴ペイン : コミットの履歴。
- コミットメッセージペイン : 履歴ペインで選択されている行(リビジョン)のメッセージを表示。
- コミット内容ペイン : 履歴ペインで選択されている行(リビジョン)で実施された操作と対象ファイルを表示。
- ツリーペイン : 履歴ペインでチェックされているリビジョンのファイルツリーを表示。
特定ディレクトリまたはファイルの履歴を見るには
- ツリーペインで対象ディレクトリまたはファイルをダブルクリック。
- 履歴ペインに、対象の変更が行われたリビジョンだけが表示される。
- 元に戻りたい場合は履歴ペイン上部の URL(太字の部分)をクリック。
変更の差分(diff)を見るには
- 次のいずれかを選択し、ツールバーの Diff を実行する。
- 履歴ペインの行 : 選択行のリビジョンと、その前のリビジョンの差分。
- コミット内容ペインの行 : 選択行のファイルについて、そのリビジョンと前のリビジョンの差分。
- ツリーペインの項目 : 選択ディレクトリ以下またはファイルと、その前のリビジョンの差分。
タグやブランチを作成するには
- ツリーペインから対象ディレクトリを選択。
- ツールバーの Copy をクリックして実行。
- Target で生成対象ディレクトリ(tags または branches)を選択。
- Name にディレクトリ名を入力。
- Commit Message に入力して実行。
作業コピーウィンドウの詳細
作業コピーウィンドウには次の表示モードがある。
モードの切り替えはツールバーの View から行える。
- 階層表示 : 左ペインにディレクトリ階層、右ペインに選択中の階層下にあるファイルとディレクトリを表示。
- フラット表示 : 作業コピー下にある全てのファイルを表示。
- フラット表示(スマート) : 作業コピー下で追加・変更および管理外のファイル・ディレクトリのみを表示。
リポジトリとの差分(diff)を見るには
- 変更した対象ファイルを選択。
- ツールバーの Diff をクリックして実行。
リポジトリの内容に戻す(revert)するには
- 変更した対象ファイルを選択。
- Revert をクリックして実行。
- Recursive オプションを ON にすれば、指定ディレクトリ以下をまとめて戻せる。
FileMerge のエンコーディングエラー対応
Diff を行ったときのデフォルトアプリケーションである FileMerge に UTF-8 で書いたテキストを渡すと警告が表示される場合があるので、それを止める方法。
拡張子にワイルドカードが使えないのでいちいち指定しないといけないのが面倒。