完全に自分用メモ
robocopy src dst /MIR /R:0 /W:0 /LOG:logfile.txt /NDL /TEE /XJD /XJF /DCOPY:T
/MIR
バックアップ元とバックアップ先をミラーリングします。
/R:0
ファイルコピーに失敗した場合に再度コピーを試す回数です。
/W:0
再試行する時の待ち時間(秒)です。
/LOG:
ログファイル名
/NP
バックアップ中の進行状況を表示しません。
/NDL
バックアップ結果として、ログファイルにファイルのみが出力されるようになります。
/TEE
バックアップの結果をコマンドプロンプトとログファイルの両方に出力します。
/XJD
フォルダのジャンクション・ポイントを除外する
/XJF
ファイルのジャンクション・ポイントを除外する
/DCOPY:T
日付を保存
Rubyの開発するときに、いつもビルドディレクトリを分けているので flymake効かなかったんだけど、
どうせ、build/Makefile決め打ちでいいんだから、出来るはずだよなーと思ってやってみたら出来た。
だいたい http://www.emacswiki.org/emacs/FlyMake に載ってるサンプル通りなんだけど、あれは変に柔軟にしようとして、プロジェクト毎に場所を別途教えてあげないといけないので、余計めんどくささ感が上がっていた気がして敬遠していたの。
emacs lisp分かんないので、きっと改善の余地があると思うので晒します。叩いてください。
どうせ、build/Makefile決め打ちでいいんだから、出来るはずだよなーと思ってやってみたら出来た。
だいたい http://www.emacswiki.org/emacs/FlyMake に載ってるサンプル通りなんだけど、あれは変に柔軟にしようとして、プロジェクト毎に場所を別途教えてあげないといけないので、余計めんどくささ感が上がっていた気がして敬遠していたの。
emacs lisp分かんないので、きっと改善の余地があると思うので晒します。叩いてください。
http://gnu.wildebeest.org/blog/mjw/2012/03/16/automagically-merging-changelog-files-with-mercurial-or-git/
うーむ、いまどきは project/.git/info/attributes をいじるのは古いのだな。git 1.7.4以降だからCentOS6だと使えないのが玉に瑕だけど。
GIT
For git add the following lines to your ~/.gitconfig
[merge "merge-changelog"]
name = GNU-style ChangeLog merge driver
driver = /usr/local/bin/git-merge-changelog %O %A %B
[core]
attributesfile = ~/.gitattributes
And add the following line to ~/.gitattributes
ChangeLog merge=merge-changelog
うーむ、いまどきは project/.git/info/attributes をいじるのは古いのだな。git 1.7.4以降だからCentOS6だと使えないのが玉に瑕だけど。
glibcでrealloc(ptr, 0)とわたしたときに、mtraceのログがおかしいというバグがあってその議論が面白かったのでご紹介。
http://sourceware.org/bugzilla/show_bug.cgi?id=14981
reallocという関数がある。まあ、みなさんよくご存知のように realloc(ptr, size)とわたしたときにptrをsizeの大きさに拡張(縮小)してくれる関数である。
malloc(0)がNULLを返しても非NULLを返してもいいように、realloc(ptr, 0)も挙動に実装の自由度がある
1.realloc(ptr, 1) と同等(mallocが非NULLを返すケースではこれが普通)
2.ptrは解放され、NULLが返る(mallocがNULLを返すケースでは常識的な挙動)
3.ptrは解放されず、NULLが返る(mallocがNULLを返すケースでは同じくらい常識的な挙動、malloc(0)をエラーとみなす哲学だと関数の最初に引数チェックをするのは理解できる)
The Austin Group Defect Report #400
http://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_400.htm
によると、AIXとglibcが2、BSD系が3のようである。ところでPOSIXはテキストの書き方がわるくて3しか認めないような文章になってるから規格を直さないといけないんじゃないかな。という議論をしている
で、glibcに戻るとglibc 2.17までの挙動は
・malloc(0)は非NULLを返す(環境によるけど malloc(16)と同じになると思う)
・しかしなぜか realloc(ptr, 0) は free(ptr) と同じ挙動をし、NULLを返す(0サイズのメモリをアロケートしてはくれない)
・そしてmtraceのrealloc hookではrealloc(ptr, 0) で 非NULL が返ってくることを期待していてNULLは全部エラーとして扱っている
という不整合があり、正しくログがとれていなかった。
で、いつものようにみんなで規格書パース合戦を繰り広げた後、Roland McGrath が仲裁にはいって、ログと実際の挙動が違っているのは明らかにバグだから2.18ではmtraceを変える。realloc(ptr, 0)の挙動を変えるかどうかは規格解釈をglibc MLで議論するのがそもそも間違っていて、Austinで議論してから、必要なら変える。このコーナーケース
について変えてはいけないとは思わないが、規格に対する推測をもとに変更はしない。という結論になった。
まあ、順当なところかな。malloc(0)とrealloc(ptr, 0)の挙動が一貫してないのは気持ち悪いけど。
http://sourceware.org/bugzilla/show_bug.cgi?id=14981
reallocという関数がある。まあ、みなさんよくご存知のように realloc(ptr, size)とわたしたときにptrをsizeの大きさに拡張(縮小)してくれる関数である。
malloc(0)がNULLを返しても非NULLを返してもいいように、realloc(ptr, 0)も挙動に実装の自由度がある
1.realloc(ptr, 1) と同等(mallocが非NULLを返すケースではこれが普通)
2.ptrは解放され、NULLが返る(mallocがNULLを返すケースでは常識的な挙動)
3.ptrは解放されず、NULLが返る(mallocがNULLを返すケースでは同じくらい常識的な挙動、malloc(0)をエラーとみなす哲学だと関数の最初に引数チェックをするのは理解できる)
The Austin Group Defect Report #400
http://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_400.htm
によると、AIXとglibcが2、BSD系が3のようである。ところでPOSIXはテキストの書き方がわるくて3しか認めないような文章になってるから規格を直さないといけないんじゃないかな。という議論をしている
で、glibcに戻るとglibc 2.17までの挙動は
・malloc(0)は非NULLを返す(環境によるけど malloc(16)と同じになると思う)
・しかしなぜか realloc(ptr, 0) は free(ptr) と同じ挙動をし、NULLを返す(0サイズのメモリをアロケートしてはくれない)
・そしてmtraceのrealloc hookではrealloc(ptr, 0) で 非NULL が返ってくることを期待していてNULLは全部エラーとして扱っている
という不整合があり、正しくログがとれていなかった。
で、いつものようにみんなで規格書パース合戦を繰り広げた後、Roland McGrath が仲裁にはいって、ログと実際の挙動が違っているのは明らかにバグだから2.18ではmtraceを変える。realloc(ptr, 0)の挙動を変えるかどうかは規格解釈をglibc MLで議論するのがそもそも間違っていて、Austinで議論してから、必要なら変える。このコーナーケース
について変えてはいけないとは思わないが、規格に対する推測をもとに変更はしない。という結論になった。
まあ、順当なところかな。malloc(0)とrealloc(ptr, 0)の挙動が一貫してないのは気持ち悪いけど。
なんかでてきた。またなくすと思うのでメモっとこう
http://togetter.com/li/22380?f
nalsh NetBSDのsetenv(3)ってnameに=を含む引数を許すのか
tnozaki @nalsh setenv("FOO=bar", "buzz") の場合、environは FOO=buzz になったはず、つまり '=' 以降は無視されるちう感じだったかと