『ソードフィッシュ』(Swordfish 2001年)
ヒュー・ジャックマンかっこいいです。映画も全体的に面白い。一番わくわくしたのが、60秒でハッキングするシーン。キーボードをぱちぱち叩いては、アクセス失敗、またばちばち叩いては失敗、よくあるハッキングシーンですが、とにかくキー打つのが早くて感心。60秒が長く感じます。(映画時間では長いですが)
実際60秒ってどれぐらいのことができるのでしょうか。svnを使いながら確認してみます。
前準備としてsvnインストール。
# apt-get install subversion
新規にレポジトリを作ります。reposと名づけました。
takk@deb8:~/dummy$ svnadmin create repos takk@deb8:~/dummy$ ls repos takk@deb8:~/dummy$
レポジトリに登録するファイルを作ります。work/main.cとしました。
takk@deb8:~/dummy$ mkdir work takk@deb8:~/dummy$ echo HELLO>work/main.c takk@deb8:~/dummy$ svn import -m "first" work file://$PWD/repos 追加しています work/main.c Committed revision 1. takk@deb8:~/dummy$
work/main.cは登録したので、削除します。
takk@deb8:~/dummy$ rm -rf work takk@deb8:~/dummy$ ls test_repos takk@deb8:~/dummy$
チェックアウトしてみます。
main.cだけでなく、隠しディレクトリとして.svnもありますので、たくさんファイルがファイルが生成されます。
takk@deb8:~/dummy$ svn co file://$PWD/repos/work work A work/main.c リビジョン 1 をチェックアウトしました。 takk@deb8:~/dummy$ find work work work/main.c work/.svn work/.svn/wc.db work/.svn/format work/.svn/tmp work/.svn/pristine work/.svn/pristine/a8 work/.svn/pristine/a8/a8eec30a5b2d71bc890175f5b361ebb28d7c54a8.svn-base work/.svn/entries takk@deb8:~/dummy$
main.cをC言語のプログラムにしてみましょう。
takk@deb8:~/dummy$ cat <<.>work/main.c > #include <stdio.h> > > int main() > { > printf("HELLO\n"); > } > . takk@deb8:~/dummy$ gcc main.c takk@deb8:~/dummy$ gcc work/main.c takk@deb8:~/dummy$ ls a.out repos work takk@deb8:~/dummy$ ./a.out HELLO takk@deb8:~/dummy$
うまく動くようですので、コミットします。
takk@deb8:~/dummy$ svn ci work/main.c -m "HELLO" 送信しています work/main.c ファイルのデータを送信しています . Committed revision 2. takk@deb8:~/dummy$
ではこの一連の操作が60秒でこなせるか、プロンプトを時間表示させて確認していきます。
takk@deb8:~/dummy$ PS1="\t$ " 23:49:05 $ rm -rf *
23:50:20$ svnadmin create repos 23:50:23$ mkdir work;echo HELLO>work/main.c 23:50:33$ svn import -m"first" work file://$PWD/repos 追加しています work/main.c Committed revision 1. 23:50:42$ rm -rf work 23:50:44$ svn co !-2$ work svn co file://$PWD/repos work A work/main.c リビジョン 1 をチェックアウトしました。 23:50:50$ cat work/main.c HELLO 23:50:53$ cat <<.>!$ cat <<.>work/main.c > #include <stdio.h> > > int main() > { > printf("HELLO\n"); > } > . 23:51:10$ cat !-2$ cat work/main.c #include <stdio.h> int main() { printf("HELLO\n"); } 23:51:15$ gcc !$ gcc work/main.c 23:51:17$ ./a.out HELLO 23:51:18$ svn ci !-2$ -m"second" svn ci work/main.c -m"second" 送信しています work/main.c ファイルのデータを送信しています . Committed revision 2. 23:51:26$ svn update work Updating 'work': リビジョン 2 です。 23:51:28$
23:50:20〜23:51:28なので、1分08秒かかったことになります。たった60秒ではチェックアウトして修正してコミットもできませんでした。
まあ使ってるキーボードにもよるかもしれません。私はメンブレン方式の600円ぐらいの安いキーボードを使っているので、ミスタッチ誘発します。
メカニカルスイッチの高価なキーボードなら、もっとスピードがあがるかもしれません。
コメント
[…] ← 60秒でできること(SVN) […]