Dreamweaver から Subversion を利用する

Dreamweaver は CS4 から Subversion によるバージョン管理に対応しています。
社内のデザイナさん達に、Subversion 管理を布教したいので、まずは評価してみる事にしました。

とはいえ、結構めんどくさかったです…。
社内にある Subversion は、SVN+SSH 以外のアクセス方法を提供していません。
数年前までは WebDAV もあったのですが、諸般の事情で無くなったままです。
Dreamweaver で SVN+SSH を利用するには、割と手がかかります。

以下のような情報を教科書にして設定を行ないました。

まずは、Subversioning in Adobe Dreamweaver CS4 の情報に従い、SVN+SSH を使うための事前準備を行ないます。

vi で ~/.subversion/config ファイルの、[tunnels]セクションに以下の内容を追記します。

ssh = $SVN_SSH /usr/bin/ssh

また、ssh の鍵を作っていない人は、ssh-keygen コマンドを使って鍵ペアを作って、SVN+SSH で接続する先のサーバに登録しておかなくてはなりませんが、特に特別な事もない通常の鍵生成&登録手順だったので、そこの詳細は省略します。

次に、Dreamweaver 側の設定を行ないます。

「サイト」→「新規サイト」 からサイトの定義を開始し、通常通り設定をした後 「詳細設定」 タブの 「バージョンコントロール」カテゴリを選択して、以下のように設定します。

サイト設定

プロトコルは SVN+SSH、サーバアドレスは、前に”[ユーザ名]@”を付ける必要があります。その代わり、ユーザ名とパスワードの欄は空で構いません。
この状態で 「OK」 をクリックするとサイトの編集が始まりますが、レポジトリからのファイルの取得は行なわれないため「ファイル」ウィンドウが下図のように空の状態になっています。

ファイル一覧(空)

「ファイル」ウィンドウの上部には「チェックアウトファイル」というボタンがあるので、これを押したらチェックアウトされるのかと思っていましたが、そうではないようです。(後述しますが、編集後、隣の「チェックイン」ボタンからはレポジトリへのコミットが出来ます)

レポジトリからチェックアウトを行なうためには、上記の状態で、唯一ローカルファイルに表示されているルートディレクトリを右クリックして、メニューを「バージョンコントロール」→「最新バージョンを取得」と辿って下さい。

ファイル一覧(チェックアウト後)

転送状況を示すダイアログが表示された後、上図のようにファイルが取得されれば成功です。

編集作業自体は、Subversion なしに Dreamweaver を用いて作業するのと変わらないはずです。(Dreamweaver 自体を使った事がないのでよくわかりませんが…)

ファイルに対して編集を行なうと、下図のように「ファイル」ウィンドウ上で、変更したファイルにチェックマークが付きます。
この例では、pee.html に対して変更が加わっています。

edited_file_view

この状態で、「ファイル」ウィンドウの「チェックイン」ボタンを押すか、変更したファイルないしその上位階層のディレクトリを右クリックして、メニューから「チェックイン」を選択すると以下のようなダイアログが表示されます。

コミットログ

ここで適宜コミットメッセージを入力して、「コミット」を押せばコミット完了です。

ここまでの手順を経て使えるようにはなりましたが、実際に使ってみるとやや後付け感があって、使いづらい感じを受けます。当然ですが、Subversion の機能を使うにはVersionsのような専用クライアントの方が向いていますね。デザイナの皆さんが使い慣れたツール、やりなれたワークフローを大きく変えずに、リビジョン管理システムを使う事が出来るというのが Dreamweaver 側の優位性でしょう。


おまけに、Dreamweaver から Subversion を使っていて、気になった事をメモしておきます

  • Revert 操作が出来ない?
  • 「ファイル」ウィンドウの中から Revert にあたる操作を直接する方法がわかりませんでした。ファイルを削除して再度「バージョンコントロール」→「最新バージョンを取得」というやや乱暴な方法ならできますね。あるいは、ファイルの右クリックメニューから 「バージョンコントロール」→「バージョンを表示」から好きなリビジョンを選んで「改訂履歴」ダイアログを表示させた後、

    改訂履歴

    戻したいバージョンを選択して「最新バージョンへの更新」をするとその時点まで巻き戻せるのはわかりましたが、その瞬間コミットされてしまうのが、余り好みではない動作です。ワーキングコピーに反映してくれるだけでいいのに。
    さらに蛇足を言ってしまうと「最新バージョンへの更新」というボタン、英語版のリソースでは “Promote to Current” だったんですが、直訳するなら “現行バージョンに昇格” ですよね。意訳も OK なら “この時点まで戻す” とかのがわかりやすいかな。何にしても、もう少し適切な訳をあてておいて欲しいなと感じます。

  • ファイルの削除が出来ない??
  • ローカルからファイルを削除しても、削除した事をコミットする方法がわかりませんでした。「ファイル」ウィンドウの右上にある「ローカルビュー」となっているセレクトボックスを「レポジトリビュー」に切替えて、下図のようにレポジトリ内容が表示される状態にした後、
    ファイル一覧(レポジトリビュー)
    ファイルを選択して Delete キーを叩けば消えるようなのですが、マウスでは操作できないんですかね…?この時、コミットログなどは自動で設定されますが、削除理由などを書きたい時にこの仕様だとちょっと困ります。

  • 比較用のアプリなどは手動で設定しないといけない。
  • 上の「改訂履歴」ダイアログなどから、差分表示も行なえますが、その前に Dreamweaver の環境設定でファイルの比較をするアプリケーションを登録する必要があります
    Adobe Dreamweaver CS4 * ローカルファイルとリモートファイルの相違に関する比較
    これは Dreamweaver そのものの問題ではないですが、Mac で GUI の差分表示ツールって何がいいんでしょう。
    日本語リソースに対しては弱いけど、ショボいなりにだましだまし使えなくもない FileMerge は OS を普通にインストールしてたら使える状態なんでしたっけ?

preload preload preload