- 運用中の最新ファイルでローカルの作業コピーを更新
- emacs(meadow) で編集
- ediff で差分確認
- 更新
というのを手作業で繰り返すのはもうイヤだ。
いい加減バージョン管理システムが必要だ。
つーわけで、Subversion にスムーズに移行すべく調査、検討した。
現在の構成は以下の通り、
方針として、極力フロントエンドで調整する。
バックエンドの設定項目にも、ざっと目を通しておくけど、デフォルト前提で。
いつのまにか、~/.subversion/ ができている。
/.subversion/ 以下のファイルでいろいろ設定できるので、要チェック。
参考: http://subversion.bluegate.org/doc/book.html#svn.advanced.confarea.opts
今回は、とりあえず、日本語でログ書けるように設定した。
このあと、emacs の設定で utf-8-dos をデフォルトにするので、これで良い。
ついでに、locale も UTF-8 に合わせないと端末でログなどの表示が化ける。
svnadmin, svn のメモ:
meadow なので、sjis-dos デフォルトで無問題だったんだけど、
Subversion は UTF-8 前提だし、まー今後の事も考えて、
utf-8-dos をデフォルトに変更した。
(ただし Windows なら、入力と出力だけは、japanese-shift-jis-dos ですよと)
以下、日本語環境部分を .emacs より抜粋。
しかし、
(setq default-buffer-file-coding-system '...)
とか、
(setq-default buffer-file-coding-system '...)
とか、
(set-default-buffer-file-coding-system '...)
とか、紛らわしいので勘弁して欲しい。
ちなみに、
「PuTTY 上の emacs」と meadow のモードラインの違いを、始めてちゃんと見た。
参考: http://www.bookshelf.jp/texi/emacs-20.6-man-jp/emacs_4.html#SEC11
このおかげで、
あと、何となく Customize とかで設定しちゃってた部分とバッティングして苦労した。
vc は標準でバンドルされてるので、vc-svn.el を load-path に置いて、
って書くだけで良い。
以降、 vc 経由で cygwin の svn が呼ばれる。
vc のメモ:
参考: http://www.bookshelf.jp/texi/emacs-20.6-man-jp/emacs_15.html#SEC118
チェックアウト、チェックイン、追加は、
コレだけ(!)で済む。
衝突したら、vc-merge( C-x vm ), vc-resolve-conflicts とかするんだと思う(あとで試す)。
困ったら、
で、調べる。
- Subversion 1.3.2 (cygwin 版)
- meadow 2.10 (based on GNU Emacs 21.4.1)
- vc-svn.el (Jim Blandy 版)
方針として、極力フロントエンドで調整する。
バックエンドの設定項目にも、ざっと目を通しておくけど、デフォルト前提で。
◆ Subversion
cygwin の setup.exe でインストール。いつのまにか、~/.subversion/ ができている。
/.subversion/ 以下のファイルでいろいろ設定できるので、要チェック。
参考: http://subversion.bluegate.org/doc/book.html#svn.advanced.confarea.opts
今回は、とりあえず、日本語でログ書けるように設定した。
このあと、emacs の設定で utf-8-dos をデフォルトにするので、これで良い。
ついでに、locale も UTF-8 に合わせないと端末でログなどの表示が化ける。
svnadmin, svn のメモ:
◆ emacs の日本語の扱いを調整
久しぶりに、 .emacs を整理した。meadow なので、sjis-dos デフォルトで無問題だったんだけど、
Subversion は UTF-8 前提だし、まー今後の事も考えて、
utf-8-dos をデフォルトに変更した。
(ただし Windows なら、入力と出力だけは、japanese-shift-jis-dos ですよと)
以下、日本語環境部分を .emacs より抜粋。
しかし、
(setq default-buffer-file-coding-system '...)
とか、
(setq-default buffer-file-coding-system '...)
とか、
(set-default-buffer-file-coding-system '...)
とか、紛らわしいので勘弁して欲しい。
ちなみに、
「PuTTY 上の emacs」と meadow のモードラインの違いを、始めてちゃんと見た。
…文字端末を使っている場合、csは3文字になり、それぞれ、、だそうです。
キーボード入力のコーディングシステム、
画面出力のコーディングシステム、
編集中のファイルのコーディングシステムです。
参考: http://www.bookshelf.jp/texi/emacs-20.6-man-jp/emacs_4.html#SEC11
このおかげで、
- keyboard-coding-system
- terminal-coding-system
- buffer-file-coding-system
あと、何となく Customize とかで設定しちゃってた部分とバッティングして苦労した。
◆ vc-svn
vc-svn を入手。Subversion のソースツリーの中の、/contrib/client-side/vc-svn.el です。vc は標準でバンドルされてるので、vc-svn.el を load-path に置いて、
って書くだけで良い。
以降、 vc 経由で cygwin の svn が呼ばれる。
vc のメモ:
参考: http://www.bookshelf.jp/texi/emacs-20.6-man-jp/emacs_15.html#SEC118
チェックアウト、チェックイン、追加は、
コレだけ(!)で済む。
衝突したら、vc-merge( C-x vm ), vc-resolve-conflicts とかするんだと思う(あとで試す)。
困ったら、
で、調べる。
◆ linux とかではどうなの?
emacs の設定さえ頑張れば、linux でも問題ない(ように見える)。◆宿題
- vc で削除ってどうやるの?
-
M-x ediff-revision
で差分が見れるけど、
vc-merge, vc-resolve-conflicts
と、どう絡んでくれるか?
上手く絡んで欲しい。ediff 最強。 -
ログの書き込みは問題ないが、
locale を UTF-8 に合わせないと表示が化ける。
だけど、cygwin の locale は腐っている。タスケテ。 -
実は TortoiseSVN も入れているんだけど、
cygwin のパスが Windows 的に素直じゃないので、
共有とか難しいんだろうか?
それ以前の問題として、Subversion のバージョンが違うので、
レポジトリとかのフォーマットが互換性が無い模様。しばらく様子見。
コメント (4)
衝突がある場合、vc-merge( C-x v m )とすると、
Lorem ipsum dolor sit amet,
consectetur adipisicing elit,
<<<<<<< .mine
変更したい
=======
でも、かぶった
>>>>>>> .r4
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.
となる。
そのまま meadow を終了して、再度そのファイルを開くと、
Lorem ipsum dolor sit amet,^M
consectetur adipisicing elit,^M
<<<<<<< .mine
変更したい^M
=======
でも、かぶった^M
>>>>>>> .r4
sed do eiusmod tempor incididunt^M
ut labore et dolore magna aliqua.^M
となってしまう。
どうも、cygwin 版 svn は、
「<<<<<<< .mine」とか挿入した行の、改行コードの扱いが苦手のようだ。
http://rogiken.org/wiki/index.php?Subversion%A4%CE%C6%B3%C6%FE%A4%C8%BB%C8%CD%D1#content_1_9
しばらくは、TortoiseSVN のバージョンも 1.3.2 に下げて、
不備を補いながらへ併用しようかな。
投稿者: master | 2006年11月17日 00:47
衝突の解消がどうにも VC のマニュアルどおりにならないので、
・meadow 3.00-dev (based on GNU Emacs 22.0.90.1)
・vc-svn.el (FSF 版)
も試用中。
こっちの構成だとマニュアルどおり ediff が援用される。
そろそろ meadow3 に乗り換えても良いかも知れない。
あと、VC で削除は、
M-x vc-delete-file
でいける?
後でまとめて、エントリする。
投稿者: master | 2006年11月28日 01:15
ちなみに、cvs のメモ:
cd /home/master/;
mkdir -p ./cvs_test/work/;
# レポジトリを作る。
setenv CVSROOT ':local:/home/master/cvs_test/REPOSITORY/';
cvs init;
# /path/to/source/ からレポジトリへインポート。
cd /path/to/source/;
cvs import -m 'start' module vendor release;
# レポジトリから作業コピーへチェックアウト。
cd /home/master/cvs_test/work/;
cvs checkout module;
# 困ったら…
cvs -H;
投稿者: master | 2006年12月17日 00:19
[既存のディレクトリ]を svn 管理下に置きたい場合:
$ svn mkdir [レポジトリ上のディレクトリのURL];
$ svn checkout [レポジトリ上のディレクトリのURL] [作業コピーディレクトリのパス];
[既存のディレクトリ]から、[作業コピーディレクトリ]に、ファイルを移動。
$svn add foo;
念のため[作業コピーディレクトリ]でテスト。問題なければ、
$svn commit;
投稿者: master | 2007年03月19日 21:03