2012-05-29 12 views
5

Mercurialリポジトリをクローンして、私の作業コピーに常にCRLF行の終わりがあるようにするにはどうすればいいですか?Mercurial UNIXライン終了をWindowsに変換

これは、この質問 Problems configuring eol extension in Mercurial

に似ていますが、私は私のコンピュータ上で動作していないような何かが欠けています。

私はMercurialがSVN(TortoiseSVN)を数年間使用していたことを初めて知りました。 私はTortoiseHGをインストールしました。私は Brian O'SullivanのMercurial:The Definitive Guideと一緒に作業しています。

私が最初にしたことの1つは、自分のマシン上にサンプルリポジトリをクローンして、Windows CRLFバージョンではなくLFエンディングがあることがわかりました。

私はSVNでやったようにこれを処理するオプションを見つけようとしました。

私は%USERPROFILE%\ Mercurial.iniにファイルを作成しました。

[extensions] 
eol = 

リポジトリを削除してもう一度チェックアウトしました。変化なし。

もっと見ると、 .hgeolファイルが必要な場合があります。だから私は

[patterns] 
** = native 

削除されたと%のUSERPROFILE%をフォルダ内のものを作成し、リポジトリを再クローン化し、ファイルがまだLFのではなくCRLF以外を持っていました。

次に、 .hgeolファイルをリポジトリの親ディレクトリに入れて、最後にMercurial.iniファイルにコマンドを入れてみました。私はネイティブをCRLFに置き換えてみました。

私はそれが動作するために必要なすべてでなければならないと思われるので、私は何かが欠けているに違いありません。多分、私はSVNのような自動変換のコンセプトが欠けています。

答えて

6

.hgeolファイルは、リポジトリのルートにあるファイルである必要があります。ルートの親ディレクトリでも、ユーザーディレクトリでも、Mercurial.iniファイルでもかまいません。

これを既存のクローンに追加するには、おそらく既存の作業コピーを先にhg update null(またはhg clone --noupdate)で削除する必要があります。その後、.hgeolファイルを追加すると、hg updateを使用して作業コピーを元に戻すことができ、その時点でEOL変換が有効になります。

最初にファイルをリポジトリにコミットすることなく、クローンに直接追加することはできません。

+0

私は今朝これを試してみます。 –

+0

それはうまくいった。 .hgeolファイルを作業ディレクトリに置こうとしましたが、フォルダが空ではないため、クローンできませんでした。 私は私の変更されたクローンをクローンするとき、元のLFが終わるので、これは私の理解に役立つと思います。これは情報のための.HGフォルダだけを見て、作業フォルダにあるものを埋め込むことを伝えます。 これはおそらく問題ではありません。自分の(会社の)リポジトリでは、最初からオプションを設定するからです。私がコントロールしていない、オプションを含めなかったのは、私がこれを行う必要があるものだけです。 –

関連する問題