允许符号链接补丁

允许符号链接补丁

当我尝试patch针对链接运行带有补丁文件的命令时,补丁给出了错误:

文件path/to/file不是普通文件——拒绝修补

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

我怎样才能告诉patch不要忽略符号链接并就地修补它们,就好像它们是普通文件一样?

答案1

GNU 补丁 2.7.1 (自2012年起) 有一个--follow-symlinks选项:

查找输入文件时,请遵循符号链接。替换符号链接,而不是修改符号链接指向的文件。 Git 风格的符号链接补丁将不再适用。该选项的存在是为了向后兼容以前版本的补丁;不鼓励使用它。

相关内容