7 quilt 使


PIC

ではquilt*15 そのしますquilt Debian 有な (つまり Debian-specific ) ソフトウではなく Debian とはのない場所発されていますしかしこのDebian 有用であることを 使してもらえたらしいりです

7.1 はじめに

7.1.1 とは

発者であればのようにしたりんだりてたりしたことがあるですがにはれないものだと いますそこでについてしておきます

とは2 つのイル分をイルのことですのような 2 つのイルがあるとしま

nori1[3:57]%  cat file1.txt                                        saba:~/tmp/q
あいうえお
か き く け こ
さしすせそ
た ち つ て と
なにぬねの
は ひ ふ へ ほ
まみむめも
や ゆ よ
らりるれろ
わ を ん
nori1[3:58]%  cat file2.txt                                        saba:~/tmp/q
あいうえお
ば び ぶ べ ぼ
たちつてと
な に ぬ ね の
まみむめも
や ゆ よ
らりるれろ
わ を ん

これらのイルのどこがているかすぐにわかりますか? べる必要はありませんdiffコマンドでこれらの 分をとることができます

nori1[3:57]%  diff file1.txt file2.txt                             saba:~/tmp/q
2,3c2
<  かきくけこ
<  さしすせそ
---
>  ばびぶべぼ
6d4
<  はひふへほ

file1.txtfile2.txtえればなんとなく味がわかるといますそれでかまいませんもちろ このけるようにならなくてかまいません

このでもよいのですがdiffコマンド-uオプシをつけのようなunified diff というさせ ます

nori1[3:57]%  diff -u file1.txt file2.txt                          saba:~/tmp/q
--- file1.txt   Thu Jan 18 03:57:14 2007
+++ file2.txt   Thu Jan 18 03:57:22 2007
@@ -1,9 +1,7 @@
  あいうえお
-かきくけこ
-さしすせそ
+ ばびぶべぼ
  たちつてと
  なにぬねの
-はひふへほ
  まみむめも
  や ゆ よ
  らりるれろ

こちらのほうがされたがどちらのイル属するのかそしてイルのどのような部分なるのかが わかりやすいでし

とはのようにしてこういイルめたものです

nori1[3:58]%  diff -u file1.txt file2.txt > file.diff              saba:~/tmp/q

ただしのない 2 つのイルであれば分はわざわざイルめる必要はないでしわざわざ するのはイルえる分をたりするように機械的なえられるようにしたりす るためですそこでここまではfile1.txtfile2.txt無縁イルとしてきましたがここからはfile1.txt し た も の が file2.txtであるとえてくださいつまりfile1.txtイルfile2.txt イルfile.diff には file1.txt file2.txt にするためのまれているえてくだ さい

さてしたpatchコマンドいてそのイル適用する (てる) ことができ ます

nori1[4:00]%  patch < file.diff                                    saba:~/tmp/q
patching file file1.txt

こうしてfile1.txtfile2.txt同一になります

nori1[4:01]%  cat file1.txt                                        saba:~/tmp/q
あいうえお
ば び ぶ べ ぼ
たちつてと
な に ぬ ね の
まみむめも
や ゆ よ
らりるれろ
わ を ん
nori1[4:02]%  cmp file1.txt file2.txt                              saba:~/tmp/q

また-Rオプシしてきにてることもできます

nori1[4:18]%  patch -R < file.diff                                 saba:~/tmp/q
patching file file1.txt
nori1[4:19]%  cat file1.txt                                        saba:~/tmp/q
あいうえお
か き く け こ
さしすせそ
た ち つ て と
なにぬねの
は ひ ふ へ ほ
まみむめも
や ゆ よ
らりるれろ
わ を ん

file1.txtりました

必ずしもうまくたらないことを忘れてはなりませんのようにfile1.txt2 したとし ます

nori1[5:29]%  cat file1.txt                                        saba:~/tmp/q
あいうえお
が ぎ ぐ げ ご
さしすせそ
た ち つ て と
なにぬねの
は ひ ふ へ ほ
まみむめも
や ゆ よ
らりるれろ
わ を ん

これにてようとするとのようにエラになります

nori1[5:30]%  patch < file.diff                                    saba:~/tmp/q
patching file file1.txt
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file file1.txt.rej

これは与えたえたいしているからです

もちろんfile1.txt2 するわりにのように1 えたとします

nori1[5:32]%  cat file1.txt                                        saba:~/tmp/q
あいうえお
か き く け こ
さしすせそ
た ち つ て と
なにぬねの
は ひ ふ へ ほ
まみむめも
や ゆ よ
らりるれろ
わ を ん
むふふふふ

このえたとはらないのではうまくたりま *16

nori1[5:36]%  patch < file.diff                                    saba:~/tmp/q
patching file file1.txt
nori1[5:52]%  cat file1.txt                                        saba:~/tmp/q
あいうえお
ば び ぶ べ ぼ
たちつてと
な に ぬ ね の
まみむめも
や ゆ よ
らりるれろ
わ を ん
むふふふふ

これまでは 1 つのイル1 つのめてきましたが1 つの複数イルめることも 能です以下diff-rオプシしてなる 2 つのイル2 つのレクトリ分を としてさせたです

nori1[5:14]%  diff -ur skkdic.orig skkdic > skkdic.diff              saba:~/tmp
nori1[5:14]%  cat skkdic.diff                                        saba:~/tmp
diff -ur skkdic.orig/debian/changelog skkdic/debian/changelog
--- skkdic.orig/debian/changelog        Fri Dec 15 03:36:49 2006
+++ skkdic/debian/changelog     Mon Dec 25 17:39:10 2006
@@ -1,5 +1,7 @@
 skkdic (20061130-2~pre1) unstable; urgency=low

+  * debian/rules: Pass the ‘-k’ option to dh_installchangelogs so that
+    all of ChangeLog* are installed equally.
   * debian/skkdic{,-cdb,-extra}.docs: Deleted since their settings are
     now moved into debian/rules.

diff -ur skkdic.orig/debian/rules skkdic/debian/rules
--- skkdic.orig/debian/rules    Fri Dec 15 03:36:49 2006
+++ skkdic/debian/rules Mon Dec 25 17:39:10 2006
@@ -2,6 +2,7 @@
 include /usr/share/cdbs/1/rules/debhelper.mk
 include /usr/share/cdbs/1/class/makefile.mk

+DEB_DH_INSTALLCHANGELOGS_ARGS := -k
 DEB_INSTALL_CHANGELOGS_ALL := ChangeLog
 DEB_INSTALL_DOCS_ALL := ChangeLog.* READMEs/committers.txt

単なわりですこういした部分認したり他人をやりとりしたり するのに便発作はこれなしではやていけないとてもではないでし使うにては patch(1) diff(1) することをおめします

7.1.2 とは

する quilt ですこれは複数するためのものですどのような必要になる のでし?

とはした部分認したり他人をやりとりしたりするのに便だときまし そのづけばにはとは使てのイル短寿命ですする必要はありま せん

しかし以下のようなえてみてください

A さんが全体1 つのとしてするのは能にいでしfoo しいリリたときに てても (うまくたる部分もあるでしうが) いなくうまくたりませんしかも複数ているの でそれをするのはでし

複数論理的な分割すればしはになるでし1 つずつうまくたるも のとたらないものをできますたらないもののうち発元えられた すべきなのに他の部分的にうまくたらないはうまくたるよう調整します れらのかもしれませんが1 つのとしてするのにべればでしただし 現在どのていてどれがていないかをえておかなければならないのが です

そこでするのがです複数いをにするためのです 的にはどのておりどれがていないかをできますまた複数てたりしたり できるのでての (あるいはある) がうまくたるかどうかを概観するのもにできますA さんがやている ようなにはうてつけのです

さてDebian メンテナ (担当) はこの A さんのようなをする必要がありますすなわち リリ複数それらをする必要があるのですというのも発元Debian とでは リリスサイクルなるからですすべきソフトウきくなればなるほ えるでしそこで Debian ジメンテナ使することが推奨されてい ます

ここでは quilt 使したしますDebian でよく使われる にはdpatch というものもありますこちらは Debian ジメンテナンスした ですが能的には quilt とそんなにいはありません味がある2005 7 *17 してください

7.2 インスト

quilt Debian では quilt まれておりapt-get aptitude インストでき ます

7.3 quilt

7.3.1 ておくべきこと

quilt ではquilt <コマンド>というコマンド利用できます利用能なコマンドのようにし できます

nori1[13:19]%  quilt --help                                             whale:~
使: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ...
       quilt --version
コマンド:
        add       files   import   previous  setup
        annotate  fold    mail     push      snapshot
        applied   fork    new      refresh   top
        delete    graph   next     remove    unapplied
        diff      grep    patches  rename    upgrade
        edit      header  pop      series

コマンドオプシ:

--trace
         コマンドbash トレスモ(-x) デバ

--quiltrc file
        ~/.quiltrc (存在しないわりに /etc/quiltrc)  コン
         ンフイルについては PDF
         メント

--version
         して了。

またコマンドヘルプメコマンド-hオプシすれば表示できます以下ではquilt add ルプメ表示させています

nori1[13:45]%  quilt add -h                                             whale:~
Usage: quilt add [-P patch] {file} ...

Add one or more files to the topmost or named patch.  Files must be
added to the patch before being modified.  Files that are modified by
patches already applied on top of the specified patch cannot be added.

-P patch
        Patch to add files to.
7.3.2 チスタ

quilt 使quilt 造をておきましquilt あるツリする連の スタとしてします

あるスツリ以下のような 5 つのえたいとします

  1. r1091-remove-trailing-garbage.diff
  2. r1092-implement-distclean.diff
  3. r1094-add-readme.diff
  4. fix-ftbfs-on-m68k.diff
  5. work-around-an-error-of-libtool.diff

このときこれらのpatches レクトリまれていなければなりませんそして順序めたのような series イル*18 チデレクトリまれている必要があります

______________________________________________________________________________________________

r1091-remove-trailing-garbage.diff  
r1092-implement-distclean.diff  
r1094-add-readme.diff  
fix-ftbfs-on-m68k.diff  
work-around-an-error-of-libtool.diff

つまりまとめるとげた 5 つのえるようなチセのようなもの です

nori1[14:22]%  ls patches/*             whale:~/svnwc/deb/serf/trunk/serf-0.1.0
patches/fix-ftbfs-on-m68k.diff
patches/r1091-remove-trailing-garbage.diff
patches/r1092-implement-distclean.diff
patches/r1094-add-readme.diff
patches/series
patches/work-around-an-error-of-libtool.diff
nori1[14:22]%  cat patches/series       whale:~/svnwc/deb/serf/trunk/serf-0.1.0
r1091-remove-trailing-garbage.diff
r1092-implement-distclean.diff
r1094-add-readme.diff
fix-ftbfs-on-m68k.diff
work-around-an-error-of-libtool.diff

quilt チデはこれがてです

なおこの造は7.3.4するquilt 動的にしてくれるのででいじる必要 ありませんセクシではこのような patches レクトリにもツリてたりしたりしてみま

7.3.3 チスタ

さてでは quilt 使てみますまずはスタのための眺めてみましスタ必要もち ろん push pop です

ていないとしますこのquilt pushすると1 つまり r1091-remove-trailing-garbage.diff たりますこのMakefile.in えるもの です

nori1[14:30]%  quilt push               whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Applying patch r1091-remove-trailing-garbage.diff
patching file Makefile.in

Now at patch r1091-remove-trailing-garbage.diff

きちんとたようですねquilt push与えなければてるコマンドですこれで現在 r1091-remove-trailing-garbage.diffだけがになりました

もうquilt pushします

nori1[15:08]%  quilt push               whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Applying patch r1092-implement-distclean.diff
patching file Makefile.in

Now at patch r1092-implement-distclean.diff

r1092-implement-distclean.diffたりましたこれをr1092-implement-distclean.diff うことにしましスタ(stack) とはねたもの味ですpush ではその もの (quilt では) せていくので○○までてられたえれば○○ です

push pop ですすなわち現在にあるすのはquilt popです

nori1[15:15]%  quilt pop                whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Removing patch r1092-implement-distclean.diff
Restoring Makefile.in

Now at patch r1091-remove-trailing-garbage.diff
nori1[15:15]%  quilt pop                whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Removing patch r1091-remove-trailing-garbage.diff
Restoring Makefile.in

No patches applied

quilt pushquilt popとして名を与えるとそのになるように連の てたりしたりしますまたとして与えるとそのだけてたりしたりできます-aオプシ としてするとてのてたりしたりできます

nori1[15:17]%  quilt push 3             whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Applying patch r1091-remove-trailing-garbage.diff
patching file Makefile.in

Applying patch r1092-implement-distclean.diff
patching file Makefile.in

Applying patch r1094-add-readme.diff
patching file README

Now at patch r1094-add-readme.diff
nori1[15:17]%  quilt pop r1091-remove-trailing-garbage.diff
Removing patch r1094-add-readme.diff
Removing README

Removing patch r1092-implement-distclean.diff
Restoring Makefile.in

Now at patch r1091-remove-trailing-garbage.diff
nori1[15:18]%  quilt push -a            whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Applying patch r1092-implement-distclean.diff
patching file Makefile.in

Applying patch r1094-add-readme.diff
patching file README

Applying patch fix-ftbfs-on-m68k.diff
patching file Makefile.in

Applying patch work-around-an-error-of-libtool.diff
patching file Makefile.in

Now at patch work-around-an-error-of-libtool.diff
nori1[15:18]%  quilt pop -a             whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Removing patch work-around-an-error-of-libtool.diff
Restoring Makefile.in

Removing patch fix-ftbfs-on-m68k.diff
Restoring Makefile.in

Removing patch r1094-add-readme.diff
Removing README

Removing patch r1092-implement-distclean.diff
Restoring Makefile.in

Removing patch r1091-remove-trailing-garbage.diff
Restoring Makefile.in

No patches applied

現在にあるquilt top認できます現在にあるはそれぞれ quilt nextquilt previous認できます現在てられているてられていないはそれぞれquilt appliedquilt unapplied認できますそしててのつまり series イルquilt series 認できます

nori1[15:31]%  quilt top                whale:~/svnwc/deb/serf/trunk/serf-0.1.0
No patches applied
nori1[15:31]%  quilt next               whale:~/svnwc/deb/serf/trunk/serf-0.1.0
r1091-remove-trailing-garbage.diff
nori1[15:31]%  quilt previous           whale:~/svnwc/deb/serf/trunk/serf-0.1.0
No patches applied
nori1[15:31]%  quilt applied            whale:~/svnwc/deb/serf/trunk/serf-0.1.0
No patches applied
nori1[15:31]%  quilt unapplied          whale:~/svnwc/deb/serf/trunk/serf-0.1.0
r1091-remove-trailing-garbage.diff
r1092-implement-distclean.diff
r1094-add-readme.diff
fix-ftbfs-on-m68k.diff
work-around-an-error-of-libtool.diff
nori1[15:32]%  quilt push 2             whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Applying patch r1091-remove-trailing-garbage.diff
patching file Makefile.in

Applying patch r1092-implement-distclean.diff
patching file Makefile.in

Now at patch r1092-implement-distclean.diff
nori1[15:32]%  quilt top                whale:~/svnwc/deb/serf/trunk/serf-0.1.0
r1092-implement-distclean.diff
nori1[15:32]%  quilt next               whale:~/svnwc/deb/serf/trunk/serf-0.1.0
r1094-add-readme.diff
nori1[15:32]%  quilt previous           whale:~/svnwc/deb/serf/trunk/serf-0.1.0
r1091-remove-trailing-garbage.diff
nori1[15:32]%  quilt applied            whale:~/svnwc/deb/serf/trunk/serf-0.1.0
r1091-remove-trailing-garbage.diff
r1092-implement-distclean.diff
nori1[15:33]%  quilt unapplied          whale:~/svnwc/deb/serf/trunk/serf-0.1.0
r1094-add-readme.diff
fix-ftbfs-on-m68k.diff
work-around-an-error-of-libtool.diff
nori1[15:33]%  quilt series             whale:~/svnwc/deb/serf/trunk/serf-0.1.0
r1091-remove-trailing-garbage.diff
r1092-implement-distclean.diff
r1094-add-readme.diff
fix-ftbfs-on-m68k.diff
work-around-an-error-of-libtool.diff
nori1[15:33]%  quilt pop -a             whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Removing patch r1092-implement-distclean.diff
Restoring Makefile.in

Removing patch r1091-remove-trailing-garbage.diff
Restoring Makefile.in

No patches applied

あるイルするquilt files能ですあるするイル quilt patches能です

nori1[15:35]%  quilt files r1091-remove-trailing-garbage.diff
Patch r1091-remove-trailing-garbage.diff is not applied
nori1[15:35]%  quilt push r1091-remove-trailing-garbage.diff
Applying patch r1091-remove-trailing-garbage.diff
patching file Makefile.in

Now at patch r1091-remove-trailing-garbage.diff
nori1[15:35]%  quilt files              whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Makefile.in
nori1[15:36]%  quilt files r1091-remove-trailing-garbage.diff
Makefile.in
nori1[15:36]%  quilt pop -a             whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Removing patch r1091-remove-trailing-garbage.diff
Restoring Makefile.in

No patches applied
nori1[15:36]%  quilt patches Makefile.in
r1091-remove-trailing-garbage.diff
r1092-implement-distclean.diff
fix-ftbfs-on-m68k.diff
work-around-an-error-of-libtool.diff

これでチスタわりですんだ patches レクトリ存在していればその 由自てたりしたり現在ている調べたりできるようになりました かしこれだけではにも立ちませんセクシではたにする方法について ます

7.3.4

いよいよ patches レクトリたなしますquilt ではquilt newたな名前をつけて 適当えたquilt refreshとして存します

たなするまずはスタのどこにれるかめま *19 (味はありませんが) 1 であるr1091-remove-trailing-garbage.diffれまし 名前love-debian.diffとしそののような love-debian Makefile.inえるものにしま

______________________________________________________________________________________________

love-debian:  
        echo "I love debian!!"

ではします

nori1[17:29]%  quilt push r1091-remove-trailing-garbage.diff
Applying patch r1091-remove-trailing-garbage.diff
patching file Makefile.in

Now at patch r1091-remove-trailing-garbage.diff
nori1[17:29]%  quilt new love-debian.diff
Patch love-debian.diff is now on top

早速Makefile.inしたいところですがてくださいquilt ではめるイル予め quilt addしておかなければなりません

nori1[17:29]%  quilt add Makefile.in    whale:~/svnwc/deb/serf/trunk/serf-0.1.0
File Makefile.in added to patch love-debian.diff

そのイルをしそのquilt diff認します

nori1[17:35]%  vim Makefile.in          whale:~/svnwc/deb/serf/trunk/serf-0.1.0
[snip]
nori1[17:38]%  quilt diff               whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Index: serf-0.1.0/Makefile.in
===================================================================
--- serf-0.1.0.orig/Makefile.in 2007-01-18 17:35:11.000000000 +0900
+++ serf-0.1.0/Makefile.in 2007-01-18 17:38:38.000000000 +0900
@@ -99,6 +99,9 @@
  $(INSTALL) -m 644 $$i $(DESTDIR)$(includedir); \
  done

+love-debian:
+ echo "I love debian!!"
+
 clean:
  rm -f $(TARGET_LIB) $(OBJECTS) $(OBJECTS:.lo=.o) $(PROGRAMS) $(TEST_OBJECTS) $(TEST_OBJECTS:.lo=.o)

最後quilt refresh存します

nori1[17:39]%  quilt refresh            whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Refreshed patch love-debian.diff

さてlove-debian.diff1 しましたということはりのがうまくたるか しておかなければなりません

nori1[17:40]%  quilt push -a            whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Applying patch r1092-implement-distclean.diff
patching file Makefile.in
Hunk \#1 succeeded at 104 (offset 3 lines).

Applying patch r1094-add-readme.diff
patching file README

Applying patch fix-ftbfs-on-m68k.diff
patching file Makefile.in

Applying patch work-around-an-error-of-libtool.diff
patching file Makefile.in

Now at patch work-around-an-error-of-libtool.diff

たなしたのでHunk #1 succeeded at 104 (offset 3 lines).というましたがなく たりました

quilt series するときちんと love-debian.diff 適切されていることがわかり ます

nori1[17:41]%  quilt series             whale:~/svnwc/deb/serf/trunk/serf-0.1.0
r1091-remove-trailing-garbage.diff
love-debian.diff
r1092-implement-distclean.diff
r1094-add-readme.diff
fix-ftbfs-on-m68k.diff
work-around-an-error-of-libtool.diff
nori1[17:41]%  quilt pop -a             whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Removing patch work-around-an-error-of-libtool.diff
Restoring Makefile.in

Removing patch fix-ftbfs-on-m68k.diff
Restoring Makefile.in

Removing patch r1094-add-readme.diff
Removing README

Removing patch r1092-implement-distclean.diff
Restoring Makefile.in

Removing patch love-debian.diff
Restoring Makefile.in

Removing patch r1091-remove-trailing-garbage.diff
Restoring Makefile.in

No patches applied

さてしたにないたのですがlove-debian 表示する文字debian Debian文字にしたがよさそうですこのようなときはしましquilt pushないしquilt pop 的の(love-debian.diff) てきてエデMakefile.inしたquilt refresh 存すれば OK ですMakefile.inlove-debian.diffまれているのでエデでの quilt addする必要はありません

nori1[17:54]%  quilt push love-debian.diff
Applying patch r1091-remove-trailing-garbage.diff
patching file Makefile.in

Applying patch love-debian.diff
patching file Makefile.in

Now at patch love-debian.diff
nori1[17:59]%  vim Makefile.in          whale:~/svnwc/deb/serf/trunk/serf-0.1.0
[snip]
nori1[18:01]%  quilt diff               whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Index: serf-0.1.0/Makefile.in
===================================================================
--- serf-0.1.0.orig/Makefile.in 2007-01-18 17:38:38.000000000 +0900
+++ serf-0.1.0/Makefile.in 2007-01-18 18:01:35.000000000 +0900
@@ -99,6 +99,9 @@
  $(INSTALL) -m 644 $$i $(DESTDIR)$(includedir); \
  done

+love-debian:
+ echo "I love Debian!!"
+
 clean:
  rm -f $(TARGET_LIB) $(OBJECTS) $(OBJECTS:.lo=.o) $(PROGRAMS) $(TEST_OBJECTS) $(TEST_OBJECTS:.lo=.o)

nori1[18:01]%  quilt refresh            whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Refreshed patch love-debian.diff

さてこの眺めているうちにまたdesign-guide.txtというイルにも めようと立ちましたdesign-guide.txt のところ love-debian.diff なのでするquilt add しておかなければなりませんquilt add design-guide.txtしたエデdesign-guide.txtいてもよいのですがなのでここではquilt edit コマンドしましこのコマンドイルquilt add した EDITOR されたエデでそのイルという2 つのをまとめてするためのもの です

nori1[18:19]%  quilt edit design-guide.txt
[snip]
nori1[18:21]%  quilt diff               whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Index: serf-0.1.0/Makefile.in
===================================================================
--- serf-0.1.0.orig/Makefile.in 2007-01-18 17:55:20.000000000 +0900
+++ serf-0.1.0/Makefile.in 2007-01-18 18:01:35.000000000 +0900
@@ -99,6 +99,9 @@
  $(INSTALL) -m 644 $$i $(DESTDIR)$(includedir); \
  done

+love-debian:
+ echo "I love Debian!!"
+
 clean:
  rm -f $(TARGET_LIB) $(OBJECTS) $(OBJECTS:.lo=.o) $(PROGRAMS) $(TEST_OBJECTS) $(TEST_OBJECTS:.lo=.o)

Index: serf-0.1.0/design-guide.txt
===================================================================
--- serf-0.1.0.orig/design-guide.txt 2007-01-18 18:19:30.000000000 +0900
+++ serf-0.1.0/design-guide.txt 2007-01-18 18:20:40.000000000 +0900
@@ -9,6 +9,7 @@
   4. Bucket Read Functions
   5. Versioning
   6. Bucket lifetimes
+  7. Love Debian


 -----------------------------------------------------------------------------
@@ -150,3 +151,10 @@


 -----------------------------------------------------------------------------
+
+7. LOVE DEBIAN
+
+Hey, please love Debian.
+
+
+-----------------------------------------------------------------------------
nori1[18:22]%  quilt refresh            whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Refreshed patch love-debian.diff

これでたなlove-debian.diffですしかしこれだけだとをしたいだかわからなくなり そうです最後えておきましquilt ではする コマンドquilt header です-e オプシしてコマンドするとEDITOR エデできますまたオプシ与えずにすると表示でき ます

nori1[18:37]%  quilt header             whale:~/svnwc/deb/serf/trunk/serf-0.1.0
nori1[18:37]%  quilt header -e          whale:~/svnwc/deb/serf/trunk/serf-0.1.0
[snip]
nori1[18:41]%  quilt header             whale:~/svnwc/deb/serf/trunk/serf-0.1.0
A patch to show my love for Debian.

セクシではたにするびましたこれで由にできますセクシ では発元えたへの方法びます

7.3.5 発元えたへの

をいじれるようになたところで発元しいリリなどでえたしてみましこのでは quilt push-fオプシ立ちます

発元えたするまずやておかなければならないことがありますそれはツリ適用 れていないにすることですしたように適用されているすにはquilt pop -a ます

nori1[20:00]%  quilt pop -a             whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Removing patch love-debian.diff
Restoring Makefile.in
Restoring design-guide.txt

Removing patch r1091-remove-trailing-garbage.diff
Restoring Makefile.in

No patches applied

そのツリイル発元しくリリしたものにえます (つまり発元えたしま )ここでは以下のようなたとします

さあしいツリてようとするとどうなるでしうかとりあえずquilt push -aてようと してみまし

nori1[20:32]%  quilt push -a            whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Applying patch r1091-remove-trailing-garbage.diff
patching file Makefile.in
Hunk #1 succeeded at 103 with fuzz 2 (offset 3 lines).

Applying patch love-debian.diff
patching file Makefile.in
Hunk #1 FAILED at 99.
1 out of 1 hunk FAILED -- rejects in file Makefile.in
patching file design-guide.txt
Patch love-debian.diff does not apply (enforce with -f)
nori1[20:32]%  quilt top                whale:~/svnwc/deb/serf/trunk/serf-0.1.0
r1091-remove-trailing-garbage.diff

love-debian.diffてるのにしてそこで適用てしまいましたそこで-fオプシquilt pushにつけてlove-debian.diff的に適用してみます

nori1[20:33]%  quilt push -f            whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Applying patch love-debian.diff
patching file Makefile.in
Hunk #1 FAILED at 99.
1 out of 1 hunk FAILED -- saving rejects to file Makefile.in.rej
patching file design-guide.txt
Applied patch love-debian.diff (forced; needs refresh)

Makefile.inがどうなたか眺めてみるとlove-debian えたのように love clean-love されています

nori1[20:37]%  cat Makefile.in          whale:~/svnwc/deb/serf/trunk/serf-0.1.0
[snip]
$(INSTALL) -m 644 $$i $(DESTDIR)$(includedir); \
done
love:
echo "Making love..."
clean-love:
echo "Clearing my old love..."
clean:
rm -f $(TARGET_LIB) $(OBJECTS) $(OBJECTS:.lo=.o) $(PROGRAMS) $(TEST_OBJECTS) $(TEST_OBJECTS:.lo=.o)
[snip]

quilt push -fからのにあるように適用由はMakefile.in.rejされています念のた いてみまし

***************
*** 99,104 ****
   $(INSTALL) -m 644 $$i $(DESTDIR)$(includedir); \
   done

  clean:
   rm -f $(TARGET_LIB) $(OBJECTS) $(OBJECTS:.lo=.o) $(PROGRAMS) $(TEST_OBJECTS) $(TEST_OBJECTS:.lo=.o)

--- 99,107 ----
   $(INSTALL) -m 644 $$i $(DESTDIR)$(includedir); \
   done

+ love-debian:
+  echo "I love Debian!!"
+
  clean:
   rm -f $(TARGET_LIB) $(OBJECTS) $(OBJECTS:.lo=.o) $(PROGRAMS) $(TEST_OBJECTS) $(TEST_OBJECTS:.lo=.o)

これはcontext diff ばれるですが味がめればかまいませんしたようにlove-debian えるためのclean 3 がうまくたらなかたことがわかるでし

的に適用したがどうなたかわかたところでされてしま大切love-debian Makefile.in度追したquilt push -fからのにあるように(refresh) しま

nori1[20:45]%  vim Makefile.in          whale:~/svnwc/deb/serf/trunk/serf-0.1.0
[snip]
nori1[20:54]%  quilt diff               whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Index: serf-0.1.0/Makefile.in
===================================================================
--- serf-0.1.0.orig/Makefile.in 2007-01-18 20:32:13.000000000 +0900
+++ serf-0.1.0/Makefile.in 2007-01-18 20:52:22.000000000 +0900
@@ -102,6 +102,10 @@
  echo "Making love..."
 clean-love:
  echo "Clearing my old love..."
+
+love-debian:
+ echo "I love Debian!!"
+
 clean:
  rm -f $(TARGET_LIB) $(OBJECTS) $(OBJECTS:.lo=.o) $(PROGRAMS) $(TEST_OBJECTS) $(TEST_OBJECTS:.lo=.o)

Index: serf-0.1.0/design-guide.txt
===================================================================
--- serf-0.1.0.orig/design-guide.txt 2007-01-18 20:31:56.000000000 +0900
+++ serf-0.1.0/design-guide.txt 2007-01-18 20:36:10.000000000 +0900
@@ -9,6 +9,7 @@
   4. Bucket Read Functions
   5. Versioning
   6. Bucket lifetimes
+  7. Love Debian


 -----------------------------------------------------------------------------
@@ -150,3 +151,10 @@


 -----------------------------------------------------------------------------
+
+7. LOVE DEBIAN
+
+Hey, please love Debian.
+
+
+-----------------------------------------------------------------------------
nori1[20:54]%  quilt refresh            whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Refreshed patch love-debian.diff

さあこれでlove-debian.diffしましたquilt push -aりのてようとしてみま

nori1[20:55]%  quilt push -a            whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Applying patch r1092-implement-distclean.diff
patching file Makefile.in
Hunk #1 succeeded at 108 (offset 7 lines).

Applying patch r1094-add-readme.diff
The next patch would create the file README,
which already exists!  Applying it anyway.
patching file README
Patch attempted to create file README, which already exists.
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- rejects in file README
Patch r1094-add-readme.diff can be reverse-applied

r1094-add-readme.diffてるのにしてそこで適用てしまいましたによれ このてることができますそれはすなわちこのであることを味します READMEしてくれたのでREADMEするためのr1094-add-readme.diffになたのでしたそこで このすることにします

nori1[21:05]%  quilt delete r1094-add-readme.diff
Removed patch r1094-add-readme.diff

これでr1094-add-readme.diffですquilt push -aりのてようとしてみま

nori1[21:05]%  quilt push -a            whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Applying patch fix-ftbfs-on-m68k.diff
patching file Makefile.in

Applying patch work-around-an-error-of-libtool.diff
patching file Makefile.in

Now at patch work-around-an-error-of-libtool.diff

てうまくたりましたこれで連のはうまくたるようになりました

nori1[21:06]%  quilt pop -a             whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Removing patch work-around-an-error-of-libtool.diff
Restoring Makefile.in

Removing patch fix-ftbfs-on-m68k.diff
Restoring Makefile.in

Removing patch r1092-implement-distclean.diff
Restoring Makefile.in

Removing patch love-debian.diff
Restoring Makefile.in
Restoring design-guide.txt

Removing patch r1091-remove-trailing-garbage.diff
Restoring Makefile.in

No patches applied
7.3.6 存関

quilt quilt graphコマンドGraphviz 使うと適用された存関できます

てのてておきます

nori1[22:18]%  quilt push -a            whale:~/svnwc/deb/serf/trunk/serf-0.1.0
Applying patch r1091-remove-trailing-garbage.diff
patching file Makefile.in
Hunk #1 succeeded at 103 with fuzz 2 (offset 3 lines).

Applying patch love-debian.diff
patching file Makefile.in
patching file design-guide.txt

Applying patch r1092-implement-distclean.diff
patching file Makefile.in
Hunk #1 succeeded at 108 (offset 7 lines).

Applying patch fix-ftbfs-on-m68k.diff
patching file Makefile.in

Applying patch work-around-an-error-of-libtool.diff
patching file Makefile.in

Now at patch work-around-an-error-of-libtool.diff

この与えずにquilt graphするとGraphviz スフイルされますこれは同じ する複数存関があるとしてしたです

nori1[22:18]%  quilt graph              whale:~/svnwc/deb/serf/trunk/serf-0.1.0
digraph dependencies {
        n0 [label="r1091-remove-trailing-garbage.diff"];
        n1 [label="love-debian.diff"];
        n2 [label="r1092-implement-distclean.diff"];
        n3 [label="fix-ftbfs-on-m68k.diff"];
        n4 [style=bold,label="work-around-an-error-of-libtool.diff"];
        n0 -> n1 [len="1.39"];
        n1 -> n2 [len="1.39"];
        n2 -> n3 [len="1.39"];
        n3 -> n4 [len="1.39"];
}

このえばgraph.dotというイル存するとGraphviz 使(えばdot -Tpng graph.dot -o graph.pngなどとして) イル生成できますしかしps するのであればのように直接 るのがでし

nori1[22:35]%  quilt graph -T ps > patchdep-1.eps

なお存関はありませんが的に (/usr/share/quilt/graph ) Graphviz dot コマン しているのでには graphviz インストされている必要があります (Bug#407469*20 )

生成された 1のようになります


PIC


1: 同じイルする複数存関があるとしてした存関


他方同じイルするだけでなくそのている存関があるとしてするとのように なりますりが 1 ( 2) 2 ( 3) です

nori1[22:44]%  quilt graph --lines=1 -T ps > patchdep-2.eps
nori1[22:44]%  quilt graph --lines=2 -T ps > patchdep-3.eps


PIC


2: 1 ている存関があるとしてした存関



PIC


3: 2 ている存関があるとしてした存関


7.3.7

quilt では以下のようなできますここでは略していますが他にも diff 連のがいくつかあり ます

QUILT_PATCHES
patches レクトリしますされていないpatchesチフイル (および series イル) 納に使されます
QUILT_PC
.pc レクトリします.pc レクトリどのてられたかをするためのもの されていない.pcとなります

7.4 Debian quilt 使

Debian quilt 使するときは以下にしてください

24 エリア Debian 2007 1 ____________________________________________________