Подвижные символьные ссылки в Windows

Я гуглил некоторое время теперь, но я был удивлен не мочь найти ответ на это, довольно простое, вопрос.

С подвижными 1.4, когда я клонирую репозиторий на клиенте окон, символьные ссылки появляются как файл, содержащий путь к исходному файлу.

Я не использую символьные ссылки экстенсивно, но я действительно использую их для общей обработки lib (libpng.so-> libpng.so.2-> libpng.so.2.43.0, например).

Поле окон здесь только для тестирования, что означает, что я был бы очень счастлив, если символьные ссылки, где фактические копии исходного файла, это позволит мне скомпилировать.

Я видел http://markmail.org/message/7d353ucvivhphvvk, который является в основном тем же вопросом, но без любого реального ответа.

7
задан 28 December 2009 в 04:33
поделиться

1 ответ

Ну, обычный ответ - не стоит боли, по крайней мере, на уровне ВКС. Конечно, предлагаемое решение сработает, но как насчет редактирования копий файлов сymlinked: стоит ли их тоже обновлять? Что произойдет, если вы отредактируете исходный текст и скопируете файл по-другому? И так далее.

Тем не менее, никто не мешает вам реализовать расширение или простой (обновленный) крюк, сканирующий манифест и перезаписывающий ссылки с исходным файлом. Это заставит сим-ссылки выглядеть изменёнными, но в вашей тестовой установке вас, вероятно, это не волнует.

Вот код крюка (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(), '')

Затем в repo hgrc поместите что-то вроде:

[hooks]
update = python:c:/path/to/symcopy.py:symcopy

И протестируйте с запуском:

$ hg up -C somerev

Вы действительно хотите --clean при обновлении, так как крюк пометит симлинки как измененные и вы не хотите запускать слияние.

Возможно fsrc нужно немного почистить, но вы поняли это.

5
ответ дан 7 December 2019 в 05:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: