『ソードフィッシュ』(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) […]