この前作ったスクリプトをより改良しました。
ターミナルでも使えますが、SourceTree のカスタムアクションで使うほうがわかりやすいです。
こんな感じの機能が git export
みたいな感じで実装されてればよいのですが…。
このリポジトリをクローンしてください。必要なのはスクリプトだけなので、アーカイブでもファイルだけでもいいです。
任意の場所に保存したら、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
にパスが通った状態にしてください。
カスタムアクション設定
画像のようにそれぞれのフィールドに設定してください。
なお、スクリプトの実装の都合でzip
アーカイブとして出力することに限られます。
(コマンドプロンプトの記法で動かすとかGnuTar
とか入れてみたんですが、それでも微妙な課題が多かったので諦めました)
もっと良い方法があればご教授頂きたい次第です。