サイトデータの作業コピーでの作業(Emacsのpsvn編)

2012年11月24日パソコン・インターネット

Mac OS X 10.5.8 Leopardで、Subversion(SVN)によるWebサイト(ホームページ)の管理システムを構築しました。何回かに分けて、紹介しています。

前回は、サイトデータの作業コピーでの作業(ターミナル編)について書きました。ちょっと頑張りすぎたかも。

今回は、EmacsのSVNクライアントpsvn.elを使っての作業です。サイトデータの作業コピーでの作業についてまとめてみようと思います。psvnの使い方になるのですが、ホームページデータ(Webサイトデータ)を編集する時の流れを中心にまとめてみたいと思います。

Carbon Emacs パッケージには、最初からインストールされています。

ただし、.emacsへの設定が必要です。私は、次のようにしています。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; PSVN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq process-coding-system-alist '(("svn" . utf-8)))
(setq default-file-name-coding-system 'utf-8)
(setq svn-status-svn-file-coding-system 'utf-8)
;(setq svn-status-svn-process-coding-system 'utf-8)

svn-status-svn-process-coding-systemは、必要なのか不要なのかわかりません。この設定を入れても入れなくても、commitログが文字化けするのです。ターミナル.appで見ると、正しく見えるので、commitログにはちゃんと書き込めているのだと思います。原因不明です。どなたか、お知恵をいただけませんでしょうか?

Webサイト用データの変更は、リポジトリのtrunkからの作業コピー(ワーキングコピー:WC)に対してする様にします。作業用コピーを作る事を、checkoutと言います。

まずは、作業コピーを作ります。作業コピーの作成は、ターミナル.appからします。psvnでは作れないようです。作業コピーの作り方は、前回の説明と同じで、次の通りです。

作業コピーを、ホームディレクトリのSites.svnとします。ユーザー名を"user1"としていましたので、オプションとして付け加えます。

$ cd
$ svn checkout http://localhost/svn/wwwlocal/trunk Sites.svn --username user1
Authentication realm: <http://localhost:80> Subversion repositories
Password for 'user1':
A    Sites.svn/index.html
A    Sites.svn/styles.css
Checked out revision 4.

これで、作業コピーが作られました。この後の編集作業は、Sites.svn内で行います

サイトデータを更新する時は、次のような流れになると思います。

  1. psvn起動(M-x svn-status)
  2. Update(U)
  3. HTMLファイルオープン(f)
  4. 修正
  5. 3と4の繰り返し
  6. 更新データ選択(**)
  7. commitログ入力(c)
  8. commitログ入力終了(C-c C-c)

M-x svn-statusでpsvnを起動し、作業コピーのディレクトリ(~/Sites.svn)を指定します。すると、diredのような画面になります。キーバインドも似ています。fでファイルオープンです。別のバッファで開くならoです。修正せずに見るだけならvです。diredのファイル操作と同じですね。

ファイルを開いたら、通常のEmacsでの編集作業と同じです。存分に、Emacsの編集機能を使って下さい。

ファイルの修正が終わったら、C-x C-sで保存です。これも、Emacsの基本機能ですね。

ファイルを修正すると、ステータスバーの緑色の丸が赤色に変わります。リポジトリのデータから更新されると、赤丸になるようです。

サイトデータの更新の場合、複数のファイルを更新する事になると思うので、ファイルの選択、修正を繰り返します。

場合によっては、ファイルの削除や追加があるかもしれません。ファイルの削除はDです。ファイルの追加は、aです。

これらの修正が終わったら、*svn-status*バッファに戻り、変更したファイル全てを選択します。**で、修正したファイル、追加したファイル、削除したファイルの全てを選択出来ます。

ファイルの選択後、cでリポジトリにcommitします。*svn-log-edit*バッファが開くので、コメントを入力します。"##"で始まる行は、ログに記録されません。コメントの入力が終わったら、C-c C-cで、終了です。

*svn-status*バッファで、修正状態がわかるので、非常に便利です。

Subversion
メモ
に全機能が紹介されています。その中から、良く使う物をまとめ直してみたいと思います。

機能 キー 対応するSVNコマンド
カーソル移動と
バッファ操作系
pまたは↑
nまたは↓
編集用に開く f
編集用に開く
(別のバッファ)
o
読み込み専用に開く
(別のバッファ)
v
作業コピー更新 U svn update
編集状態更新 g svn status -v
ファイル操作系 ファイルコピー C svn copy
ファイル名の変更 M svn mv
ファイルの追加 a svn add –non-recursive
ファイルの削除 D svn delete
ディレクトリ作成 + svn mkdir
commit系 変更したファイルを全て選択 * *
commitログ入力 c svn commit
commitログ入力終了 C-c C-c svn commit
commitログ確認 l svn log

【参考にしたWebページ】

記事を書くに当たり、参考にさせていただきました。ありがとうございます。

pLog svn
psvnの基本操作と設定が載っています。
Subversion メモ
キーバインドが載っています。
Pirochin’s Blog – psvn の文字化け
svn logの文字化けについてです。

【シリーズ記事】

SVNによるWebサイト(ホームページ)管理

  1. SVNリポジトリの作成
  2. SVNリポジトリをhttp(WebDAV)でアクセス出来るようにする
    SVNリポジトリをhttp(WebDAV)でアクセス出来るようにする(おまけ)
    SVNリポジトリをhttp(WebDAV)でアクセス出来るようにする(Digest認証化)
  3. SVNリポジトリの中にサイトデータを作る
  4. サイトデータの作業コピーでの作業(ターミナル編)
    サイトデータの作業コピーでの作業(Emacsのpsvn編)
  5. SVNでローカルサイトの自動更新
  6. ローカルサイトをアクセス出来るようにする
  7. ローカルサイトからインターネットへ

Posted by お市のかた