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 스타일 심볼릭 링크 패치는 더 이상 작동하지 않습니다. 이 옵션은 이전 릴리스의 패치와의 역호환성을 위해 존재합니다.