わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

世界のナベアツでSubversionの動作確認

研究活動の宿題として,次の2点の動作確認を,指摘したりされたりしました.

  • Subversionでfile://のリポジトリURLを使って,通信なしでリビジョン管理ができること
  • コミットをしていき,だいぶ前のコミット(特定のリビジョンの修正)だけ,なしにすること

学生にさせたいところですが*1世界のナベアツの「3の倍数と3のつく数字の時だけアホになる」でやってみるといいなあとか思いまして,スクリプトを書きました.

#!/bin/sh
LANG=C; export LANG
LC_ALL=C; export LC_ALL

DIR_REPO=/tmp/nabe_r
DIR_WORK=/tmp/nabe_w
FILE_NUM=numebrs.txt
FILE_NUM_BAK=tmp_numebrs.txt
[ -d $DIR_REPO ] && rm -Rf $DIR_REPO
[ -d $DIR_WORK ] && rm -Rf $DIR_WORK

mkdir $DIR_REPO
svnadmin create $DIR_REPO
mkdir $DIR_WORK
svn co file://$DIR_REPO $DIR_WORK

cd $DIR_WORK
(for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40; do echo $i; done) > $FILE_NUM
svn add $FILE_NUM
svn ci -m 'setup'

sed -e '1c ichi' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu -m 'say 1'

sed -e '2c ni' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu -m 'say 2'

sed -e '3c SAN' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 3 acting like a fool'

sed -e '4c shi' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu -m 'say 4'

sed -e '5c go' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu -m 'say 5'

sed -e '6c ROKU' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 6 acting like a fool'

sed -e '7c shichi' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu -m 'say 7'

sed -e '8c hachi' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu -m 'say 8'

sed -e '9c KYU' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 9 acting like a fool'

sed -e '10c ju' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu -m 'say 10'

sed -e '11c juichi' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu -m 'say 11'

sed -e '12c JUNI' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 12 acting like a fool'

sed -e '13c JUSAN' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 13 acting like a fool'

sed -e '14c jushi' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu -m 'say 14'

# mistake on purpose
sed -e '15c jugo' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu -m 'say 15'

sed -e '16c juroku' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu -m 'say 16'

sed -e '17c jushichi' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu -m 'say 17'

sed -e '18c JUHACHI' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 18 acting like a fool'

sed -e '19c jukyu' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu -m 'say 19'

sed -e '20c niju' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu -m 'say 20'

sed -e '21c NIJUICHI' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 21 acting like a fool'

sed -e '22c nijuni' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu -m 'say 22'

sed -e '23c NIJUSAN' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 23 acting like a fool'

sed -e '24c NIJUSHI' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 24 acting like a fool'

sed -e '25c nijugo' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu -m 'say 25'

sed -e '26c nijuroku' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu -m 'say 26'

sed -e '27c NIJUSHICHI' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 27 acting like a fool'

sed -e '28c nijuhachi' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu -m 'say 28'

sed -e '29c nijukyu' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu -m 'say 29'

sed -e '30c SANJU' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 30 acting like a fool'

sed -e '31c SANJUICHI' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 31 acting like a fool'

sed -e '32c SANJUNI' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 32 acting like a fool'

sed -e '33c SANJUSAN' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 33 acting like a fool'

sed -e '34c SANJUSHI' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 34 acting like a fool'

sed -e '35c SANJUGO' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 35 acting like a fool'

sed -e '36c SANJUROKU' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 36 acting like a fool'

sed -e '37c SANJUSHICHI' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 37 acting like a fool'

sed -e '38c SANJUHACHI' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 38 acting like a fool'

sed -e '39c SANJUKYU' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 39 acting like a fool'

sed -e '40c yonju' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu -m 'say 40'

# correct 15
svn merge -r 16:15 $FILE_NUM
svn ci -m 'pull back 15'
sed -e '15c JUGO' $FILE_NUM > $FILE_NUM_BAK
mv $FILE_NUM_BAK $FILE_NUM
svn ci --username nabeatsu_aho -m 'say 15 acting like a fool'

svn log $FILE_NUM
cat $FILE_NUM

Rubyスクリプトを書いて,生成させています.コメントの通り,15を言うときに,わざと間違ってアホになっていません.
実行結果は:

Checked out revision 0.
A         numebrs.txt
Adding         numebrs.txt
Transmitting file data .
Committed revision 1.
Sending        numebrs.txt
Transmitting file data .
Committed revision 2.
(略)
Sending        numebrs.txt
Transmitting file data .
Committed revision 43.
------------------------------------------------------------------------
r43 | nabeatsu_aho | 2008-05-26 05:28:16 +0900 (Mon, 26 May 2008) | 1 line

say 15 acting like a fool
------------------------------------------------------------------------
r42 | nabeatsu | 2008-05-26 05:28:15 +0900 (Mon, 26 May 2008) | 1 line

pull back 15
------------------------------------------------------------------------
r41 | nabeatsu | 2008-05-26 05:28:13 +0900 (Mon, 26 May 2008) | 1 line

say 40
------------------------------------------------------------------------
r40 | nabeatsu_aho | 2008-05-26 05:28:12 +0900 (Mon, 26 May 2008) | 1 line

say 39 acting like a fool
------------------------------------------------------------------------
r39 | nabeatsu_aho | 2008-05-26 05:28:11 +0900 (Mon, 26 May 2008) | 1 line

say 38 acting like a fool
------------------------------------------------------------------------
r38 | nabeatsu_aho | 2008-05-26 05:28:10 +0900 (Mon, 26 May 2008) | 1 line

say 37 acting like a fool
------------------------------------------------------------------------
r37 | nabeatsu_aho | 2008-05-26 05:28:09 +0900 (Mon, 26 May 2008) | 1 line

say 36 acting like a fool
------------------------------------------------------------------------
r36 | nabeatsu_aho | 2008-05-26 05:28:08 +0900 (Mon, 26 May 2008) | 1 line

say 35 acting like a fool
------------------------------------------------------------------------
r35 | nabeatsu_aho | 2008-05-26 05:28:07 +0900 (Mon, 26 May 2008) | 1 line

say 34 acting like a fool
------------------------------------------------------------------------
r34 | nabeatsu_aho | 2008-05-26 05:28:06 +0900 (Mon, 26 May 2008) | 1 line

say 33 acting like a fool
------------------------------------------------------------------------
r33 | nabeatsu_aho | 2008-05-26 05:28:05 +0900 (Mon, 26 May 2008) | 1 line

say 32 acting like a fool
------------------------------------------------------------------------
r32 | nabeatsu_aho | 2008-05-26 05:28:04 +0900 (Mon, 26 May 2008) | 1 line

say 31 acting like a fool
------------------------------------------------------------------------
r31 | nabeatsu_aho | 2008-05-26 05:28:03 +0900 (Mon, 26 May 2008) | 1 line

say 30 acting like a fool
------------------------------------------------------------------------
r30 | nabeatsu | 2008-05-26 05:28:02 +0900 (Mon, 26 May 2008) | 1 line

say 29
------------------------------------------------------------------------
r29 | nabeatsu | 2008-05-26 05:28:01 +0900 (Mon, 26 May 2008) | 1 line

say 28
------------------------------------------------------------------------
r28 | nabeatsu_aho | 2008-05-26 05:28:00 +0900 (Mon, 26 May 2008) | 1 line

say 27 acting like a fool
------------------------------------------------------------------------
r27 | nabeatsu | 2008-05-26 05:27:59 +0900 (Mon, 26 May 2008) | 1 line

say 26
------------------------------------------------------------------------
r26 | nabeatsu | 2008-05-26 05:27:58 +0900 (Mon, 26 May 2008) | 1 line

say 25
------------------------------------------------------------------------
r25 | nabeatsu_aho | 2008-05-26 05:27:57 +0900 (Mon, 26 May 2008) | 1 line

say 24 acting like a fool
------------------------------------------------------------------------
r24 | nabeatsu_aho | 2008-05-26 05:27:56 +0900 (Mon, 26 May 2008) | 1 line

say 23 acting like a fool
------------------------------------------------------------------------
r23 | nabeatsu | 2008-05-26 05:27:55 +0900 (Mon, 26 May 2008) | 1 line

say 22
------------------------------------------------------------------------
r22 | nabeatsu_aho | 2008-05-26 05:27:54 +0900 (Mon, 26 May 2008) | 1 line

say 21 acting like a fool
------------------------------------------------------------------------
r21 | nabeatsu | 2008-05-26 05:27:53 +0900 (Mon, 26 May 2008) | 1 line

say 20
------------------------------------------------------------------------
r20 | nabeatsu | 2008-05-26 05:27:52 +0900 (Mon, 26 May 2008) | 1 line

say 19
------------------------------------------------------------------------
r19 | nabeatsu_aho | 2008-05-26 05:27:51 +0900 (Mon, 26 May 2008) | 1 line

say 18 acting like a fool
------------------------------------------------------------------------
r18 | nabeatsu | 2008-05-26 05:27:50 +0900 (Mon, 26 May 2008) | 1 line

say 17
------------------------------------------------------------------------
r17 | nabeatsu | 2008-05-26 05:27:49 +0900 (Mon, 26 May 2008) | 1 line

say 16
------------------------------------------------------------------------
r16 | nabeatsu | 2008-05-26 05:27:48 +0900 (Mon, 26 May 2008) | 1 line

say 15
------------------------------------------------------------------------
r15 | nabeatsu | 2008-05-26 05:27:47 +0900 (Mon, 26 May 2008) | 1 line

say 14
------------------------------------------------------------------------
r14 | nabeatsu_aho | 2008-05-26 05:27:46 +0900 (Mon, 26 May 2008) | 1 line

say 13 acting like a fool
------------------------------------------------------------------------
r13 | nabeatsu_aho | 2008-05-26 05:27:45 +0900 (Mon, 26 May 2008) | 1 line

say 12 acting like a fool
------------------------------------------------------------------------
r12 | nabeatsu | 2008-05-26 05:27:44 +0900 (Mon, 26 May 2008) | 1 line

say 11
------------------------------------------------------------------------
r11 | nabeatsu | 2008-05-26 05:27:43 +0900 (Mon, 26 May 2008) | 1 line

say 10
------------------------------------------------------------------------
r10 | nabeatsu_aho | 2008-05-26 05:27:42 +0900 (Mon, 26 May 2008) | 1 line

say 9 acting like a fool
------------------------------------------------------------------------
r9 | nabeatsu | 2008-05-26 05:27:41 +0900 (Mon, 26 May 2008) | 1 line

say 8
------------------------------------------------------------------------
r8 | nabeatsu | 2008-05-26 05:27:40 +0900 (Mon, 26 May 2008) | 1 line

say 7
------------------------------------------------------------------------
r7 | nabeatsu_aho | 2008-05-26 05:27:39 +0900 (Mon, 26 May 2008) | 1 line

say 6 acting like a fool
------------------------------------------------------------------------
r6 | nabeatsu | 2008-05-26 05:27:38 +0900 (Mon, 26 May 2008) | 1 line

say 5
------------------------------------------------------------------------
r5 | nabeatsu | 2008-05-26 05:27:37 +0900 (Mon, 26 May 2008) | 1 line

say 4
------------------------------------------------------------------------
r4 | nabeatsu_aho | 2008-05-26 05:27:36 +0900 (Mon, 26 May 2008) | 1 line

say 3 acting like a fool
------------------------------------------------------------------------
r3 | nabeatsu | 2008-05-26 05:27:35 +0900 (Mon, 26 May 2008) | 1 line

say 2
------------------------------------------------------------------------
r2 | nabeatsu | 2008-05-26 05:27:34 +0900 (Mon, 26 May 2008) | 1 line

say 1
------------------------------------------------------------------------
r1 | takehiko | 2008-05-26 05:27:33 +0900 (Mon, 26 May 2008) | 1 line

setup
------------------------------------------------------------------------
ichi
ni
SAN
shi
go
ROKU
shichi
hachi
KYU
ju
juichi
JUNI
JUSAN
jushi
JUGO
juroku
jushichi
JUHACHI
jukyu
niju
NIJUICHI
nijuni
NIJUSAN
NIJUSHI
nijugo
nijuroku
NIJUSHICHI
nijuhachi
nijukyu
SANJU
SANJUICHI
SANJUNI
SANJUSAN
SANJUSHI
SANJUGO
SANJUROKU
SANJUSHICHI
SANJUHACHI
SANJUKYU
yonju

差分は:

$ svn diff -r 41:43 /tmp/nabe_w/numebrs.txt
Index: /tmp/nabe_w/numebrs.txt
===================================================================
--- /tmp/nabe_w/numebrs.txt     (revision 41)
+++ /tmp/nabe_w/numebrs.txt     (revision 43)
@@ -12,7 +12,7 @@
 JUNI
 JUSAN
 jushi
-jugo
+JUGO
 juroku
 jushichi
 JUHACHI

参考にしたもの

*1:もし本人がこのエントリを読んでいたら,ここの例は学内発表にも修士論文にも使えないので,自分なりにきちんと例を作って確認するように.

*2:改めて見直すと,9,19,29,39は「きゅう」「じゅうく」「にじゅうく」「さんじゅうきゅう」と言ってるなあ.