.emacs を再読み込みする方法
「2ちゃんねるはなぜ潰れないのか? 」を読みたい
- 作者: 西村博之
- 出版社/メーカー: 扶桑社
- 発売日: 2007/06/29
- メディア: 新書
- 購入: 18人 クリック: 338回
- この商品を含むブログ (335件) を見る
local varibales list の警告を出さないようにする
昨日から、ChangeLogにメモを書こうとすると、
以下のような警告が出されるようになった。
The local variables list in ChangeLog.txt contains values that may not be safe (*). Do you want to apply it? You can type y -- to apply the local variables list. n -- to ignore the local variables list. ! -- to apply the local variables list, and permanently mark these values (*) as safe (in the future, they will be set automatically.) mode : change-log * clmemo-mode : t
local variables listっていうのはたぶん、
あるファイル(僕の場合はChangeLog.txt)の中にある、
他では使われていない変数の入ったリストのことだろう。
上記の警告はそれについてどうしましょうか?と
ユーザに対して聞いてくれているんだと解釈。
そういえば、昨日はEmacs Lispのメモを取ったから、
いくつかそれらしいリストが書き込まれているな。
納得であります。
次からはそのリストを安全だと見なして、
警告は出さないようにするには!を選べばいい。
そうすると、.emacsの末尾に、ある設定が追加される。
なんか見づらいので適当に加工して書き直したのが以下。
この記述があればもう警告は出ない。
;; local varibales list の警告を出さないようにする (custom-set-variables '(safe-local-variable-values (quote ((clmemo-mode . t)))))
Subversionの導入
昨日はSubversionの勉強よりもRubyの方を優先してやりたい。
みたいないことを言っていたのだけど、
やっぱりソースをがりがり書くなら、
バージョン管理は大切だろう!ってことで、
Rubyのコード書きより先に、Subversionについて勉強した。
Subversion によるバージョン管理とhttp://www-aos.eps.s.u-tokyo.ac.jp/~takagi/SubversionMemo.htmlあたりを少し読んだ後に、
今日買ったWEB+DB PRESS Vol.39の特集記事を読んだら、
大体分かった気になった。
Web+DB Pressの特集がかなり分かりやすかったので、
これを読むだけでもよかったかもしれない。
Subversionの導入を考えている人にはお勧めです。
インストール
で、導入どうにゅう。
まずは、subversion: Documents & files: Windows Binariesから
Subversionの最新版*1をダウンロードする。
インストールは特に気にすることはない。
僕は新しいソフトは、C:じゃなくてD:にインストールするようにしてるので、
そこだけ変更して後はデフォルト。
インストールできたらコマンドプロンプトから、
> svn help
を実行してインストールがうまくいったか確認する。
ヘルプが日本語で出てきてくれるなんて幸せですよおまいさん。
Subversionで普段行う作業では、
svn を頭につけた svn コマンドを使うらしい。
リポジトリの作成
次にリポジトリを作る。
バージョン管理はリポジトリごとに行われる。
とりあえずテスト用のリポジトリを1つ新しく作ってみる。
この場合は、svnコマンドではなく svnadmin コマンドを使う。
リポジトリの作成は重要なのだね。
> svnadmin create file:///C:/svn/rep
なお、このコマンドを実行するには、
あらかじめ C:\svn\rep ディレクトリを作っておく必要がある。
コマンド実行後、何も出力されなければ成功。
ちなみに、ここで作ったテスト用のリポジトリを消したい場合は、
svnを経由せずにディレクトリごと丸ごと消してしまえばいいらしい。
以下の3つを読んで消し方についての安心感を得た。
- Subversionのリポジトリの削除 -Subversionを使ってみようと現在ダウン- その他(プログラミング・Web制作) | 教えて!goo
- 2004-09-07
- http://melanges.kuma.nu/061220204817.html
リポジトリの消し方が分かれば、心置きなくいじれるってもんだ。
インポート
リポジトリにバージョン管理させる対象を登録することをインポートという。
とりあえず C:\home\gan2\import ディレクトリを作成し、
その中の構成を以下のように設定する。
C:\home\gan2\import │└ trunk | └ hoge.txt ├ tags └ branches
hoge.txtの内容は以下のようにしておいた。
hoge fuga piyo
Subversionでは、バージョン管理の対象となるディレクトリの構成を、
trunk、tags、branchesとすることを推奨している。(参考: bluegate.org - このウェブサイトは販売用です! - bluegate リソースおよび情報)
それぞれのディレクトリの役割は以下のような感じ。
trunk | メインの開発用ディレクトリ |
tags | 変更することのないある時点のバージョンを管理するディレクトリ |
branches | メインから分岐したディレクトリ |
そして、作成した C:\home\gan2\import ディレクトリを、
C:\svn\rep リポジトリにインポートする。
C:\home\gan2\import に移動後、以下のコマンドを実行する。
C:\home\gan2\import> svn import . file:///C:/svn/rep -m "初めてのインポート" 追加しています trunk 追加しています trunk\hoge.txt 追加しています branches 追加しています tags リビジョン 1 をコミットしました。
上記のコマンドは、
.(現在のパス)を file:///C:/svn/rep(リポジトリのURL)に、
-m "初めてのインポート"("初めてのインポート"というメッセージ)
をつけてimport(インポート)する、と読める。
リポジトリのURLには、頭に印を付けないといけないらしい。
今回はローカルディスク上に構築したリポジトリなので、頭に file:/// を付ける。
svnadmin createのときは、
まだSubversionの管理の対象ではなかったから付ける必要がなかったんだね。
頭の印は他にも幾つかあるみたい。(参考: bluegate.org - このウェブサイトは販売用です! - bluegate リソースおよび情報)
チェックアウト
インポートをしたからといって、
このまま C:\home\gan2\import で作業をしてはいけない。
なぜなら、C:\home\gan2\import以下のディレクトリやファイルは
バージョン管理の対象となっていないからだ。
作業を始めるにはチェックアウトをしなくてはならない。
チェックアウトとは、バージョン管理の対象となっている
ディレクトリやファイルを取り出すことをという。
また、チェックアウトして作った作業領域のことを作業コピーという。
チェックアウトは、今の C:\home\gan2\import からではできないので、
別の場所に移ってから行うか、
C:\home\gan2\import 以下を一旦削除してから行う。
今回は同じ場所で続けて作業をしたいので、
C:\home\gan2\import を一旦全て削除した。
削除後に、チェックアウトをするため以下のコマンドを実行する。
C:\home\gan2\import> svn checkout file:///C:/svn/rep ./ A trunk A trunk\hoge.txt A branches A tags リビジョン 1 をチェックアウトしました。
作業コピーとリポジトリの比較
hoge.txtを編集して以下のように書き換えてみる。
hoge を hogehoge に変更。
hogehoge fuga piyo
そして作業コピーとリポジトリにある最新リビジョンを比較してみる。
C:\home\gan2\import> svn status M trunk\hoge.txt
M はModifiedの略。これでhoge.txtに変更があったことが確認できた。
作業コピーに hoge2.txt を追加してみる。
それから svn status コマンドを叩いてみると・・・
C:\home\gan2\import\trunk> svn status ? hoge2.txt M hoge.txt
hoge2.txt には M ではなく ? が付いている。
リポジトリが hoge2.txt のことを、
まだバージョン管理の対象としていないためこうなる。
新しく作成したファイル(ディレクトリ)を、
バージョン管理の対象とするには、
svn add コマンドを使う。
C:\home\gan2\import\trunk>svn add hoge2.txt A hoge2.txt
コミット
作業コピーに行った変更をリポジトリに反映させるためには、コミットを行う。
C:\home\gan2\import\trunk>svn commit -m "コミット!!" 送信しています trunk\hoge.txt 追加しています trunk\hoge2.txt ファイルのデータを送信しています .. リビジョン 2 をコミットしました。
ログ
C:\home\gan2\import\trunk>svn log ------------------------------------------------------------------------ r1 | gan2 | 2007-07-04 21:42:35 +0900 (水, 04 7 2007) | 1 line 初めてのインポート ------------------------------------------------------------------------
このとき注意しなくてはいけないのが、
svn log で見ることのできるログは、
作業コピーのリビジョンまでだけだということ。
さっきコミットして2になったのは、リポジトリのリビジョンで、
この段階ではまだ作業コピーのリビジョンは1なのだ。
だから svn log で見れるログはリビジョン1まで。
リビジョン2まで見るには、
作業コピーの状態をリポジトリの状態に更新しないといけない。
アップデート
作業コピーの状態をリポジトリの最新状態(HEADという)に
更新するには svn update を使う。
C:\home\gan2\import\trunk>svn update リビジョン 2 です。
この後 svn log と叩けば、リビジョン2までのログを確認できる。
C:\home\gan2\import\trunk>svn log ------------------------------------------------------------------------ r2 | gan2 | 2007-07-05 13:11:07 +0900 (木, 05 7 2007) | 1 line コミット!! ------------------------------------------------------------------------ r1 | gan2 | 2007-07-04 21:42:35 +0900 (水, 04 7 2007) | 1 line 初めてのインポート ------------------------------------------------------------------------
リポジトリへの追加、削除、移動
svn add コマンドはリポジトリへファイル(ディレクトリ)を
新しく追加するためのコマンドだった。
追加以外にも削除や移動のためのコマンド svn delete と svn move がある。
その他のこと
Subversionカテゴリを作ったので、
これ以上のことは時間があるときに書いていこうと思う。