Permitir patch de links simbólicos

1

Quando tento executar um comando patch com um patchfile em um link, o patch me dá o erro:

File path/to/file is not a regular file -- refusing to patch

O comando a seguir produz este erro quando eu tenho links para os arquivos em questão no meu diretório staging .

~> cd staging
~/staging> ls -l path/to/
lrwxrwxrwx 1 user users   15 Jan  1 00:00 file1 -> ../../../actual/path/file1
lrwxrwxrwx 1 user users   15 Jan  1 00:00 file2 -> ../../../actual/path/file2
~/staging> patch -p 1 -i ../patchfile
File path/to/file1 is not a regular file -- refusing to patch
2 out of 2 hunks ignored -- saving rejects to file path/to/file1.rej
File path/to/file2 is not a regular file -- refusing to patch
1 out of 1 hunk ignored -- saving rejects to file path/to/file2.rej

Como posso dizer a patch para não ignorar os links simbólicos e corrigi-los no local como se fossem arquivos normais?

    
por palswim 14.06.2018 / 23:03

1 resposta

1

O patch GNU 2.7.1 ( desde 2012 ) tem um --follow-symlinks opção:

When looking for input files, follow symbolic links. Replaces the symbolic links, instead of modifying the files the symbolic links point to. Git-style patches to symbolic links will no longer apply. This option exists for backwards compatibility with previous versions of patch; its use is discouraged.

    
por 15.06.2018 / 00:16