'패치'는 멱등성을 가질 수 있나요?

'패치'는 멱등성을 가질 수 있나요?

patch멱등성을 사용하여 호출 할 수 있습니다 . 즉, 반복 호출이 (비어 있지 않은 diff의 경우) patch단일 호출과 동일한 효과를 갖도록 하는 옵션 조합이 있습니까 ?patch

답변1

일부 패치는 여러 번 적용될 수 있으므로 보장할 수 없습니다. 하지만

patch -N -r- -i your.patch

your.patch이미 적용된 덩어리는 무시하고 적용됩니다 .

-N이미 적용된 패치를 되돌리려는 시도를 피하고 -r-실패한 덩어리를 .rej파일에 저장하는 것을 건너뜁니다.

긴 옵션이 있는 해당 명령은 다음과 같습니다.

patch --forward --reject-file=- --input=your.patch

이런 식으로 실행할 때 patch덩어리를 무시하면 실패를 나타냅니다. 유일한 "오류"가 덩어리를 무시하면 코드 1로 종료됩니다(적어도 하나의 덩어리가 실패했거나 병합 충돌이 있었습니다). 더 심각한 오류는 종료 코드 2로 표시됩니다.


¹ 컨텍스트가 없거나 추가된 줄이 컨텍스트와 일치하는 패치 또는 덩어리(예를 들어선언의 처음 두 줄이 다음 함수와 일치하는 다형성 함수를 추가하는 패치입니다.

관련 정보