まあ、通常の答えは、少なくとも VCS レベルでは、苦労する価値はないというものです。確かに、あなたが提案する解決策はあなたのために働くでしょうが、シンボリックリンクされたファイルのコピーを編集することはどうですか?それらも更新する必要がありますか? ソース ファイルとコピー ファイルを別の方法で編集するとどうなりますか? などなど。
それでも、拡張機能の実装や、マニフェストをスキャンして元のファイルでリンクを上書きする単純な (更新) フックを実装することを妨げる人は誰もいません。シンボリックリンクが変更されたように見えますが、テストのセットアップでは気にしないでしょう。
フック コード (symcopy.py) は次のとおりです。
def symcopy(ui, repo, hooktype, parent1, **kwargs):
ctx = repo[parent1]
for f in ctx:
if 'l' in ctx.flags(f):
# overwrite symlink with original file content
print 'overwriting', f
fsrc = ctx[f].data()
repo.wwrite(f, ctx[fsrc].data(), '')
次に、レポ hgrc に次のようなものを置きます。
[hooks]
update = python:c:/path/to/symcopy.py:symcopy
そして実行してテストします:
$ hg up -C somerev
フックはシンボリックリンクを変更済みとしてマークし、マージをトリガーしたくないため、更新時に --clean が必要です。
おそらくfsrc
少しクリーンアップする必要がありますが、アイデアはわかります。