2012-04-26 7 views
2

Windows7 Ultimate(32ビット)マシン上のルートに "cv2"という名前のディレクトリがあるTortoiseHG(2.3.2)リポジトリがあります。 "cv2"の異なるサブディレクトリに新しいファイルを追加すると、TortoiseHGは "cv2"をディレクトリに応じて "cv2"または "CV2"として表示します。私は次のディレクトリに「tom.cs」と呼ばれるファイルを追加する場合Windows7上のMercurial/TortoiseHGで奇妙な大文字と小文字を区別するディレクトリ名の動作

は例えば、私はTortoiseHgの中で次のような結果を得る:

Physical Directory     TortoiseHG Filename 
...\cv2\Common\tom.cs    cv2/Common/tom.cs 
...\cv2\tom.cs      CV2/tom.cs 
...\cv2\WinClient\tom.cs   cv2/WinClient/tom.cs 
...\cv2\WinService\tom.cs   CV2/WinService/tom.cs 

これが始めたとき、私は知りませんが、それは持っていますリポジトリ内に2つの別個のディレクトリが作成されていることに気付いたことになります(これは私が推測できることではありません)。

リポジトリには、サブディレクトリに3つのプロジェクト(「cv2」と「cp2」および「NotificationService」)の1つのソリューションがあります。私は、ソリューションファイルのディレクトリ名が "cv2"ではなく "CV2"であることを発見しました。これはVisual Studioで "Diff"が動作しなくなったため変更されました...しかし、これは最初からコミットされていて、最初のコミット以降は変更されていません。残念ながら、その時にWindowsディレクトリの名前を変更したのかどうかはわかりません...可能です。

「CV2」または「cv2」のいずれかのディレクトリに依存するこの不一致について、私は何かしていますか?コマンドプロンプトでWindowsディレクトリの名前を変更してみましたが、成功しませんでした。私はMercurialがWindowsマシン上で実行されているときに大文字と小文字を区別しないという印象を受けていましたが、間違っていると思います。

私はこのプロジェクトの唯一の開発者です。変更を加えて他の人を混乱させる危険はありません。

答えて

4

はい、Mercurialは、大文字と小文字を区別しないファイルシステム上のファイル名の大文字と小文字を区別しませんが、それはまだリポジトリに一部場合にファイル名を格納することがあります。 Mercurialの2.2-RC(Windowsのリリース候補を実行する方法については、the wikiを参照してください)あなたは

hg rename CV2/tom.cs cv2/tom.cs 

は、次のコミットのために、「名前の変更」をスケジュールするために実行することができるようになりますと

。ファイルは大文字小文字を区別しないファイルシステムのために適切な場所に置かれているので、ディスク上で移動することはありませんが、名前の変更は履歴に記録され、新しいチェックアウトはディスク上に正しいケースを持ちます。

more instructionsがあります。caseguard extensionを含めて、今後あなた自身を守るために使用できます。しかし、これは主にMercurial 2.2で修正する必要があります。Mercurial 2.2では、以前のバージョンと比較して大文字と小文字を区別するためのコードが用意されています。

+0

ありがとう、ありがとう、ありがとう - それは完璧です! CV2としてコミットされた5つのファイルの名前をcv2に変更すると、Visual Studioで追加されたファイルも自動的にcv2に変更されました。 TortoiseHGは現在Mercurial 2.1.2で動作しているので、大文字と小文字を区別しないコードを得る前に、それらが2.2に達するのを待たなければなりません。ありがとうございました! – freefaller

+0

@freefaller:あなたは大歓迎です、私は助けることができてうれしいです! –

関連する問題