0.9.4の時点で、シンボリックリンクを追加すると、Mercurialはリンク自体を追跡し、それが指すファイルやディレクトリは追跡しません。ただし、シンボリックリンクが指すファイルを追跡することが望ましい場合があります。
Mercurialにディレクトリへのシンボリックリンクを通常のディレクトリとして処理させるにはどうすればよいですか?
Linuxでは使用できます
mount --bind sourcepath targetpath
シンボリックリンクの代わりに、mercurialはターゲットを通常のディレクトリとして扱います(Mercurial1.3.1を使用したopenSUSE11.2、およびRHEL6でテスト済み)。
に含めるのに適した代替構文は/etc/fstab
、
mount -o bind sourcepath targetpath
fstabエントリは、
sourcepath targetpath none defaults,bind 0 0
ディレクトリを操作しているときにこれを行う方法はないと思います。
Mercurial 1.3以降を使用している場合は、新しいサブレポサポートを使用してみることができます。これにより、ローカルディスク上にレポトラックを配置できますが、リンクほどシームレスではありません。
これも見つけてびっくりしましたが、セキュリティ上の理由でMercurialチームが変更したくない機能のようです。
コミットする前に、rsyncを使用してディレクトリのローカルコピーをmakefileから更新することで、この問題を回避することを計画しています。これは素晴らしい解決策ではありませんが、私のディレクトリは非常に小さいので、問題ないはずです。
Rage Steelの優れた答え(mount --bind)のフォローアップ:
マウントを起動時に準備するには(マウントは再起動後も存続しないため)、/ etc/fstabsに次のように入力します。
/ paht / to / source / path / to / target bind defaults、bind 0 0
ソースがマウントされた後に必ず配置してください。