Hard links quebram no Windows 7 Pro

1

Eu quero usar links físicos para evitar a necessidade de sincronizar / copiar alguns arquivos de origem entre suas pastas base e um pequeno repositório git para desenvolvimento pessoal.

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

Tudo parece bem lá, mas quando modifico e salvo o arquivo usando o caminho de acesso "Target" (acabei de adicionar append fgh a uma linha no Visual Studio) vejo que o link está "perdido":

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

Depois disso, posso carregar os dois arquivos ( test e file ) separadamente, file reflete a modificação e test é o arquivo não salvo.

Alguém sabe por que isso acontece? Existe uma maneira de evitar isso?

Eu acho que eu poderia inicializar meu repo na pasta PathTarget e criar um .gitignore adaptado. Já existem muitos arquivos na pasta Target, e eu só quero modificar alguns deles. Além disso, eu também quero adicionar novos arquivos de origem e acho menos confuso se eu tenho minha própria pasta, separada da pasta Target. Links rígidos pareciam o melhor para mim e eu não entendo por que ele falha aqui.

    
por GAgbo 04.03.2016 / 16:07

1 resposta

0

Evidentemente, o programa que você usou para modificar o arquivo, na verdade, o exclui (quebra o hardlink) e o recria, deixando os dados originais no arquivo que você tinha vinculado a ele.

Se você quiser que um arquivo continue apontando para um caminho / nome de arquivo diferente, mesmo se o destino for excluído, você poderá usar um link simbólico. Basta usar mklink em um prompt de comando administrativo sem a opção /h .

    
por 04.03.2016 / 19:08