]
トップ «前の日記(2013-09-22) 最新 次の日記(2013-10-29)» 編集

Yukiharu YABUKI の tDiary



このtDiaryを検索します。

2013-10-28 [長年日記]

_ [Debian] git-buildpackage を始めるにあたってのチェックポイント

git-buildpackage (以下 gbp と略す)を使いはじめるにあたって、気になった点を列挙しておきます。

  • gitで管理するわけですから、どのエンティティを外に出すか決めておく。個人のメールアドレスなのか debian.org のメールアドレスなのか。
  • gbp import-dcs --download は便利だが、git config --global user.name および git config --global user.email の設定がしてなかったり、適切かどうかは事前にチェックしておくのが良い
  • いったん、git repo ができてしまえば、git config user.name や git config user.email で運用できるので自分の好みのエンティティを使えばいい。
    • 便利機能を使わないで、自分でリポジトリを作って、設定してから gbp import-dsc をすればいいのかもしれないが、まだ試してはいない
  • githubでgbp の練習をしたいなら、github側でリポジトリを初期化するのではなく、gbp create-remote-repo --pristine-tar --remote-url-pattern=git@github.com:yabuki/xfireworks.git のように私はやってみた。ちなみに、--remote-url-pattern を指定しなかったら git.debian.org が暗黙の指定となる。
  • --pristine-tar の指定は、ケースバイケースだが、gbp buildpackage はなかったら orig.tar.gz (圧縮方法は指定できる) を作るので、new upstream の時に上げた、オリジナルソースと異なるなら考える
  • ちなみに、upstream からの変更点についてはダウンロードして変更したものは git が全て追跡しているので、upstream を起点とする連鎖は保持していると考えられるのではないか。なので新規パッケージを作るときに、upstream が指定するソースコードをダウンロードしているか?どうかが神経の使い所か。
    • git tag -v deiban/1.0 などで検証できるってことは、やっぱりここまでの変更は私がやりました。ってのを明示して責任の所在をハッキリさせる意味なんだろうな。upstream/1.0 もこの内容で upstream からダウンロードして、私が展開しましたと。
  • --git-bilderオプションは必要に応じて pbuilderや cowbuilder や qemubuilder を呼び出してビルドする。プログラムによって、異なるアーキテクチャもエミュレーションしてビルドをチェックできるようだから、一度は上記の環境設定と実行方法を学んでおくと良いかもしれない。
  • ブランチレイアウトは、ドキュメントにもあるが、upstram-branch, debian-branch, (使うのなら)pristine-tar, stable, security, nmu, dfsg, backports, snapshot など自分の使い方を考えておくのがいいのではないか。gitだからあとからでもブランチは切れるが、練習しておかないといきなり本番投入は厳しいと思います。「思い通りに設定する方法」や「便利に使う設定」を見つけて設定する時間もありますし。
  • debian/.gbp.conf は、チームならチームの方針が決まったものだけを設定するのが良さそうですね。ほかにも自分のユーザー設定やリポジトリだけに有効なgbp.confを置けるので、自分で試しながらgbp.confを練り込む感じなんでしょうか。
  • gitでtagをgpg でサインする機能を提供しているが、ちゃんと事前に検証方法もドキュメントで調べておくこと。2.6 Git の基本 - タグのあたりですかね。
  • --key-id=オプションは、設定ファイルに書いて安心する前に、コマンドラインで指定して、動作を確認してから。(0xは要らんかった)

_ [Debian] gbp で、そういうものなのか?と思ったが、多分困らないこと

gbp をつかって、慣れていないため? かそういうものなのかと思う部分について

  • gbp create-remote-repo すると、カレントか.gitなのかわからないが、bare repo を作ってから転送しているようだ。やり直したかったら、リポジトリを消して、git remote remove orign すれば、やり直しできるが、たいていの場合、そもそものリポジトリ操作ミスをリカバリーするなら、手順によっては、全部消してやり直したほうが楽かもね