cvs で元の日付のまま import2007年05月09日 11時33分56秒

cvs import には -d のオプションがある。

% cvs import
Usage: cvs import [-d] [-k subst] [-I ign] [-m msg] [-b branch]
    [-W spec] repository vendor-tag release-tags...
        -d      Use the file's modification time as the time of import.
        -k sub  Set default RCS keyword substitution mode.
        -I ign  More files to ignore (! to reset).
        -b bra  Vendor branch id.
        -m msg  Log message.
        -W spec Wrappers specification line.
(Specify the --help global option for a list of other help options)

他の cvs のコマンドだと -d は、ディレクトリ名を指定することが多い。

どこかから、オープンソースのコードを取って来て、手元で変更したくなると、cvs に入れる。その時に、import に -d を必ず付ける必要がある。

import は import 時の時刻を使ってしまうため、configure などが正しく動かなくなる。configure は configure.in から生成されている為、configure は configure.in よりも新しくなくてはならない。しかし、ファイル名順だと、configure が前に来るのだ。そのために、cvs import をすると、configure の方が古くなる。そして、configure を走らせると、configure から作り直そうとするのだ。もし、正しい automake などが入っていれば、問題ないのかも知れないが、ここが正しく動いてくれないことも多い。

それを回避するために、cvs import -d を使う。