1

Я хочу использовать жесткие ссылки, чтобы избежать необходимости синхронизировать / копировать несколько исходных файлов между их базовыми папками и небольшим git-репо для личной разработки.

C:\PathLink>mklink /h test  C:\PathTarget\file.f90
Permanent link created for test <<===>> C:\PathTarget\file.f90

C:\PathLink>..\FindLinks\FindLinks.exe test

FindLinks v1.0 - Locate file hard links
Copyright (C) 2011 Mark Russinovich
Sysinternals - www.sysinternals.com

C:\PathLink\test
        Index:  0x0003F29B
        Links:  1

Linking file:
C:\PathTarget\file.f90

Там все выглядит хорошо, но когда я изменяю и сохраняю файл, используя путь доступа "Target" (я просто добавляю append fgh к строке в Visual Studio), я вижу, что ссылка "потеряна":

C:\PathLink>..\FindLinks\FindLinks.exe test

FindLinks v1.0 - Locate file hard links
Copyright (C) 2011 Mark Russinovich
Sysinternals - www.sysinternals.com

C:\PathLink\test
        Index:  0x0003F29B
        Links:  0

После этого я могу загрузить два файла (test и file) по отдельности, file отражает изменение, а test - несохраненный файл.

кто-нибудь знает, почему это произошло? Есть ли способ избежать этого?

Я думаю, я мог бы инициализировать репо в папке PathTarget, а затем создать адаптированный .gitignore . В папке Target уже много файлов, и я просто хочу изменить пару из них. Кроме того, я также хочу добавить новые исходные файлы, и я нахожу это менее беспорядочным, если у меня есть собственная папка, отделенная от целевой папки. Жесткие ссылки выглядели так, как будто это лучше для меня, и я не понимаю, почему это терпит неудачу здесь.

1 ответ1

0

Очевидно, что программа, которую вы использовали для изменения файла, на самом деле удаляет его (ломая жесткую ссылку), а затем воссоздает его, оставляя исходные данные в файле, который вы с ним связали.

Если вы хотите, чтобы файл продолжал указывать на другой путь / имя файла, даже если цель удалена, вы можете использовать символическую ссылку. Просто используйте mklink в командной строке администратора без ключа /h .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .