0

Mercurial によってバージョン管理されているプロジェクトがあります ( project main)。プロジェクトは、別のプロジェクト ( ) のいくつかのファイルを、 内のファイルを指すsubシンボリック リンクによって参照 (使用) します。のリポジトリにシンボリック リンクが追加されます。mainsubmain

問題は、Mercurial が でターゲット ファイルに加えられた変更を検出せずsub、シンボリック リンクを 'M' (変更済み) としてマークしないことです。

この状況を次の例に示します。

初期リポジトリを作成、初期化、およびコミットします。

$ mkdir crap
$ cd crap
$ mkdir main sub
$ cd sub
$ nano sub.txt
$ hg init
$ hg add sub.txt 
$ cd ../main/
$ nano main.txt
$ ln -s ../sub/sub.txt ./sub.txt
$ ls -la
total 24
drwxrwxr-x 2 ruslan ruslan 4096 Jan 15 12:51 .
drwxrwxr-x 4 ruslan ruslan 4096 Jan 15 12:48 ..
-rw-rw-r-- 1 ruslan ruslan   20 Jan 15 12:51 main.txt
lrwxrwxrwx 1 ruslan ruslan   14 Jan 15 12:51 sub.txt -> ../sub/sub.txt
$ hg init
$ hg add main.txt sub.txt 
$ hg commit -m "First"
$ cd ../sub
$ hg commit -m "Sub First"
$ hg status ./sub -A
C sub/sub.txt
$ hg status ./main -A
C main/main.txt
C main/sub.txt

でターゲットを変更してコミットしsubます。

$ nano ./sub/sub.txt 
$ hg status ./sub -A
M sub/sub.txt
$ hg commit ./sub -m "Modified"
$ hg status ./sub -A
C sub/sub.txt

のステータスはmain、ターゲットを参照するシンボリックリンクが「M」としてマークされていないことを示しています。

$ hg status ./main -A
C main/main.txt
C main/sub.txt

コミットせずに再度変更すると、sub「M」subが表示されますが、表示されませんmain

$ nano ./sub/sub.txt 
$ hg status ./sub
M sub/sub.txt
$ hg status ./main -A
C main/main.txt
C main/sub.txt

Mercurial にシンボリックリンクのターゲットの変更を適切に検出させるにはどうすればよいですか?

4

2 に答える 2