実際には、適切に処理された準拠メールよりもはるかに多くの例外が、あなたが処方する規則に当てはまることになると思います。手動での修正と「コンピューターが宿題を食べた」という主張の頭痛の種になるでしょう。
これは CS 200 レベルのクラスなので、何らかのバージョン管理システムを使用するように要求し、VCS が強制する厳格な構造を持つ自由形式の電子メールを解析する手間を省きます。あなたの学生もこの要件から恩恵を受けるでしょう。私の 10 歳の子供が Google ドキュメント内の自動改訂管理のメリットを理解できたなら、あなたの生徒は Mercurial や git、さらには (あえぎ!) Subversion を扱えると思います。
コメントに応じて追加
はい。ただし、Mercurial (およびおそらく git) では、「リポジトリ」は「ディレクトリ」を意味する派手な言葉であり、古い VCS モデルで期待されるような重い DBMS のようなものではありません。
学生として、仮説的な課題に取り組む方法は次のとおりです。
studenta@dorm$ hg clone https://Rich.univ.edu/studenta/cs208
$ cd cs208 ; broswer ./hw1.html
$ mkdir hw1 ; cd hw1 ; make my work files
$ hg add * ; hg commit -m "perfect the first time!" # updates locally only
$ make lots of bug fixes
$ hg commit -m "okay really done now"
$ hg push
# sleep, party, go to class with hangover
$ hg pull
$ browse hw2.html ; mkdir hw2
...
あなたが学生用リポジトリに配置した課題は、デモンストレーションのためだけのものでした。あなたが Rich.unix.edu マシンを「所有」しているため、彼らのプッシュは信頼できるものになります。あなたがしただろう
hg init $student/cs208
名簿の各学生について、Rich.univ.edu に(小さな) スクリプトを書きます。
- ご使用の環境で HTTPS と SSH のどちらが最適に機能するかを把握する
- 必要に応じて、学生のファイルにコメントを追加して、次のプルで取り上げます。
- すべてのやり取りの管理された便利なログ記録を用意します。
- 学生は、それが受け入れられたというプッシュの瞬間に肯定的なフィードバックを受け取ります
最後に、リポジトリ サーバーがダウンした場合、
$ hg export tip | mail -s "server down; assignment done" Rich@univ.edu
そして、タイムスタンプが付けられ、消化されたバージョンの提出物がまだあります。これには、提出者のためにコミットできる厳密な形式があります。
「リッチ博士、サーバーがダウンしました!!!」
「でも、メールでエクスポートを送ってくれましたよね?」
「もちろんです」
「まあ、マシンが元に戻ったら押してください。時間通りに完了したという証拠はすでにあります。」
「おお、リッチ博士、うねりだ!」