« 2004年8月 | トップページ | 2004年10月 »

2004年9月30日 (木)

TortoiseCVSとWinCVS

WinCVSでpserverのレポジトリをチェックアウトして、その作業コピーをTortoiseCVSでUpdateやCommitしようとしてもうまくいかないことがある。


cvs server: cannot open (...): Permission denied
protocol error: directory '(...)' not within root '(...)'
その場合、上記のnot within root '(...)'の(...)部分のパス区切り文字は、directory '(...)'の(...)部分のパス区切り文字と同一だろうか。

自分の場合not within rootのほうが'\'でdirectoryのほうが'/'になっていた。
WinCVSが気を利かせて'/'から'\'に変換してしまうのだろうか。
WinCVSはうまく動いてたもののTortoiseCVSはこれが違うだけで上記のようなエラーを出していた。

これを修正するには各CVSフォルダのRootファイルの中のパス区切り文字をCVSROOTにあわせればよい。

| | コメント (0)

2004年9月10日 (金)

ごり押しデバッグ

ヘッダファイルにinline関数を書くとき、inline指定を書き忘れることがある。
このとき、BCBだとヘッダに初期化データがあるためプリコンパイルヘッダが作成できないというエラーが出る。
…それだけならいいんだけど、問題はエラーが発生する行が頓珍漢なファイルと行であることがある。
たいていvclのヘッダファイルでエラーとなるようだ。

追跡するのは非常にめんどくさい。

まずcppファイルの先頭から末尾までをコメントアウトする。
そしてcppファイル単体でコンパイル。
この時点ではエラーは出ないはず。(出たらプロジェクトオプションなど、コード以外の問題の可能性が高い)

次にヘッダファイルをインクルードしている行を1行コメントアウトされているところから抜き出してコンパイル。
これを1行ごとに繰り返す。
エラーが出たらそのヘッダファイルが原因の可能性が高い。
そのヘッダファイルをすべてコメントアウトした後、1行づつ有効にさせてコンパイルを繰り返す。

上記をひたすら繰り返せば原因となる行が特定できる。これはどこでエラーになっているのかわからないエラーを解明するのに使える。

| | コメント (0)

« 2004年8月 | トップページ | 2004年10月 »