jgitでファイル変更内容を取得する

前回はjgitを使用して範囲内のCommit一覧を取得しました。今回は指定したCommit間の追加/修正/削除ファイル一覧を取得します。

流れとしては以下になります。

  1. Repositoryインスタンス作成
  2. RevWalkインスタンス作成
  3. DiffFormatterインスタンス生成とRepository設定
  4. 範囲となるRevCommit(始点、終点)インスタンス作成
  5. RevCommitからRevTreeインスタンス取得
  6. DiffFormatterでDiffEntry一覧を取得

Continue reading “jgitでファイル変更内容を取得する”

git logのrange指定をjgitで行う

前回の記事「git logのrange指定」で行ったことをJavaから行います。gitへのアクセスを一から書くと大変なので今回はjgitを使用します。

行うことの流れとしては以下の通り。

  1. Repositoryインスタンス作成
  2. RevWalkインスタンス作成
  3. 範囲となるRevCommit(始点、終点)インスタンス作成
  4. RevWalkにRevCommit(始点、終点)をmark
  5. RevWalkで範囲内のRevCommitを取得

Continue reading “git logのrange指定をjgitで行う”

[Git]cherry-pick時の名前

師匠も走る師走。この業界は長いこと年の瀬が続いている気がします。

閑話休題。

つい最近、開発ブランチにある他人の修正をcherry-pickしたときに気付いたので話のネタ(?)的に投稿。

cherry-pick対象のコミットのauthorがそのまま新しいコミットのauthorになるって知っていました?
ブランチdevにあるAさんのコミットをBさんがブランチmasterでcherry-pickすると、masterにできるコミットのauthorはAさんになる。Bさんがcherry-pickしたのに。…これは…完全犯罪ができる!?

もちろん何もログが残っていないわけではなく、authorではなくcommitterとしてBさんの名前が入るし、cherry-pickだよって情報も入るそうな。

GitのviewerとしてSourceTreeを使ったりするんだけれど、ツリー上に表示する名前に自分の名前が入ってなくて驚いた次第です。他人のコミットをcherry-pickしたのは初めてだったので。

では。