file.txt.orig와 file.txt를 자동으로 구별하는 방법

file.txt.orig와 file.txt를 자동으로 구별하는 방법

현재 설정을 통해 vim의 파일을 편집한 patchmode=.orig다음 두 개의 파일이 있습니다.

  1. file.txt.orig<- 변경 없이 백업
  2. file.txt<- 업데이트 파일

하지만 파일 이름을 바꾸지 않고 diff를 생성하고 싶기 .orig때문에 업데이트된 파일 patch일 뿐이라는 점을 이해해 주시기 바랍니다.file.txt

이상적으로는 실행할 수 있는 워크플로를 정말 좋아합니다.

diff -u file.txt자동으로 비교되어 file.txt.orig출력 file.txt됩니다 .diff.

--- file.txt    2021-05-03 17:47:12.685416342 +0200
+++ file.txt    2021-05-03 17:47:30.538750593 +0200
@@ -1 +1,2 @@
 foo bar
+bar baz

바꾸다diff -u file.txt.orig file.txt

--- file.txt.orig   2021-05-03 17:47:12.685416342 +0200
+++ file.txt    2021-05-03 17:47:30.538750593 +0200
@@ -1 +1,2 @@
 foo bar
+bar baz

.diff위의 경우 매번 파일을 수동으로 편집 해야 합니다 . 파일이 자동으로 사용 된다면 .orig가능할 것입니다 . vim 패치 모드를 통합 diff하고 추가 노력 없이 작동하는 패치를 갖고 싶습니다.

어쩌면 더 좋은 방법이 있을까요? 어떤 제안이라도 대단히 감사하겠습니다. 둘 중 하나 diffgit diff내 상황에 적합할 것입니다.

답변1

이 작업 흐름은 나에게 효과적입니다. 이전에 업데이트한 파일에 패치를 적용하여 테스트하고 있는 것일까요?

준비하다

echo this is original >file.txt.orig
echo this is new >file.txt
diff -u file.txt.orig file.txt >file.diff

cat file.diff
--- file.txt.orig       2021-05-03 19:17:13.038918015 +0100
+++ file.txt    2021-05-03 19:17:21.548900027 +0100
@@ -1 +1 @@
-this is original
+this is new

패치용 원본 파일의 복사본 만들기

mkdir x
cp -p file.txt.orig x/file.txt
cd x

cat file.txt
this is original

patch <../file.diff
patching file file.txt

cat file.txt
this is new

관련 정보