SourceTree で指定のリビジョン間の差分ファイルだけ取り出したい

さらに改良したものを用意しました。こちらも良ければどうぞ

世の中には、差分のファイルだけ用意して上書きコピーなどという実にざんねんな運用で回っている非モダンな開発現場があるわけで…。

いや、もろもろの事情でそうせざる追えない、ということにしておきましょう。

とにかくとあるタスクで作業したファイルだけを取り出して、どこぞへ保存するということを求められることが多々あります。

せっかくgit を使っているのだし、その辺楽にしたいと思って試行錯誤してみました。

他にも、同じようなスクリプトはありましたが、どうもやりたいことにマッチしなかったので今回は作成しました。

SourceTree のカスタムアクション

チームでは SourceTree を使っているので、カスタムアクションで取り出せるようなスクリプトを用意しました。(ruby)

スクリプトを適当な場所に保存して、カスタムアクションに登録してください。

そして引数として、$SHA をセットしてください。

git-export-diff-01

引数として、一つ以上のハッシュを受け付けるスクリプトなので、コマンドからでも利用できます。

アーカイブはリポジトリのディレクトリと同じところへ、{ディレクトリ名}-{ハッシュ}で出力しますが、お気に召さなければどうぞかえてください。

仕様

選択したコミットと一個前のコミット、もしくは選択範囲の最初と最後のコミット間で、追加更新などされたファイルだけをアーカイブして、リポジトリと同じディレクトリに保存します。

SourceTree のファイル一覧の場所に出てくるものがアーカイブされます。

一応ざっくりとだけ動作確認して、とりあえずいい感じだったのでよしとしました。

ただマージ周りでもう少し複雑になると、想定してないアーカイブを吐き出す…かも。

駄目なところがあればご報告、アドバイスいただけると幸いです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする