git リポジトリから差分を取り出すスクリプト(SourceTree でも使える)

この前作ったスクリプトをより改良しました。

ターミナルでも使えますが、SourceTree のカスタムアクションで使うほうがわかりやすいです。

こんな感じの機能が git export みたいな感じで実装されてればよいのですが…。

git-export-tools-01

このリポジトリをクローンしてください。必要なのはスクリプトだけなので、アーカイブでもファイルだけでもいいです。

任意の場所に保存したら、SourceTree のカスタムアクションに登録します。

引数としてハッシュが必要なので $SHA を Parameters に画像のようにセットします。

後は、リビジョン一覧から取り出したいリビジョンを選択して、アクションを呼び出してください。

git-export-copy

指定したリビジョンのファイルセットを出力します。

git-export-diff

指定したリビジョンでコミットされたファイルを出力します。

二つ以上のリビジョンを選択することで、その間にコミットされたファイルについて出力します。

git-export-config.yml.sample

動作について変更できる設定ファイルです。

git リポジトリのルートに git-export-config.yml として配置してください。

必須ではありません。なくても動作します。

ちなみにこれと同じ設定をコマンドライン引数で渡すことも可能なので、

設定ファイルを配置せず、カスタムアクションの Parameters で引数を渡すことでも

動作の設定が可能です。 README.md 参照。

Windows の場合

ruby と git の入った mac OS X での動作しか考慮してなかったので、Windows で同じ設定では動作しませんでした。

試行錯誤の結果、ひとまず動作させる方法がありましたので記しておきます。

(git-export-diff だけです。未確認ですが他のも同じ設定で動くかもしれません。)

ruby と git をインストール

コマンドプロンプトで ruby と git にパスが通った状態にしてください。

カスタムアクション設定

git-export-tools-02

画像のようにそれぞれのフィールドに設定してください。

なお、スクリプトの実装の都合で zip アーカイブとして出力することに限られます。

(コマンドプロンプトの記法で動かすとか GnuTar とか入れてみたんですが、それでも微妙な課題が多かったので諦めました)

もっと良い方法がアレばご教授頂きたい次第です。

シェアする

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

フォローする