Subversionを教えてみた

会社の若い衆と一緒に仕事をすることになり、とりあえず最低限必要なSubversionの使い方を教えてみた。テキストはもちろん↓これ。
Subversionの基礎練習
テキスト通りに(いや、時々脱線しながら)実演するワタシの隣で、ふむふむ、という感じで頷きながら聞いている若い衆。分かってくれているのかな?と思って水を向けてみると、

  • 別の人が同じファイルを編集していてコミットしたらどうなるのか?

という非常に鋭い質問が。なんだ、分かってるじゃん。素晴らしい。「そうだね、やってみようか」と、別のターミナルからログインしてチェックアウトしてhogeって見せる。
commitするとエラーメッセージ、updateしてコンフリクト、いろんな状態のファイルがたくさんできて、元のファイルをどうにかしてresolvedするとファイルが消えて、commit。
変更がかぶらないと、commitはできないけど、updateするとmergeされて、diffで確認して、commit。でもこれは機械的にmergeできると判断してmergeされているだけだから、ソースコードとして意図したとおりに動作するかどうかは分からないよね、だからテストを書くんだよ。
…ありゃ、説明しようと思っていたことよりも随分先へ進んでしまった。優秀な後輩に教えるって楽しいね。