これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド git-dpm です。
プログラム:
NAME
git-dpm - git マネージャーの Debian パッケージ
SYNOPSIS
git-dpm - 助けて
git-dpm [ オプション ] command [ コマンドごとのオプション -引数 ]
DESCRIPTION
Git-dpm は、git リポジトリ内の Debian ソース パッケージを処理するためのツールです。
各プロジェクトには XNUMX つのブランチ、Debian ブランチ (マスター/どのような)、パッチ適用されたブランチ
(パッチを当てた/パッチが適用されました-どのような) と上流ブランチ (アップストリーム/上流の-どのような)と git-dpm
情報をそこに保存して、変更をキルトとしてエクスポートできるようにするのに役立ちます
シリーズ。
Git-dpm は、表示されたブランチに基づいて他の XNUMX つのブランチを推測します。 (ほとんどのコマンドは機能します
現在の HEAD、つまり現在チェックアウトしているブランチに基づいています。
例えば status 代わりにオプションの引数を許可します)。 たとえば、ブランチにいる場合、
マスター、git-dpm は、対応する上流ブランチが呼び出されることを前提としています。 アップストリーム。 あなたがある場合
支店内 上流の何か、Debian ブランチが呼び出されることを前提としています。 何か.
ほとんどのコマンドは、自動的に別のブランチに切り替わる可能性があることに注意してください。
この方法で実装するのが簡単で、できればブランチを切り替える必要がなくなります。
手動で頻繁に。
SHORT 説明 OF 、 ブランチ
上流の分岐 (アップストリーム|上流の-どのような)
このブランチには上流のソースが含まれています。 その内容は十分に等しい必要があります。
上流の tarball の内容。
パッチを適用したブランチ (パッチを当てた|パッチが適用されました-どのような)
このブランチには、アップストリーム ソースへのパッチが含まれています。 すべてのコミットは次のようになります
結果として得られるパッケージに単一のパッチとして保存されます。
ほとんどの場合、それは既知のブランチとしては存在しません。 git、ただし、ある点としてのみ
Debian ブランチの歴史の中に、そして場合によっては公開されたバージョンのタグとして。
Git-dpm 必要に応じてブランチを作成し、不要になったらブランチを削除します。
git が線形パッチ シリーズを生成できるようにするには、理想的には次の線形チェーンにする必要があります。
コミット。その説明は他の人にとって役立ちます。
このブランチは定期的にリベースされるため、公開しないでください。
Debian ブランチ (マスター|どのような)
これがプライマリブランチです。
このブランチには、 デビアン/ ディレクトリにパッチが適用されたブランチがマージされています。
含まれていないすべての変更 デビアン/, .git* または、ファイルの削除はパッチを当てた環境で行う必要があります。
ブランチ。
例
いくつかの例から始めましょう。
プロジェクトをチェックアウトする
まず、master ブランチを取得します。
git URL
次に、上流ブランチを作成し、.orig.tar の準備ができているかどうかを確認します。
git-dpm prepare
パッチを当てたブランチを作成してチェックアウトします。
git-dpm チェックアウトパッチ済み
変更を加え、パッチを適用し、コミットします。
...
git コミット
変更によって以前の変更が修正された場合 (それが最後のコミットではない場合)、
それ以外の場合は、--amend を使用することもできたので、これら XNUMX つのコミットを潰したくなるかもしれません。
XNUMX つにまとめられるので、次を使用します。
git リベース -i アップストリーム
次に、それらの変更を Debian ブランチと新しいパッチ ファイルに取り込みたいとします。
作成されました (これは次を使用して実行できます) git-dpm アップデートパッチ)、しかしあなたはおそらくそれを望んでいます
変更ログに何を行ったかを文書化するため、すべて XNUMX つのステップで実行できます。
git-dpm DCH -- -i
おそらく、Debian パッケージの何かを変更します。
...
git コミット -a
次に、全体を元に戻します。
git プッシュ
新しい上流バージョンへの切り替え
新しい .orig.tar ファイルを取得します。 上流のブランチを次の内容にアップグレードします。
そのファイルと呼び出し git-dpm 上流新記録 .. /新しいもの.orig.tar.gz または言う
git-dpm をインポートして記録します。
git-dpm インポート-新しい-アップストリーム -リベース .. /新しいもの.orig.tar.gz
これにより、パッチ適用されたブランチが新しい上流ブランチにリベースされます。
いくつかの競合を解決する必要があります:
活力 ...
git 加えます 解決 ファイル
git リベース - 継続する
リベースの実行後 (最初の試行でも運が良ければ):
git-dpm DCH -- -v 新しい上流-1 "新しい アップストリーム バージョン"
次の方法で最後のステップを XNUMX つ実行することもできます。
git-dpm アップデートパッチ
DCH -- -v 新しい上流-1 "新しい アップストリーム バージョン"
git コミット --修正 -a
他の debian/ 変更を行います。
...
git コミット -a
次に、全体を元に戻します。
git プッシュ
新しいプロジェクトの作成
作る アップストリーム (または 上流の-どのような) の内容を含むブランチ
orig.tar ファイル:
tar -xvf 例_0.orig.tar.gz
cd 例-0
git INIT
git 加えます .
git コミット -m "輸入 例_0.orig.tar.gz"
git チェックアウト -b 上流不安定
tar を保存するために、そのままの tar を使用することもできます。
原始的なタール コミット .. /例_0.orig.tar.gz 上流不安定
次に、上流ブランチがどの tarball に属しているかを git-dpm に知らせます。
git-dpm INIT .. /例_0.orig.tar.gz
にいたので注意してください 上流不安定 この例では、最後の例では
git-dpm Debian ブランチを呼び出す必要があると仮定します 不安定な そうではない マスターので、
コマンドが返されると、新しく作成された 不安定な ブランチ。
残りの梱包作業を行います。
活力 デビアン/コントロール debian / rules
DCH - 作成 - パッケージ 例 -v 0-1
git 加えます デビアン/コントロール debian / rules debian / changelog
git コミット -m "イニシャル 梱包」
次に、いくつかのパッチを追加します。
git-dpm チェックアウトパッチ済み
活力 ...
git コミット -a
git-dpm DCH "修正します ... (終了: 数字)"
当学校区の git-dpm チェックアウトパッチ済み 一時的なブランチを作成しました パッチ適用済み - 不安定 (あなたと同じように
と呼ばれる支店にいました 不安定な。 HEAD をブランチとして呼び出した場合
マスター、だったでしょう パッチを当てた) にコミットを追加しました。 そうして git-dpm
アップデートパッチ によって暗示される git-dpm DCH それらの変更をマージした 不安定な、削除
一時的なブランチを作成し、新しいブランチを作成しました debian/パッチ/ ファイル。
次に、パッケージをビルドします。
git-dpm status &&
dpkg-ビルドパッケージ -rfakeroot -我ら -uc -I「.git*」
さて、何が起こったのか見てみましょう。おそらくいくつかのファイルを追加したいと思うでしょう。 .gitignore (中
不安定な ブランチ))、またはブランチからいくつかのファイルを削除します。 不安定な あなたのための分岐
クリーンルールはそれらを削除します。
パッケージが完成するまで、最後のいくつかの手順を続けます。 次に、パッケージをプッシュします。
git-dpm タグ
git プッシュ -タグ ターゲット 不安定:不安定 原始タール:原始タール
既存のパッチの削除
まず、master ブランチを取得します。
git URL
パッチを当てたブランチを作成してチェックアウトします。
git-dpm チェックアウトパッチ済み
最後のアップストリーム リリース以降のコミットのリストを取得します。 git リベース -i
上流不安定
これにより、デフォルトのエディターが開き、コミットのリストが表示されます。 削除するリストを編集します
望ましくないコミット。
...
git コミット
次に、それらの変更を Debian ブランチと古いパッチ ファイルに取り込みたいとします。
削除されました(これは次を使用して実行できます) git-dpm アップデートパッチ)、しかしあなたはおそらくそれを望んでいます
変更ログに何を行ったかを文書化するため、すべて XNUMX つのステップで実行できます。
git-dpm DCH -- -i
おそらく、Debian パッケージの何かを変更します。
...
git コミット -a
次に、全体を元に戻します。
git プッシュ
GLOBAL OPTIONS
- デバッグ
git-dpm が実行している内容を詳細に出力します。 ほとんどの場合、デバッグにのみ役立つか、
バグレポートを作成するとき。
--debug-git-calls
git 呼び出しを標準エラー出力に出力します。 (より複雑なデバッグの場合)。
--debian-ブランチの変更を許可
Debian ブランチの上流の変更を無視します。 これにより、次の場合にそれらが破棄されます。
merge-patched は Come コマンドによって呼び出されるか、他の場所では無視されます。
コマンド
INIT [オプション] tarファイル [アップストリームコミット [事前適用されたコミット [パッチ適用済みのコミット]]]
新しいプロジェクトを作成します。
最初の引数はアップストリームの tarball です。
そのファイルの内容と、次のように指定されたファイルも必要です。
--component は、Git リポジトリ (または同様のもの) 内のブランチまたはコミットとしてパッケージ化されていません。
十分にそう dpkg-ソース 違いが分からないでしょう)。 これは次の場所に保存されます。
上流ブランチ(と呼ばれる) アップストリーム or 上流の-どのような)。 XNUMX 番目の引数が次の場合
存在しないまたは空の場合、そのブランチはすでに存在している必要があります。それ以外の場合、そのブランチは
XNUMX 番目の引数で初期化されます。 (それはあなたの責任です
内容は一致します。 git-dpm はクリーン ルールが何をするのかを知らないため、チェックできません
(そしてまだ警告しようともしていません))。
すでに Debian ブランチ (と呼ばれる) を持つことができます。 マスター or どのような)。 そうでない場合
存在すれば、その後も存在します。 それ以外の場合は、 debian/パッチ/シリーズ
ファイル。git-dpm がインポートします。
XNUMX 番目の引数には、上流ブランチの子孫を指定できます。
パッチを適用する前に Debian ブランチを変更する (ほとんどの人は、パッチを適用することを好みます)
何も持っていないと lintian が警告しますが、いくつかある場合は、新しいファイルでコミット/チェリーピックしてください。
上流ブランチの上にブランチ/分離ヘッドを配置し、ここで名前を付けます)。 それなし
--patches-applied の場合、Debian ブランチには上流の変更が加えられていない可能性があります。
このコミット (または、指定されていない場合は上流ブランチ)。
XNUMX 番目の引数がない場合、git-dpm は Debian に可能なパッチを適用します。
XNUMX 番目の引数の上または上流に分岐します。 自分で行うこともできますし、
それを XNUMX 番目の引数として指定します。
このコミット/ブランチの内容は XNUMX 番目のコミットで指定されるか、によって作成されます。
XNUMX 番目/上流ブランチの上にパッチを適用すると、上流ブランチにマージされます。
Debian ブランチ。パッチが適用されたブランチとして記憶されます。
オプション:
- 成分 ファイル名
記録する .orig-コンポーネント。タール ファイルは上流ブランチで解凍されます。
--パッチ適用済み
Debian ブランチにはすでにパッチが適用されていることを示します。
これがないと、git-dpm は Debian ブランチに変更がないかチェックします。
パッチを適用する前にパッチ管理の外部で行う。 これで、それは
代わりに、パッチを適用した後に違いがないことを確認してください。
--パッチなしの作成
作成/上書きしないでください debian /パッチ ディレクトリ。 電話する必要があります
アップデートパッチ あなた自身。 履歴データをインポートする場合に便利です。
元のパッチを Debian ブランチに保持します。
--レコードパッチカテゴリ
加える パッチカテゴリ: サブディレクトリにあるインポートされたパッチごとにフィールドを追加します。
of debian /パッチ。 これは〜をひき起こす アップデートパッチ 同じ場所に保管する
サブディレクトリ。
--レコードパッチ名
加える パッチ名: フィールドをインポートされた各パッチにその名前とともに追加します。 これは〜をひき起こす
アップデートパッチ 元の名前で保存します。
prepare
上流のブランチと上流の orig.tar ボールが存在し、最新であることを確認してください。
(クローンまたはプルの後に呼び出すのが最適です)。
status [ブランチ]
現在のプロジェクト(またはプロジェクトに属するプロジェクト)のステータスを確認します。
引数 ブランチ それが与えられた場合)。 何かがある場合はゼロ以外の終了コードを返します。
することが検出されます。
チェックアウトパッチ済み
パッチを適用したブランチをチェックアウトします (パッチを当てた|パッチが適用されました-どのような) 存在することを確認した後
に収録されているものです。 debian/.git-dpm ファイルにソフトウェアを指定する必要があります。
パッチ適用されたブランチが古い状態 (つまり、すでに祖先である状態) を参照している場合
現在の Debian ブランチ)、記録された現在のブランチに変更されます。
それ以外の場合は、次のコマンドを使用して最後に記録された状態にリセットできます。 - 力 オプションを選択します。
アップデートパッチ [オプション] [支店名]
電話した後 マージパッチを適用したdebian 必要に応じて、コンテンツを更新します
debian /パッチ の現在の状態に パッチを当てた ブランチ。
また、パッチが適用されたブランチの状態を debian/.git-dpm に記録します。
ディレクトリが属します。
もし 支店名 が与えられると、そのブランチが処理されます。 それ以外の場合は、名前が派生します
通常どおり、現在チェックアウトされているブランチから。
オプション:
--やり直し 何もすることがないと思えても、何かをしてみましょう。
--allow-revert, --ignore-削除, --dot-git-files=*
merge-patched-into-debian に渡される
--修正
新しいコミットを作成せず、Debian ブランチ内の最後のコミットを修正してください。
(つまり、--amend を指定して merge-patched-into-debian を呼び出し、更新を修正します
によって作成されたものでない場合でも、最後のコミットにパッチを適用します。
Debian にマージパッチを適用)。
-m メッセージ
メッセージ コミットメッセージとして。 (--amend と一緒に使用する場合は、再利用しないでください
古いコミットメッセージ、作成者または作成者の日付ですが、古いコミットを
そのメッセージを含む新しいコミット)。
--ブランチを維持
パッチが適用された既存のブランチは削除しないでください (通常、ブランチは削除されますが、削除することもできます)。
で再作成 チェックアウトパッチ済み 古いコピーが潜んでいるのを避けるため。
--allow-非線形
マージパッチに渡されます。
DCH [オプション] -- dch-オプション
必要に応じて update-patches を呼び出した後、指定されたコマンドを使用して devscripts の dch を実行します。
オプションを選択してから、 git コミット への変更を含むコミットメッセージを含む
debian / changelog ファイルにソフトウェアを指定する必要があります。
オプション:
--修正
現在 Debian ブランチの先頭にあるコミットを置き換えます
(マスター|何か) 上に新しいものを作成する代わりに。 コミットメッセージ
に加えられた変更も含まれます debian / changelog 前のコミットで
(新しい編集によって元に戻されない限り)。
--ignore-パッチ
update-patches を呼び出さず、単に現在の状態を無視してください。
パッチを適用したブランチ (パッチを当てた|パッチが適用されました-何か).
--ブランチを維持, --allow-revert, --allow-非線形, --ignore-削除,
--dot-git-files=*
呼び出された場合は、update-patches に渡されます。
--最新のみ|- 最新|-l
呼び出す前に、現在の作業ディレクトリ間の変更のみを含めます。
dch を呼び出した後 (最後のコミット以降ではない)
交換されません)。
-e | -v | -a | - すべて | -s | -n | -いいえ-確認します | -u | --untracked-files | -q |
- 静かな | --クリーンアップ=... | --著者=...
git commit に渡されます。
マージパッチを適用したdebian [オプション] [支店名]
通常 アップデートパッチ 必要と思われる場合、これを実行します。
このコマンドは、 git-dpm, ただし、通常は直接呼び出すことはありません。 それ
によって呼び出されます アップデートパッチ そして物が呼んでいる アップデートパッチ ような DCH を特定いたします。
必要。
現在のファイル内のすべてのファイル (以下に説明する例外のみ) を置き換えます。
Debian ブランチ (マスター|どのような) パッチを当てたブランチで見つかったものと
(パッチを当てた|パッチが適用されました-どのような).
だけ Debianの ディレクトリとルートディレクトリ内の「.git」で始まるファイルは、
Debian ブランチから保持されています (つまり、 .gitignore, .git属性、...は残ります)。 と
最後に記録されたパッチ適用されたブランチで検出され、
現在の Debian ブランチも新しいブランチでは削除されます。
さらに、 debian/.git-dpm ファイルが更新されるため、現在のパッチ適用済みブランチが
が記録され、最後に記録された上流ブランチに属するものとしてマークされます。
ない場合 支店名 コマンドラインでブランチのベース名を指定します。
演算対象は、通常どおり、現在チェックアウトされているブランチから計算されます。 さもないと
この引数が使用されます。
オプション:
--allow-revert
通常、パッチを当てたブランチを古い状態に戻すことは許可されていません。
間違いを避ける (Debian ブランチをプルしただけで実行するのを忘れたなど)
チェックアウトパッチ済み)。 このオプションにより状況が変更されるため、たとえば
スタック内の最後のパッチ。
--no-ignore-deletions (デフォルト)
記録されたファイルと比較して、Debian ブランチ内で現在削除されているファイル
パッチが適用されたブランチは、新しい Debian ブランチでも削除され、取得されません。
新しいパッチを当てたブランチから。 別のデフォルトがない限り、これがデフォルトです
と設定されました
git 設定 dpm。支店名.dpmIgnoreDeletions true.
--ignore-削除
で説明されている動作を無効にします。 --no-ignore-deletions.
--dot-git-files=方法
で始まるファイルの保存方法を指定します .git 外側 デビアン/ が扱われます。 それらは
として特別に扱います .git属性 .gitignore では異なるかもしれません
パッチの一部ではない Debian ブランチ。 (全体 デビアン/ ディレクトリにジョブを開始します。
は常に Debian ブランチから取得されるため、そこにあるファイルは影響を受けません)。
考えられる方法は次のとおりです。
自動 (デフォルト)
任意 .git* 現在のファイルに追加、変更、または削除されたファイル
Debian ブランチは古い上流ブランチと比較して次のように設定されます
状態、その他すべては新しいパッチ適用されたブランチにあるものとして取得されます。
Debianの All .git* ファイルは Debian ブランチから取得されます。 名前の付いたファイル
パッチを適用したブランチからのようなものは無視されます。
アップストリーム
で始まるファイル .git 特別な扱いはされません。 彼らです
Debian で削除されない限り、パッチを適用したブランチから取得されます。
ブランチとデフォルト --no-ignore-deletions アクティブです。 (つまり、ただ
外部の他のファイルと同様に デビアン/).
--ブランチを維持
パッチが適用された既存のブランチは削除しないでください (通常、ブランチは削除されますが、削除することもできます)。
で再作成 チェックアウトパッチ済み 古いコピーが潜んでいるのを避けるため)。
--修正
Debian ブランチの最後のコミットを置き換えます (git commit --amend と同様)
する)。 ただし、祖先であるすべての親は例外です。
新しいパッチが適用されたブランチ、または記録されたパッチが適用されたブランチへの送信は省略されます。 (それか
つまり、Debian ブランチ上のコミットだけでなく、以前のコミットも失われます。
最後のコミットがパッチ適用済みブランチもマージした場合のパッチ適用済みブランチの状態
ブランチ)。
-m メッセージ
作成された新しいコミットに使用するコミット メッセージ。 (併用すると
--amend、これにより、古い作成者と日付の再利用が無効になります)。
--allow-非線形
パッチ適用されたブランチが線形系列でない場合、エラーで中止されません。
上流ブランチの上にコミットします。 このオプションの使用は推奨されません
パッチ適用されたブランチまたは上流ブランチの問題を簡単に隠してしまうため、
format-patch では機能しないため、壊れた debian/patches/ シリーズが導入されます。
シリーズ化。
インポート-新しい-アップストリーム [オプション] .orig.tar
指定された tarfile の内容をインポートします (次のように) 輸入タール)そしてこれを記録してください
ブランチ( 上流新記録).
これは次とほぼ同等です。
git-dpm 輸入タール -p アップストリーム ファイル名
git チェックアウト -b アップストリーム
git-dpm 上流新記録 ファイル名
-切り離された
新しい上流ブランチを古い上流ブランチの祖先にしないでください。
(それを再度追加しない限り、 -p).
-p コミット ID|- 親 コミット ID
与える 輸入タール 作成する新しいコミットの追加の親。
たとえば、あるブランチでアップストリームの git リポジトリを追跡する場合、次のことができます。
ここに名前を付けて、Debian ブランチの歴史の一部にします。
--許可なしの親
git config 経由で dpm.importWithoutParent が false に設定されている場合、git-dpm は
このオプションを使用せずに、または少なくとも -p を指定して import-new-upstream を実行できるようにします。
オプションを選択します。
--rebase-patched
新しい上流ブランチを記録した後、パッチを適用したブランチを
新しい上流ブランチ。
--no-rebase-patched
新しい上流ブランチを記録した後は、rebase-patched を呼び出さないでください。 (これ
現在はデフォルトですが、将来変更される可能性があります)。
-m メッセージ
Debian ブランチへの新しいコミットに使用するコミット メッセージ。
新しいファイルと上流ブランチ。
- 成分 パッケージのバージョン.orig-コンポーネント。タール.gz
指定されたファイル名を コンポーネント ディレクトリを作成し、それを記録します
それ prepare status それをチェックすることを知っています。
- 初期化
ブランチがまだ存在しない場合は、ブランチを作成します。
操作対象のブランチが派生しているため、 HEAD いいえの場合 - ブランチ オプションがある
与えられた場合、どちらかが必要です HEAD まだ存在しないブランチを指します (例:
直後 git INIT) または、名前を付ける必要があります - ブランチ.
それ以外の場合は、ブランチの XNUMX つがすでに存在しており、エラーが発生するだけです。
メッセージ。
- ブランチ デビアンブランチ
現在の Debian ブランチ名から派生させないでください。 HEAD しかし、使用する デビアンブランチ
その代わり。 (上流ブランチ名とパッチ適用ブランチ名は、
いつも通りです)。
--pristine-tar-commit | --ptc
コール 原始的なタール コミット インポートされたすべての tarball がまだ見つからない場合
原始的なタールのブランチ。
--no-pristine-tar-commit
電話はしないで下さい 原始的なタール コミット 設定されている場合でも、インポートされたすべての tarball に対して
までにそうする
git 設定 dpm.pristineTarCommit true または
git 設定 ブランチ。デビアンブランチ.dpmPristineTarCommit true.
--ignore-削除, --dot-git-files=
呼び出された場合は、merge-patched に渡されます (パッチがない場合にのみ実行されます)
以前)。
--上流の著者 著者
として使用 - 著者 への議論 git-dpm 輸入タール.
--上流の日付 date
として使用 - 日にち への議論 git-dpm 輸入タール (特に オート is
tar ファイルからの日付の抽出がサポートされています)。
-除外する パターン
指定されたパターンは、解凍時に除外パターンとして tar に渡されます。 できる
複数回与えられる。
輸入タール [オプション] .tar ファイル
指定されたファイルの内容を含む新しいコミットを作成します。 コミットは行われません
あなたが与えない限り、両親がいます -p オプション。
-p コミット ID|- 親 コミット ID
指定されたコミットを親として追加します。 (複数指定可能)。
- ブランチ 支店名
新しいブランチを作成する 支店名 まだ存在しない場合、または置き換える
支店名 現在の tarball から作成されたコミットを使用
支店名 親としての頭。
-m メッセージ
コミット メッセージのエディターを起動せず、代わりに引数を使用します。
- 日にち date
作成するコミットの日付。
値が オート 次に、そのファイルまたはディレクトリの最新の日付
tarボールが使用されます。
- 著者 著者
作成するコミットの作成者。 通常の git 形式である必要があります
著者 <メール>.
-除外する パターン
指定されたパターンは、解凍時に除外パターンとして tar に渡されます。 できる
複数回与えられる。
上流新記録 [オプション] .orig.tar [コミット]
上流ブランチを変更した場合 (アップストリーム|上流の-どのような)、git-dpm は次のことを行う必要があります。
このブランチが現在どの tarball に対応しているかを知っているので、リベースする必要があります
パッチを適用したブランチ (パッチを当てた|パッチが適用されました-どのような) 新しい上流ブランチに接続します。
XNUMX 番目の引数がある場合、このコマンドはまず上流のブランチを置き換えます。
指定されたコミットを使用して。
その後、新しい上流ブランチが Debian ブランチに記録されます。 debian/.git-dpm
ファイルにソフトウェアを指定する必要があります。
指定した場合 --rebase-patched (または短い -リベース), git-dpm リベースパッチ済み 意志
パッチを当てたブランチを新しい上流ブランチの上にリベースするために呼び出されます。
この後 (そしてブランチが希望どおりになった場合)、さらに次のことを行う必要があります。
コール git-dpm マージパッチを適用したdebian (または直接 git-dpm アップデートパッチ).
警告 誤解を避けるために: 上流ブランチを変更する必要があります
このコマンドを使用する前に。 の内容を確認するのはあなたの責任です。
tarball は上流ブランチのものと一致します。
--rebase-patched
自動的に電話をかける git-dpm リベースパッチ済み.
--new-tarball のみ
tarball が変更されても上流のブランチが変更した場合でも操作を拒否しないでください
いいえ。 (これは、tarball が変更されずに変更された場合にのみ意味があります。
内容については、上記の警告を参照してください)。
-m メッセージ
Debian ブランチへの新しいコミットに使用するコミット メッセージ。
新しいファイルと上流ブランチ。
--修正
新しいコミットを上に作成するのではなく、最後のコミットを置き換えます。
- 成分 ファイル名
USBレコーディング ファイル名 必要に応じて、コンポーネント ソース ファイル (つまり、
ソース名_アップストリームバージョン.orig-コンポーネント。タール。 ファイル)。 それはあなたのです
そのファイルのコンテンツをすでに上流の一部として保持する責任があります
支店( コンポーネント サブディレクトリ)。
(録音されたファイルは次の方法で検索されます) status prepare. のリスト
記録されたコンポーネント ソース ファイルは、新しい上流ブランチまたは
アップストリーム .orig ソースファイルが記録されます)。
--ignore-削除, --ot-git-files=
呼び出された場合は、merge-patched に渡されます (これは、マージパッチが存在しない場合にのみ実行されます)。
以前にパッチを適用したため、新しい上流ブランチが直接マージされます)。
リベースパッチ済み
現在のパッチ適用済みブランチをリベースしてみてください (パッチを当てた|パッチが適用されました-どのような)あなたに
現在の上流ブランチ (アップストリーム|上流の-どのような).
これらのブランチが git ブランチとしてまだ存在しない場合、それらは
に記録されている情報 debian/.git-dpm 最初。
これは、最初に決定を試みる git rebase の単なる便利なラッパーです。
リベースとは正確には何ですか。 競合がある場合、git rebase は次のことを要求します。
それらを解決し、rebase に続行するように指示します。
これが完了した後 (そしてブランチが希望どおりに見えた場合)、まだ
必要 マージパッチを適用したdebian (または直接 アップデートパッチ).
タグ [ オプション ] [ バージョン ]
アップストリームのパッチ適用済みの Debian ブランチにタグを追加します。 バージョンが指定されていない場合は、
debian/changelog から取得されます。
オプション:
-リフレッシュ
タグがすでに存在していて異なる場合は、タグを上書きします (上流を除く)。
--refresh-アップストリーム
アップストリームが存在し、異なる場合は上書きします。
--allow-stale-パッチ
パッチが最新でない場合でもエラーは発生しません。 これは次の場合にのみ役に立ちます。
履歴データをインポートしていて、それにタグを付けたいと考えています。
--名前付き
生成されたタグの名前の一部としてパッケージ名を使用します。 (使用 git
設定 dpm.tagsNamed true これをデフォルトにします)
--名前付き 名
いいね --名前付き ただし、使用する名前を指定します。
--debian-タグ タグ名
--パッチを当てたタグ タグ名
--上流タグ タグ名
生成するタグの名前を指定します。
%p はパッケージ名に置き換えられます。
%v コロン (:) とチルダ (~) を置き換えたバージョン (エポックなし)
アンダースコア (_) によって、
%u 上流バージョン (エポックまたは Debian リビジョンなし) とコロン付き
(:) とチルダ (~) はアンダースコア (_) に置き換えられます。
%e 時代とともに、
%f エポックがある場合は、エポックの後にアンダースコア (_) が続きます。
エポックがない場合は空の文字列を使用します。
%V コロン (:) とチルダ (~) を置き換えたバージョン (エポックなし)
ドット (.) によって、
%U 上流バージョン (エポックまたは Debian リビジョンなし) とコロン付き
(:) とチルダ (~) はドット (.) に置き換えられます。
%E エポックがある場合はエポックの後にドットが続き、空の場合はドットが続きます。
エポックがない場合は文字列、
%% シングルで %.
これらのいずれかがコマンド ライン オプションで設定されていない場合は、 git 設定 について質問されます
の値 dpm.debianタグ, dpm.patchedタグ or dpm.upstreamタグ。 それも設定されていない場合
または特別な値 AUTO次に、debian/.git-dpm のフォームの行がスキャンされます。
debianタグ=値",
パッチ付きタグ=値" or
上流タグ =値".
(注: これらは常にファイルの最後に追加してください。最初の XNUMX 行は修正されています)
行番号)
それでも使用するパターンが見つからない場合、デフォルトは次のとおりです。
'%p-debian%e-%v」、「%p-パッチ適用済み%e-%v'と'%p-アップストリーム%e-%u'と --名前付き
'debian%e-%v」、「パッチ適用済み%e-%v'と'上流%e-%u' それなし。
タグ名に特殊な値がある場合 NONEを、タグは生成されません。
参照タグ [ オプション ] コミット [ バージョン ]
いいね タグただし、タグを作成する コミットすなわち、 コミット Debian タグと
他のタグは、 debian/.git-dpm そのコミットが指すファイル。
したがって、これは次とほぼ同等です。
git チェックアウト -b 一時 コミット
git-dpm タグ [オプション] [バージョン]
git チェックアウト 前の頭
git ブランチ -D 一時
のようなオプション タグ.
パッチの適用 [ オプション... ] [ ファイル名 ]
パッチ適用されたブランチに切り替えます (最新であると仮定して、最初に checkout-patched を使用します)
確認するか警告を受け取ります)、引数として指定されたパッチを適用するか、からパッチを適用します。
stdin。
- 著者 著者
記録される作成者をオーバーライドします。
--defaultauthor 著者
コミットから作成者を特定できない場合は、これを使用します。
- 日にち date
見つからない場合は、このパッチを最初に記録した日付です。
--dpatch
パッチを dpatch パッチとして解析します (実際にパッチである dpatch パッチに対してのみ機能します)
パッチを適用すると、他の人にとっては暗黙的に失敗する可能性があります)。
--cdbs パッチを cdbs simple-patchsys.mk パッチとして解析します (dpatch パッチでのみ機能します)
実際にはパッチなので、他の人にとっては黙って失敗する可能性があります)。
--編集 コミットを行う前にエディタを起動します (修正するのが面倒な場合に備えて)。
--レコード名
加える パッチ名: 伝えるフィールド アップデートパッチ 同じものをエクスポートするには
また名前を。
- 名前 名
加える パッチ名: 伝えるフィールド アップデートパッチ 使用する 名 ファイル名として
このパッチを (相対的に) に保存します debian /パッチ).
- カテゴリー 名
加える パッチカテゴリ: 伝えるフィールド アップデートパッチ これを常にエクスポートするには
サブディレクトリにパッチを適用する 名 of debian /パッチ.
チェリーピック [ オプション... ] コミット
パッチを適用したブランチを再作成し、指定されたコミットを選択します。 それを元にマージします
Debian ブランチに移動し、debian/patches ディレクトリを更新します (つまり、ほとんどの場合
checkout-patched、git のチェリーピック、および update-patches に相当します)。
--マージのみ
パッチを当てたブランチを Debian ブランチにマージするだけで、更新はしません。
patches ディレクトリ (これを取得するには、後で update-patches を実行する必要があります)
終わり)。
-e | --編集
git のチェリーピックに渡されます。選択されたコミット メッセージを編集します。
-s | - サインオフ
git のチェリーピックに渡されます: Signed-off-by ヘッダーを追加します
-x git のチェリーピックに渡されます: 何が選択されたかを説明する行を追加します
-m NUM | --メインライン NUM
git のチェリーピックに渡されます: 親を指定することでマージを選択できるようにします
を見て。
--再選択
指定されたコミットが既に含まれている場合は中止しません。
--allow-非線形, --ignore-削除, --dot-git-files=
呼び出された場合は、update-patches に渡されます。
merge-patched-into-debian および update-patches に渡されます。
--ブランチを維持
パッチが適用されたブランチが必要なくなった場合は、削除しないでください。
--修正
merge-patched-into-debian に渡されます: Debian の最後のコミットを修正します
ブランチ。
インポート-dsc
Debian ソース パッケージを .dsc ファイルからインポートします。 これを使用して新しいものを作成できます
プロジェクトを作成するか、ソース パッケージを既存のプロジェクトにインポートします。
プロジェクトの古い状態は親コミットとして記録される可能性がありますが、
古い Debian ブランチは考慮されません。 特にすべてのファイルの削除と
.gitignore ファイルなどは後で再適用/再追加する必要があります。
(外部からの新しいソース パッケージ バージョンによって内容が変更される可能性があると仮定しています)
そのため、古い情報は時代遅れになる可能性が高くなります。 そしてそれを再適用すると
このような変更を元に戻すよりも簡単です)。
最初のステップは、 .orig.tar ファイルと可能 .orig-コンポーネント。タール ファイル。
使用するブランチを指定することもできます。 さもないと インポート-dsc の場合は見ます
このプロジェクトの前の状態にはすでに必要なファイルがあるため、古いアップストリーム
ブランチは再利用できます。 存在しない場合、ファイルは新しいコミットとしてインポートされます。
デフォルトでは、以前の上流ブランチが親となる可能性があります。
その後 インポート-dsc 次の状態でソース パッケージをインポートしようとします。 dpkg-ソース
-x それを作成するでしょう。 (つまり、.diff を適用して、 debian / rules 実行ファイル
1.0 形式のパッケージの場合、 Debianの の内容を含むディレクトリ
.debian.tar と適用可能 debian/パッチ/シリーズ 3.0 形式のパッケージの場合)。
これは後で逐語的インポートと呼ばれます。
1.0ソースフォーマットのパッケージであれば、 インポート-dsc 次に、サポートされているセットを探します
システムにパッチを適用し、それらのパッチの適用を試みます。 これらはその後、
新しい Debian ブランチに逐語的に記述します。
その後、 debian/.git-dpm ファイルが作成され、プロジェクトが古い状態になる可能性があります
親として追加されました。
注意してください dpkg-ソース パッケージの抽出には使用されませんが、パッケージは抽出されます
手動で。 特に git-適用 代わりにが使用されます patch。 これは一般的には
作品(そして git-dpm いくつかを回避する魔法があります git-適用の欠点)、
汚れたパッチには、場合によっては - C0 オプションを選択し、同じ場合に適用されます
こことは異なる位置で patch それらを適用するでしょう。
一般的なオプション:
-b | - ブランチ 支店名
現在の HEAD は参照せず、パッケージを git-dpm にインポートします。
プロジェクト 支店名 または、新しいプロジェクトを作成します (そのブランチがまだ作成されていない場合)
存在)。
--逐語的 支店名
後 インポート-dsc 無事に完了しました、 支店名 が含まれます
.dsc ファイルをそのままインポートします。 その名前のブランチがすでに存在する場合、
新しい逐語的コミットも古いコミットを親として持ちます。 (これも原因です
逐語的なコミットが他の変更によって修正されないため、結果が生じる可能性があります
さらに多くのコミットで)。
--use-changelog
インポートされたパッケージの debian/changelog を解析します。 説明を次のように使用します
パッチとインポートのデフォルトとしてのコミットメッセージと作成者と時刻
その情報なしでコミットします。 (警告: まだ荒い部分が含まれている可能性があります
エッジ)。
上流ブランチの作成に関するオプション:
--上流で使用する コミット
.orig.tar をインポートしたり、古いインポートを再利用したりせず、常に使用してください。
コミット 指定。
このブランチが
.orig.tar ファイルと、それぞれのファイルにある可能性のある .orig-component.tar
ディレクトリ。 (いつものように、十分に似た意味は、次のことを意味します:
パッチが触れているか、ビルドプロセスが必要であるか、そうでない場合は再作成します
debian / rules 再度削除します)。 すべてのファイルが異なる
.orig.tar が存在しない場合は、結果として得られる Debian で削除する必要があります
ブランチ。 これらのファイルにパッチを適用することはできません。)
慎重に使用してください。 の内容を使用しても何も警告されません。
完全に間違った上流バージョン。
--切り離された上流
.orig.tar を新しいコミットとしてインポートする場合は、可能なコミットを行わないでください。
古い上流バージョンの親。
--上流の親 コミット
追加 コミット 新しいアップストリーム バージョンをインポートする場合は (追加の) 親として。
(これは、たとえば、アップストリームの git 履歴を
パッケージの履歴が表示されるため、git が厳選する際に役立ちます)。
--許可なしの親
git config 経由で dpm.importWithoutParent が false に設定されている場合、git-dpm は
import-dsc をこのオプションなしで実行できるようにするか、少なくとも
--upstream-parent オプション。
--pristine-tar-commit |--ptc
コール 原始的なタール コミット 残りの部分の後にインポートされたすべての tarball について
import-dsc コマンドは成功しました。
--no-pristine-tar-commit
電話はしないで下さい 原始的なタール コミット 設定されている場合でも、インポートされたすべての tarball に対して
までにそうする
git 設定 dpm.pristineTarCommit true または
git 設定 ブランチ。デビアンブランチ.dpmPristineTarCommit true.
--上流の著者 著者
として使用 - 著者 への議論 git-dpm 輸入タール.
--上流の日付 date
として使用 - 日にち への議論 git-dpm 輸入タール (特に オート is
tar ファイルからの日付の抽出がサポートされています)。
--tar-exclude パターン
指定されたパターンは、解凍時に除外パターンとして tar に渡されます。
tarファイル。 複数回与えることも可能です。
パッチの適用に関するオプション:
-f | --force-commit-reuse
親とツリーのみを参照し、説明を参照しないでください。
以前のパッケージ バージョンからパッチをインポートするコミットを再利用します。
-CNUM | --パッチコンテキスト NUM
として渡されました -CNUM 〜へ git-適用。 コンテキスト行の数を指定します。
一致している必要があります。
--dpatch-allow-empty
dpatch ファイルが次のように扱われたときに何も変更されない場合でも、エラーは発生しません。
パッチ。
dpatch ファイルには任意のスクリプトを使用できるため、 git-dpm いくつかの問題があります
本当にパッチであるかどうかを検出します。 (パッチのみ対応可能です)。 もしも
パッチではないスクリプトはパッチとして扱われ、通常は次のようになります。
patch は何も変更しないため、このオプションなしではそれらは禁止されます。
--パッチシステム モード
ソースフォーマット 1.0 パッケージに使用するパッチシステムを指定します。
オート (これがデフォルトです)
を見て、どのパッチ システムが使用されているかを判断してください。 debian / rules
(と デビアン/コントロール).
なし これらはあなたが探しているパッチではありません。
歴史
.diff 内でパッチを見つけようとしないでください (例: なし)。 もし
プロジェクトがすでに存在し、上流の tarball が同じである場合は、作成します
古いもののパッチを使用して新しいもののパッチが適用された状態
そしてトップのパッチを追加して新しい状態にします。
あるパッケージの複数のリビジョンをインポートすると、それぞれの新しいリビジョンが
リビジョンはアップストリームに最大 XNUMX つの変更を追加します。このオプションは
適切なパッチのセットをほぼ自動的に作成できます。
(理想的には説明が欠落しているだけです)。
同じ変更と元に戻す場合、それらは
パッチが作成されるため、このモードはその場合にはあまり役に立ちません。
キルト を抽出して適用する debian/パッチ/シリーズ キルトのようなシリーズの上に
.diff ファイルで見つかったアップストリームの変更の可能性。
キルトファースト
として キルト モードですが、変更されていないアップストリームにパッチを適用します。
まず、.diff ファイル内で見つかった変更を厳選します。
これは通常のパッチ適用の順序ではないため、
アンパック/ビルド サイクル。これらの変更が明確でない場合、これは失敗します。
十分です (たとえば、パッチが、
.diff)。
ただし、.diff に無関係な変更のみが含まれている場合は、
各バージョンのコミットとして、より優れた履歴が得られます。
パッチをより簡単に再利用できます。
キルトを施した
として キルトファースト モードですが、パッチはすでに適用されているものとします。
.diff にあるため、それらを未変更のアップストリームの上に適用してから、
コミットを追加して .diff の状態にします。 (そうでない場合は
パッチは空になります)。
パッチ | dpatch-first | dpatch 適用済み
以下のような キルト それぞれ。 キルトファースト それぞれ。 キルトを施した モードですが、
代わりに、dpatch スタイルのパッチを探してください。 debian/パッチ/00リスト.
パッチのみがサポートされており、他の dpatch を実行している場合はサポートされないことに注意してください。
コマンド。
シンプルな | シンプルファースト | 簡単に応用できる
以下のような キルト それぞれ。 キルトファースト それぞれ。 キルトを施した モードですが、
代わりに仮定します debian/パッチ/ CDBS に適したパッチが含まれています
シンプル-patchsys.mk.
--パッチ作成者 "名 <メール>"
パッチをインポートするすべての git コミットの作成者を設定します。
--パッチのデフォルトの作成者 "名 <メール>"
作成者情報を含まないすべてのパッチに対して作成者を設定します (または、
git-dpm それを判断することはできません)。
--編集パッチ
インポートされたパッチごとに、コミット メッセージのエディタを起動します。
--レコードパッチカテゴリ
加える パッチカテゴリ: サブディレクトリにあるインポートされたパッチごとにフィールドを追加します。
of debian /パッチ。 これは〜をひき起こす アップデートパッチ 同じ場所に保管する
サブディレクトリ。
--レコードパッチ名
加える パッチ名: フィールドをインポートされた各パッチにその名前とともに追加します。 これは〜をひき起こす
アップデートパッチ 元の名前で保存します。
レコード-dsc [オプション] コミット .dsc ファイル
元の .dsc ファイルを次の場所に保存します。 dscs 含まれるファイルを保存した後に分岐する
プリスティンタールを使用。
最初の引数はタグまたはコミットです。 git-dpm 州内のプロジェクト
に属する .dsc ファイルであり、XNUMX 番目の引数は .dsc ファイル自体。 の
参照するファイルは、ファイル自体と同じディレクトリにあることが期待されます (ファイル自体が存在する場合)
が必要です)。
ファイルとその内容に適切な名前が付けられていることを確認するためにいくつかのチェックが行われます。
問題のコミットと一致しますが、明らかな間違いを避けるために大まかにのみ一致します (
たとえば、バージョンのみがチェックされますが、.debian.tar は解凍されてチェックされません。
たとえば、ファイルは実際には同じです)。
オプション:
--ブランチの作成
新しいを作成します dscs ブランチ。
--allow-unsigned
署名なしの録音を許可する .dsc ファイル。 これは通常、次の点を無視します
それらをまったく保管していません。
debian/.git-dpm file
git-dpm のデバッグを除いて、このファイルの内容について知る必要はありません。
ファイルには 8 行が含まれていますが、将来のバージョンではさらに多くの行が含まれる可能性があります。
最初の行は、このファイルが何に関するものであるかのヒントであり、無視されます。
次に、記録された状態には 4 つの git commit ID があります。
まず、パッチが適用されたときのパッチ適用されたブランチの状態 debian /パッチ 最後でした
更新しました。
次に、パッチが適用されたブランチが最後に Debian にマージされたときの状態
ブランチ。
次に、パッチ適用されたブランチが最後にマージされたときの状態の上流ブランチ。
いよいよ上流分岐。
次の 3 行は、ファイル名、sha1 チェックサム、origtarball のサイズです。
記録された上流ブランチに属します。
ショートカット
ほとんどのコマンドには、入力を避けるために短いエイリアスもあります。
更新パッチ: up、up、ci
準備する:準備する
チェックアウトパッチ済み: co、cp
リベースパッチ済み: rp
パッチの適用: ap
import-tar: それ
import-new-upstream: inu、inu
レコード新規アップストリーム: rnu、rnu
Debian でのマージパッチ適用: マージパッチ適用
Record-new-upstream は古い名前 new-upstream でも利用可能ですが、おそらく
将来のバージョンでは削除される予定です (混乱を避けるため)。
ブランチ
上流の分岐 (アップストリーム|上流の-どのような)
このブランチには上流のソースが含まれています。 内容は十分に等しい必要があります
上流の tarball の内容。
十分に等しいということは、dpkg-source がパッチを適用したものとの違いを認識しないことを意味します。
ツリーとオリジナルの tarball をパッケージから取り出し、パッチを適用し、 debian / rules
走る。 通常は、orig の内容をそのまま保存するのが最も簡単です。
ここのタールボール。 そうすれば、未処理のタールにも使用できます。
このブランチには debian/ サブディレクトリが含まれる場合がありますが、通常は無視されます。
そのブランチを公開することも、
debian/.git-dpm Debian ブランチ内のファイル。
通常、新しい上流ブランチに古いブランチが含まれることは理にかなっていますが、これは
は必要ありません。 自分で作成したもの、または誰かが作成したものから切り替えることができるはずです
外部 vcs インポート ツールは、ネイティブの上流ブランチに XNUMX つを生成するか、その逆を行います。
問題なく。 Debian ブランチにはパッチが適用されたブランチがあることに注意してください。
祖先とパッチされたブランチが上流ブランチ、あなたの上流ブランチは
Debian ブランチの歴史の一部です。 どちらができるという利点があります
履歴からブランチの正確な状態を直接再作成します (例: git
チェックアウト -b 古い状態 myoldtagorshaofdebianbranchコミット ; git-dpm prepare ; git
チェックアウト 不安定な古い状態)しかし、それらの履歴を削除するという欠点があります
リポジトリから手動で作業する必要があります。
パッチを適用したブランチ (パッチを当てた|パッチが適用されました-どのような)
このブランチには、アップストリーム ソースへのパッチが含まれています。 (もちろん意味は
これは上流のブランチに基づいています)。
すべてのコミットは、結果として得られるパッケージに単一のパッチとして保存されます。
git が線形パッチ シリーズを生成できるようにするには、理想的には次の線形チェーンにする必要があります。
コミット。その説明は他の人にとって役立ちます。
このブランチは定期的にリベースされるため、公開しないでください。 代わりに、次のことができます
を使用してこのブランチを再作成します git-dpm チェックアウトパッチ済み に保存されている情報を使用して
debian/.git-dpm.
内容を変更することはできません デビアン/ この中のサブディレクトリ
ブランチ。 ファイルの名前を変更したり、ファイルを削除すると、通常、不要な大きなパッチが発生します。
Debian ブランチ (マスター|どのような)
これがプライマリブランチです。
このブランチには、 デビアン/ ディレクトリにパッチが適用されたブランチがマージされています。
含まれていないすべての変更 デビアン/, .git* または、ファイルの削除はパッチを当てた環境で行う必要があります。
ブランチ。
代替ブランチ名
上流ブランチとパッチ適用ブランチの代替ブランチ名を指定できます。
特定の Debian ブランチ、またはブランチを強制的に通常の Debian ブランチにする
たとえば、追加することで別のブランチの上流ブランチと見なされます。 dpmアップストリームブランチ
dpmPatchedBranch 問題の Debian ブランチの項目を設定します (必要な項目は
両方とも、一方のみがエラーとして扱われます)。
次の例は、実際的な目的では何も行わないものです。
git 設定 ブランチ.マスター.dpmアップストリームブランチ アップストリーム
git 設定 ブランチ.マスター.dpmPatchedブランチ パッチを当てた
COPYRIGHT
著作権 © 2009,2010 ベルンハルト R. リンク
これは自由ソフトウェアです。 コピー条件については、ソースを参照してください。 保証はありません。 いいえ
商品性や特定の目的への適合性についても。
報告 バグ そして 問題
バグや機能の提案を報告できます。 [メール保護] またはへ
自分。 質問はこちらまでお送りください [メール保護] または私に
[メール保護].
onworks.net サービスを使用してオンラインで git-dpm を使用する