git filter-branch

履歴からファイルを消してリポジトリを軽量化する。

まず関係者全員にpushしてローカルのリポジトリを削除してもらう。

$ git filter-branch -f --prune-empty --index-filter 'git rm -fr --ignore-unmatch data/backup/' -- 51ee5a93ac..HEAD
$ git show-ref
(orignalなんたらってrefが出来ているはず)
$ git update-ref -d original/なんたら
$ git push -f origin master

後は全員でリポジトリをクローンしなおす。
そうしないとpullでマージされてpushしたら折角消したものが復活してしまう。

cygwinでwincred

http://d.hatena.ne.jp/shive/20141024/1414112031

最近gitをcygwin版に変更しました。そしたらwincredが使えなくなってしまった。

msysgitからlibexec/git-core/git-credential-wincred.exeをcygwin側の同じところにコピーしたら使えました。

快適 git-2.1 生活。msysgit-1.9よりcygwinの方が速いような気がする。
先日TortoiseGITも試験的にcygwin/git対応を始めたようです。
https://tortoisegit.org/docs/tortoisegit/tgit-dug-settings.html

概ね良好ですが、うっかりmsysgitでgit stするとインデクスが書き換わる?ようで全ファイル変更行なしなのに変更扱いになってしまうので、やるなら完全移行が必要かもしれません。
cygwin→msysの問題なのかgit-1.9→git-2.1の問題なのかわかりませんが…。

追記

TortoiseGIT、ブランチ一覧を取るのに失敗する…。ログウィンドウからブランチが切り替えられない。

gitのhttpパスワード

gitでhttpを使う場合、毎回パスワードを聞かれるのが面倒だったのでちょっと調べてみた。

windowsのmsysgitはwincredを使うらしい。

$ git config --global credential.helper wincred

これでok。

追記

http://orangeclover.hatenablog.com/entry/2014/01/15/215758

どうやら msysgit-1.8.5.2 だとエラーになるっぽい。ちょっとハマった。

.batが実行できなくなった

http://www.atmarkit.co.jp/ait/articles/1303/15/news042.html
Windows TIPS:.batファイルの関連付けを元に戻す

意図的にやったわけじゃないので何かの操作で自動で設定されるみたい。
.bat に関連付けが出来る必要があるのだろうか?

RSA暗号書いてみた

https://github.com/shive/try_rsa

$ make keygen
python keygen.py
P = fe03
Q = fc95
N = fa9ecbbf / log2(N): 31.9694
K = 10001
U = da17e869 (V = dec9)
len(ORIGIN) = 22 b'\x8c\xc3\x92r\x82\xe2\x8a^\x82\xc6\x82\xd1\x82\xb1\x82\xde\x90\x85\x82\xcc\x89\xb9'
 origin_number: 5.485 b989cc828590de82b182d182c6825e8ae2827292c38c
encrypt_number: 5.993 dcbe91b6fd2c1e876b607a14d133386db8e174c221a9f723
decrypt_number: 5.485 b989cc828590de82b182d182c6825e8ae2827292c38c

$ make
scons -Q
scons: `.' is up to date.
./rsa
origin: 古池や蛙とびこむ水の音
0000b989cc828590de82b182d182c6825e8ae2827292c38c
encrypt: (binary)
dcbe91b6fd2c1e876b607a14d133386db8e174c221a9f723
decrypt: 古池や蛙とびこむ水の音
0000b989cc828590de82b182d182c6825e8ae2827292c38c

公開鍵は(0xfa9ecbbf,0x10001)。OpenSSLはK=0x10001で固定らしい。本来何でもいい。秘密鍵は(0xfa9ecbbf,0xda17869)。
これだと鍵長は32bitということでいいのかな?SSH用の鍵とか鍵長を2048bitとかにしてるから素因数分解をするのは不可能というのがよくわかる。この32bitでももう想像もつかん。

gnu find で最近編集したファイル一覧表示

3日(日付じゃなくて24H*3=72時間)以内に編集したファイル一覧

$ find -type f -mtime -3 | xargs ls -lht
-rw-r--r-- 1 hoge None  13K 410 17:14 ./aaa.txt
-rw-r--r-- 1 hoge None 1.2K 49 11:08 ./hoge/hoge.txt

3日以内(now-mtime<24H*3)は"-mtime -3"。ピッタリ3日前(24H*3

$ touch -m -d '2014/4/10 17:14' aaa.txt