GNU Arch が どうなるか分からない ので、バージョン管理に darcs の勉強も始めた。そこで、 GNU Arch quick start みたいに darcs の quick start をメモしてみる。書くのは、昨日作った JavaScript outEntry.js を例に、 darcs でファイルを新規管理する時の手順。
新規にプロジェクトを立ち上げる
カレント・ディレクトリーにファイル outEntry.js があるとする。これを darcs で管理し始める手順は次の通り。
$ darcs initialize ; _darcs ディレクトリーの作成 $ darcs add outEntry.js ; ファイルをレポジトリーに登録 $ darcs record --all ; 登録を反映 What is the patch name? Initial revision. ; パッチの名前をつける Do you want to add a long comment? [yn] n ; コメントをつけるなら y Finished recording patch 'Initial revision.'
以上で準備はお終い。複数のファイルを登録する時は
$ darcs add outEntry.js ChangeLog README README.*
のようにする。
darcs は GNU Arch と違いレポジトリーを集めて管理したりしない。同じ、分散型バージョン管理といっても、毛色が違うみたい。どちらかというと RCS に近く、 RCS ディレクトリーに当たるのが _darcs になる。
RCS と同じようにレポジトリーをフロッピーで運べる気軽さはあるものの、レポジトリーごと rm -rf してしまう怖さがある。
メール・アドレスの設定
何の設定もなしに darcs record --all を実行すると、 darcs は log に付けるメール・アドレスを (初回のみ) 訊いてくる。
Darcs needs to know what name (conventionally an email address) to use as the patch author, e.g. 'Fred Bloggs <fred@bloggs.invalid>'. If you provide one now it will be stored in the file '_darcs/prefs/author' and used as a default in the future. To change your preferred author address, simply delete or edit this file. What is your email address? at-aka@email.address
これを止めさせるには、環境変数 EMAIL か DARCS_EMAIL を設定するか、 ~/.darcs/defaults に author の設定をする。
defaults ファイルの書式は次の通り。
ALL author Masayuki Ataka <at-aka@email.address>
はじめの一歩
ファイルを変更したら、変更個所を確認。
$ darcs whatsnew ; 最新リビジョンとの差分を表示 { hunk ./outEntry.js 7 +function gid (id){ + return document.getElementById(id); +} + hunk ./outEntry.js 36 - document.getElementById('category_'+num).innerHTML = txt; + gid('category_'+num).innerHTML = txt; hunk ./outEntry.js 50 - var ul = document.getElementById ('bb'); + var ul = gid ('bb'); }
問題がなければ、commit。
$ darcs record hunk ./outEntry.js 7 +function gid (id){ + return document.getElementById(id); +} + Shall I record this patch? (1/3) [ynWsfqadjk], or ? for help: y hunk ./outEntry.js 36 - document.getElementById('category_'+num).innerHTML = txt; + gid('category_'+num).innerHTML = txt; Shall I record this patch? (2/3) [ynWsfqadjk], or ? for help: y hunk ./outEntry.js 50 - var ul = document.getElementById ('bb'); + var ul = gid ('bb'); Shall I record this patch? (3/3) [ynWsfqadjk], or ? for help: y What is the patch name? New function gid. Do you want to add a long comment? [yn] n Finished recording patch 'New function gid.'
darcs のチェック・インは面白くて、修正部分の小さな固まりごとに
これは今回のパッチに含めるか?
と聞いてくる。コーディング中に typo を見つけた時なんか、この機能は便利。typo 部分だけ commit することができる。
いちいち聞かれたくない時は、 -a オプションを付ける。
修正が終わったら、ログを見ましょ。
$ darcs changes Sat Sep 17 00:47:40 JST 2005 Masayuki Ataka <at-aka@email.address> * New function gid. Sat Sep 17 00:07:00 JST 2005 Masayuki Ataka <at-aka@email.address> * Initial revision.
-s オプションで、詳しいログが見れる。
$ darcs changes -s Sat Sep 17 00:47:40 JST 2005 Masayuki Ataka <at-aka@email.address> * New function gid. M ./outEntry.js -2 +6 Sat Sep 17 00:07:00 JST 2005 Masayuki Ataka <at-aka@email.address> * Initial revision. A ./outEntry.js
No comments:
Post a Comment