금요일 터미널 : 패치 및 차이

소프트웨어 개발에서 필수적인 두 가지 도구는 패치(Patch)디프(Diff) 입니다 . 작동 방식은 그리 복잡하지 않지만, 이번 포스팅에서는 좀 더 자세히 다뤄보겠습니다. 😉

둘 다 매우 강력하며 표면을 만지는 것과 같으며 더 많은 유틸리티와 기타 기능이 있습니다. 기본적으로이 두 도구를 사용하여 버전 제어를 생성 할 수 있습니다.


비교

우리는 비교를 참조하고 "원본"파일을 "새"파일과 비교하고 그 사이에 존재하는 차이점을 알려줍니다. 이 도구를 사용하면 프로그램 용 패치를 만드는 데 사용하는 .patch 파일을 만들 수도 있습니다.


패치

.patch 파일에 포함 된 지침에 따라 줄을 추가 및 / 또는 제거하여 원래 파일을 문자 그대로 "패치"하는 명령입니다.


vimdiff라는 도구 도 있는데 , .patch 파일 없이도 패치를 적용할 수 있는 시각적 도구입니다. 원본 버전과 새 버전을 비교하여 한 줄씩 또는 같은 파일 내에서 전체 문서를 편집할 수 있습니다. 자세한 설명은 생략하겠지만, 언급할 가치가 있다고 생각합니다.


이제 재미가 있습니다. 예!

이 경우, 우리는 귀하의 이름과 나이를 묻는 훌륭한 스크립트를 가지고 있습니다. 18 세 이상이면 투표 할 수 있음을 알리고 그렇지 않으면 투표 할 수 없다고 알려줍니다.

원본.sh

#! / bin / bash echo "Enter your name :"read name echo "Enter your age :"read age if [[18 -lt $ age]] then echo "Hello $ name, you are $ old and you can vote! " else echo "안녕하세요 $ 이름, 당신은 $ 늙었 고 투표 할 수 없습니다 ..."fi
Vim의 코드 이미지

Vim의 코드 이미지

완료, 실행중인 스크립트는 다음과 같습니다.

모든 것이 잘 작동하는 것 같습니다.

모든 것이 잘 작동하는 것 같습니다.

그래서 우리는 좋은 사용자로서 우리의 스크립트를 친구와 공유합니다. :)하지만 결함이 있다는 메시지를받습니다. 18 일 때 투표해야 할 때 투표 할 수 없다는 메시지를받습니다.

논리 오류 :(

논리 오류 

이제 우리는 작은 오류를 수정하고 몇 가지 수정을 시작합니다 ...

new.sh

#! / bin / bash maxAge = 18 echo "이름 입력 :"; read name echo "당신의 나이 :"; 나이 읽기 if [[$ maxAge -le $ age]]; then echo "안녕하세요 $ name, 당신은 $ 살이고 투표 할 수 있습니다!" else echo "안녕하세요 $ name, 당신은 $ 살이고 투표 할 수 없습니다 ..."fi exit 0
Vim으로 작성된 새로운 코드

Vim 으로 작성된 새 코드

스크립트가 매우 무겁다고 가정해 보겠습니다. 따라서 전체 스크립트를 다시 보내는 것을 피하기 위해 .patch 를 만듭니다.

$ diff -u original.sh new.sh> patch.patch

자, 이제 패치가 완성되었습니다. Vim 에서 확인해 보세요 :

.patch에 대한 지침은 다음과 같습니다. 흰색으로 수정되지 않은 선, 파란색으로 제거 된 선, 주황색으로 추가 된 선입니다.

.patch에 대한 지침은 다음과 같습니다. 흰색으로 수정되지 않은 선, 파란색으로 제거 된 선, 주황색으로 추가 된 선입니다.

이를 적용하려면 패치할 스크립트 내의 .patch 파일을 사용하기만 하면 됩니다. 여기서는 originalAmigo.sh 라고 하며, 이는 original.sh 스크립트 의 정확한 복사본입니다 .

친구 스크립트

친구 스크립트

$ 패치 originalFriend.sh <patch.patch

이렇게 하면 원래 Amigo.sh 파일은 다음과 같이 됩니다.

패치 적용 후 친구 스크립트

패치 적용 후 친구 스크립트

보시다시피 차이점을 얻고 패치를 적용하는 것은 매우 쉽습니다. 모두 나로부터.

인사 여러분, 다음주 금요일에 읽을 것입니다.


Google에서 선호하는 검색 엔진으로 추가