오픈소스 이야기

2022.10.03 15:38

quilt 사용하기

조회 수 307 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

오픈소스에 대한 이해를 만화로 쉽게 할 수 있도록 작성한 컨텐츠를 원작자 님의 허락을 얻고 공유하고 있습니다.

공유를 허락해주신 원작자님에게 감사 드립니다.

원작자 : https://joone.net/

 

 

잠깐, quilt를 사용법을 알아볼까요? 먼저 quilt를 설치합니다.우분투라면,

$ sudo apt install quilt

 

다음과 같이 example1.txt를 작성합니다.

joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ cat example1.txt
line1
line2
Line3

아래와 같은 new 명령어로 새로운 패치를 만들 준비를 합니다.

joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ quilt new patch1.diff
Patch patches/patch1.diff is now on top

patch1.diff라는 패치가 준비되어 있고 아직은 빈 패치입니다.

edit명령어를 이용해서 example1.txt를 편집합니다.

linea 1
edit 1 (by patch1.diff)
linea 2
linea 3

두번째 라인을 추가했습니다.

joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ quilt edit example1.txt
File example1.txt added to patch patches/patch1.diff

이제 diff를 확인합니다.

joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ quilt diff
Index: demo/example1.txt
===================================================================
--- demo.orig/example1.txt
+++ demo/example1.txt
@@ -1,3 +1,4 @@
line1
+edit1 (by patch1.diff)
line2
Line3

edit1 (by patch1.diff) 이 추가되어 있음을 확인합니다.

 

이제 refresh 명령어로 실제로 patch파일을 생성합니다.

joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ quilt refresh
Refreshed patch patches/patch1.diff

변경 사항을 버리고 pop명령어를 이용해서 example1.txt를 원래 상태로 복원을 해봅니다.

joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ quilt pop
Removing patch patches/patch1.diff
Restoring example1.txt

No patches applied

exampe1.txt의 내용을 확인하면 원래 상태인 것을 알 수 있습니다.

joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ cat example1.txt
line1
line2
line3

자, 이제 두번째 패치를 작성해봅니다.

joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ quilt new patch2.diff
Patch patches/patch2.diff is now on top

series 명령어를 지금까지 작성된 patch 파일을 볼 수 있습니다. 현재 patch2.diff는 빈 파일입니다.

joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ quilt series
patches/patch2.diff
patches/patch1.diff

example2.txt를 patch2.diff에 추가하고 실제 파일을 편집합니다.

joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ quilt add example2.txt
File example2.txt added to patch patches/patch2.diff
joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ echo "New file created by patch2.diff" > example2.txt

example1.txt도 patch2.diff에 추가하고 파일을 변경합니다.

joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ quilt add example1.txt
File example1.txt added to patch patches/patch2.diff
joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ echo "Line created by patch2.diff" >> example1.txt

지금까지 변경된 내용을 diff 명령어로 확인합니다.

joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ quilt diff
Index: demo/example1.txt
===================================================================
--- demo.orig/example1.txt
+++ demo/example1.txt
@@ -1,3 +1,4 @@
line1
line2
line3
+Line created by patch2.diff
Index: demo/example2.txt
===================================================================
--- /dev/null
+++ demo/example2.txt
@@ -0,0 +1 @@
+New file created by patch2.diff

실제 patch2.diff파일을 생성합니다.

joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ quilt refresh
Refreshed patch patches/patch2.diff

모든 변경 사항을 pop합니다.

joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ quilt pop -a
Removing patch patches/patch2.diff
Removing example2.txt
Restoring example1.txt

No patches applied

현재 디렉토리 구조입니다.

joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ ll
total 20
drwxrwxr-x 4 joone joone 4096 Sep 10 15:46 ./
drwxrwxr-x 3 joone joone 4096 Sep 10 15:18 ../
-rw-rw-r-- 1 joone joone 18 Sep 10 15:46 example1.txt
drwxrwxr-x 2 joone joone 4096 Sep 10 15:46 patches/
drwxrwxr-x 2 joone joone 4096 Sep 10 15:46 .pc/

example2.txt는 사라졌고 example1.txt를 보면 원래 상태로 되어 있습니다.

joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ cat example1.txt
line1
line2
Line3

다시 지금까지 작성된 patch1.diff와 patch2.diff를 적용합니다.

joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ quilt push -a
Applying patch patches/patch2.diff
patching file example1.txt
patching file example2.txt

Applying patch patches/patch1.diff
patching file example1.txt

Now at patch patches/patch1.diff

Example2.txt가 나타났습니다.

joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ ll
total 24
drwxrwxr-x 4 joone joone 4096 Sep 10 15:47 ./
drwxrwxr-x 3 joone joone 4096 Sep 10 15:18 ../
-rw-rw-r-- 1 joone joone 69 Sep 10 15:47 example1.txt
-rw-rw-r-- 1 joone joone 32 Sep 10 15:47 example2.txt
drwxrwxr-x 2 joone joone 4096 Sep 10 15:46 patches/
drwxrwxr-x 4 joone joone 4096 Sep 10 15:47 .pc/

내용을 각각 확인해보면, 두 패치가 잘 적용되어 있는 것을 확인할 수 있습니다.

joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ cat example1.txt
line1
edit1 (by patch1.diff)
line2
line3
Line created by patch2.diff
joone@xps:~/git/foss-comics-code/47.git/quilt/demo$ cat example2.txt
New file created by patch2.diff

 

참고: https://elbauldelprogramador.com/en/how-to-mantain-patchs-quilt-tutorial/


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 오픈소스 이야기 게시판 이용안내 3 file Kevin 2018.04.13 1650
39 내 리눅스가 이렇게 쉬울 리 없어! 3 PEACH 2018.04.23 575
38 꾸준히, 자유롭게, 즐겁게 : 한국 오픈 소스 개발자들 이야기 2 행복한펭귄 2016.08.24 5417
37 깃허브가 직접 깃허브에 오픈한 오픈소스 가이드 4 file PEACH 2018.04.19 297
36 깃허브, 오픈소스 소식 알리는 팟캐스트 ‘온에어’ 행복한펭귄 2016.03.23 5725
35 깃허브 러닝랩 - 혼자서 아무것도 없이 깃허브 마스터 가능합니다. 2 file PEACH 2018.05.11 1858
34 김프 2.10.8 나왔습니다. 1 세벌 2018.11.14 1107
33 김정균 - 자신을 발전시키는 소중한 공부 file Kevin 2018.04.22 507
32 김용욱 - 오픈소스로 해외취업하기 1 PEACH 2018.05.02 999
31 그놈(GNOME) 데스크탑의 시작 2 Kevin 2020.08.06 1087
30 겁먹지 말고 오픈소스에 기여해 봅시다! 4 PEACH 2018.05.02 1391
29 ‘리눅스 아버지’처럼 성공하기 위한 11가지 조건 file PEACH 2018.05.15 909
28 [TED2016] 리눅스의 기본 철학(한글 자막) 1 file PEACH 2018.05.15 1049
27 XFree86과 X.Org Kevin 2018.08.13 1168
26 X11의 탄생 4 Kevin 2018.07.25 1415
25 X-윈도우와 Wayland 4 Kevin 2022.11.03 3233
24 X-Window 탄생 1 Kevin 2018.06.21 1923
23 The C programming language 2nd edition 2 세벌 2018.05.11 2313
» quilt 사용하기 Kevin 2022.10.03 307
21 Python 프로그래밍 언어 2 1 Kevin 2023.04.25 531
20 Python 프로그래밍 언어 1 1 Kevin 2023.04.17 514
Board Pagination Prev 1 ... 2 3 ... 4 Next
/ 4
CLOSE