3ヶ月ほど前に、10年以上使い続けたCVSからMercurialにソース管理を移行しました。(Subversion は手になじまなかった。)
移行して不便に感じるのはViewVCが使えなくなった事くらいで、普段はあまり違いは感じていませんが、1つだけ直感的にやり方が分からなくて困る事があります。
ワーキングディレクトリで作業中に誤って必要なファイルを削除してしまった場合、例えば
$ ls -l total 8 -rw-r--r-- 1 user staff 1345 Jan 16 22:33 Makefile drwxr-xr-x 5 user staff 170 Jan 16 22:45 help/ drwxr-xr-x 5 user staff 170 Jan 16 22:33 tutorial/ $ rm Makefile
としてしまった場合、必要なファイルが存在しない事は hg status コマンドで調べる事ができます。
$ hg status ! Makefile
CVS(やSubversion)では、誤って削除したファイルはcvs update(svn up)で元に戻すことができますが、Mercurial ではそうはいきません。
$ hg update ファイル状態: 更新数 0、マージ数 0、削除数 0、衝突未解決数 0 $ ls -l total 0 drwxr-xr-x 5 user staff 170 Jan 16 22:45 help/ drwxr-xr-x 5 user staff 170 Jan 16 22:33 tutorial/
このように削除されたファイルはそのままです。
Mercurial では update コマンドはワーキングディレクトリのリビジョンを変更するコマンドなので、この動きで正しいらしいのですが、CVS等から乗り換えてくるとちょっとビックリします。
このような場合はhg revertを使うのが正しいらしいです。
$ hg revert Makefile $ ls -l total 8 -rw-r--r-- 1 user staff 1345 Feb 2 02:41 Makefile drwxr-xr-x 5 user staff 170 Jan 16 22:45 help/ drwxr-xr-x 5 user staff 170 Jan 16 22:33 tutorial/]]>
WireSharkを使ってダンプを解析するためのキャプチャファイルをtcpdumpで保存するためのオプションを毎回忘れてしまうのでメモ。
tcpdump -n -i en0 -s 0 -w dumpfile.cap [filter]
tcpdump -w filenameだけでも、キャプチャファイルは作れるが、デフォルトではキャプチャ用のバッファ(snaplen)が 68バイトと小さく(TCP のヘッダー分のサイズらしい)、あふれたデータを取りこぼしてしまいます。tcpdump で見ている分には必要の無いデータですが、WireShark で「Follow TCP Stream」を見ようとした時に壊れていたりします。
そこでオプション ‘-s’ を指定して snaplen のサイズを大きく設定しています。(0は無制限、と言っても65535バイトくらいしか見た事ない)
(Open)Solarisの場合は悩む事無く、以下のように普通にファイルに保存するだけで大丈夫です。
snoop -r -d bge0 -o dumpfile.cap [filter]]]>