3

Mercurial が Windows のリポジトリでシンボリック リンクをサポートしていないことは知っています。私はそれを受け入れることができますが、NTFS シンボリックリンクを使用した実装は、管理者以外の Windows ボックスで特権を有効にできる人にとっては良いでしょう。

私が疑問に思っているのは、Unix リポジトリが Windows マシンで表示されたときに Mercurial が Unix リポジトリからの実際のリンクを処理する方法についてです。Windows 開発マシンでシンボリック リンクを使用してリポジトリから更新すると、リンクが実際のファイルに変更され、リンクのターゲットがテキストとして含まれていることがわかります。

どういうわけか、実際のファイルとして保存されている場合でも、Mercurial は Windows でもファイルが元はシンボリック リンクであったことを認識しています。Windows でファイルの内容を編集すると、シンボリック リンクのターゲットを変更できます。これは、Mercurial によってまだシンボリック リンクとして記録されているためです。Unix に戻すと、シンボリック リンクは新しい場所を指しています。

そう。Windows で作成したファイルをシンボリック リンクとしてマークするにはどうすればよいですか? Mercurial がそのようなシンボリック リンクを Unix ファイルシステムにプッシュできることは明らかですが、最初に Unix でリンクを作成せずにシンボリック リンクとしてマークする方法がわかりません。

設定できるフラグはありますか?

4

1 に答える 1

1

残念ながら、Windows には回避策がありません。ただし、Windows でファイルのシンボリック リンク ビットを設定できる拡張機能を作成することはできます。dirstate.flagfuncこの拡張機能は、ファイルの「フラグ」(実行ビットとシンボリック リンク ビット) を要求するときに使用される関数であるをおそらくオーバーライドする必要があります。

チェックアウトで Mercurial に Windows シンボリック リンクを作成させる全体的な機能については、Issue 1825も参照してください。「完了、改善可能」とマークされているため、すぐに変更される可能性は低い.

于 2012-04-12T16:14:10.837 に答える