Just another Ruby porter,

〜2004年6月中旬〜


<Prev(,) | Next(.)> | Recent(/)>> | RDF

2004-06-11 (Fri)

[Ruby] linux-gnu問題再燃

なかださんが作ったパッチをちょっといじって、linuxだけに限定したやつをruby-dev MLへ投げた。 [ruby-dev:23685]


2004-06-12 (Sat)

[Soft] lftp 3.0.6

Changes:

Completion for the bm: URL scheme was implemented and some bugs were fixed.

bm:なんて使えるんだ。ftp://ftp.iij.ad.jp/bub/GNU/をgnuで登録してるんだけど、

% lftp bm:gnu/gcc/

でftp://ftp.iij.ad.jp/bub/GNU/gcc/に直接行けるようだ。なるほど。
しかし、bm:でcompletionってのがなんだかよくわからない。


2004-06-13 (Sun)

[CVS] 改竄実験(1)

CVSのrepositoryを改竄した場合、どのような影響が出るのか実験してみる。

% repo=$PWD/cvs-repository
% cvs -d $repo init
% mkdir tmp; cd tmp
% cvs -d $repo import -m import foo eban init
% cd ..
% cvs -d $repo co foo
% cd foo
% echo '1. foo' > foo.txt
% cat foo.txt
1. foo
% cvs add foo.txt
% cvs ci -m "" foo.txt
% echo '2. bar' >> foo.txt
% cat foo.txt
1. foo
2. bar
% cvs ci -m "" foo.txt
% echo '3. hoge' >> foo.txt
% cat foo.txt
1. foo
2. bar
3. hoge
% cvs ci -m "" foo.txt
% cvs co -p -r1.1 foo/foo.txt
1. foo

ここで直接$repo/foo/foo.txt,vを書き換えて、 2. barを追加した変更(1.2)を削除すると、

% cvs update
% cvs co -p -r1.1 foo/foo.txt
1. foo
3. hoge

となる。working spaceでのupdateは何もおこらず、 1.1を取り出すとあきらかに違うものが出てくる。

CVSのrepositoryは最新から過去への差分のかたまりになっているので、 改竄は過去へ影響を与える。 こういう単純な改竄は簡単に検出が可能。

[CVS] 改竄実験(2)

最新を改竄した場合はどうなるのか?先のfoo.txt,vを元に戻し、

1.3
log
@*** empty log message ***
@
text
@1. foo
2. bar
3. hoge
4. fuga
@

のように4. fugaを加えてみた。 この状態のままworking spaceでcvs updateしてもなにもおこらない。 cvs diffしても差がない。でもcoすると

% cvs co -p foo/foo.txt
1. foo
2. bar
3. hoge
4. fuga
% cvs co -p -r1.1 foo/foo.txt
1. foo
4. fuga

のように4. fugaが追加されている。

ということはどっちにしても常にcvs updateで同期を取ってるworking spaceへ改竄の伝播は不可能で、最新をcoした結果との比較で確認は可能になる。

問題は途中を改竄した場合で、2つのrevisionをいじって矛盾がないような変更をすると、 そこだけ改竄が可能となる。 まあ、そんなところをピンポイントで改竄してもあまり意味がないけど、 結局厳密にチェックするには各revision間での差分を見るしかないのかなあ。

やっぱcommit mailにmd5sumの結果も入れとくというのが、なにかあったときに確認が楽か。


2004-06-14 (Mon)

[Cygwin] OpenSSH

なんか最近VMware上のCygwinへsshして放っておくといつのまにかコネクションが切れてることが多い。 いつからだろう。ServerAliveIntervalを指定してみるか。


2004-06-15 (Tue)

[Ruby] www.ruby-lang.org復活

みなさん、おつかれさまです。

[CVS] commitinfoとloginfo

これってcommitinfoじゃなくてloginfoを使えって話じゃないだろうか。 MD5はこんな感じ?

cvs -d /some/where/repository co -p -kb module/file | md5sum

あとでrubyのCVSROOTのloginfoを調べよう。


2004-06-16 (Wed)

[Soft] Bash Blogger

Bashといいつつも#!/bin/shだったりするあたりはLinux使い? 考え方はとてもシンプルで面白い。


2004-06-17 (Thu)

[Mail] ドイツ語のspam

最近やたらとドイツ語だかオランダ語だかわからないメールが来る。 突然来るようになっても学習してないからすり抜けちゃうんだよなあ。

[Mail] In-Reply-ToとReferencesの追加

なかださんが我慢できないらしいので、In-Reply-ToとReferncesを追加する小細工をruby-dev MLの設定に入れた。 [ruby-talk:102350]の$DIRだけ変えただけなんだけど、なぜか [ruby-dev:23708]にはついてくれない。 どうも$Envelopeは'h:subject'のようにh:が必要らしい。 で、その後該当するメールが来ないので、うまくいってんだかどうかは不明。


2004-06-18 (Fri)

[Browser] Firefox 0.9

defaultのテーマは前のほうがよかったかな。

[CVS] loginfo

loginfoからversion.hを更新する実験。

DEFAULT work=`mktemp -d`;\
cd $work;\
cvs -Q -d %r co %p/version.h;\
version.hを変更;\
cvs -d %e ci -Q -m `date +%Y-%m-%d` %p/version.h;\
rm -rf $work

これで、できそう。

ここでciしてしまうと無限に自分自身が呼ばれそうだが、 呼ばれても二度目以降はversion.hに変化はないので、そこで止まる。 cvs ciは変化がなければ何もしないから、loginfoも動かない。 まあ、ちょっと無駄なので、ちゃんとやるならversion.hかどうかを見たほうがいいか。 23:59:59あたりにコミットされると非常に微妙だし。


2004-06-19 (Sat)

[CVS] loginfo

実際は$workのように変数は使えないとか、backslashでの継続もできないとかいろいろ制約があるのでshell scriptにする必要がある。 あ、あとbranchをどうするかだな。これは標準入力から取り出すしかないか。 結構難しいもんだね。

やはりloginfo_ruby.rbをいじるべきか。


2004-06-20 (Sun)

[zsh] diffの補完

zshを使っているとdiffの2番目の引数のファイルを補完できないのはなぜだ? しかたなく\diffとしてみたり。

[CVS] 1.11と1.12

実際にrubyのCVSROOTでversion.h更新実験をしたら、1.11だとブロックしてしまうことがわかった。 ローカルで実験してたのは1.12.9で、これなら問題ない。 困ったな。


<Prev(,) | Next(.)> | Recent(/)>> | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!