[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cvs-ml 955] Re: WinCVSでの改行コード



From: Kazuhiro YANAGIDA <yanagida@gin.or.jp>
Subject: [cvs-ml 948] Re: WinCVS での改行コード
Date: Wed, 15 Nov 2000 01:21:03 +0900

  | 最初のメールにもちょっと書きましたが,私が求めているのは,
  | 「pserverを使わない環境で,WinCVSを使って改行コードの変換を
  | しないようにするにはどうしたら良いのか?」

改行コードの変換をうまくやってほしいということではなく
変換を止めてほしいということですね。理解しました。

  | えっ? "UNIXの改行コード付きで.." をチェックした場合,
  |  _fmode = _O_BINARY
  | になってからファイルをオープンするものだと思ってました.
  | なので CRLF で import した場合は,CRLF で checkout されるのは正常な
  | 結果だと思ってたんですが….違うんでしょうか?

それは実装のこととですね。
「UNIXの改行コード付きでテキストファイルをチェックアウトする」
というのだけを見て、リポジトリにCRLFで記録されていても
チェックアウトされた作業ファイルの改行コードはLFになると予想したのですが。

  | # "UNIXの改行コード付きでテキストファイルをチェックアウトする"
  | # の項目は何のためにあるんでしょうか?

ソースコードは参照してませんが、
リポジトリのstringの改行コードはLFに正規化するつもりなんじゃないでしょうか。
(stringについてはrcsfile(5)を参照のこと)
リポジトリの改行コードをLFと想定しているときだけ
「UNIXの改行コード付きで...」するために
バイナリモードでのopenするのが成立します。
もしそうだとすれば、
リポジトリの改行コードがCRLFのときの動作は未定義ということでしょう。

またdiffに喰わせるためのファイルをnon-binaryモードで作成するのは
「diffはwindowsのツールで、unix改行コードを扱えないだろう」
という心遣いからだと思いました。
想像でデータフローを書いてみました。

                            ┌──┐
                            │    │repository (改行コードはLF)
                            │    │
                            └──┘
                             │  │
               checkout┌──┘  └──┐checkout
(いつでも              │              │ (UNIXの改行コード付きで)
 UNIXの改行コード付き  │              ↓
 ではない)             │           ┌──┐
                       │           │    │workfile (改行コードはLF)
                       │           │    │
                       │           └──┘
                       │              │
                       │              │copy workfile to tmp.2
                       ↓              ↓ with s/LF/CRLF/      
                    ┌──┐        ┌──┐
              tmp.1 │    │        │    │tmp.2
 (改行コードはCRLF) │    │        │    │ (改行コードはCRLF)
                    └──┘        └──┘
                       │              │
                       └──┐  ┌──┘
                             ↓  ↓
                              DIFF

--
KOIE Hidetaka 鯉江英隆 <hide@koie.org>