60秒でできること(svn)


『ソードフィッシュ』(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円ぐらいの安いキーボードを使っているので、ミスタッチ誘発します。
メカニカルスイッチの高価なキーボードなら、もっとスピードがあがるかもしれません。

コメント

  1. […] ← 60秒でできること(SVN) […]

タイトルとURLをコピーしました