カテゴリー別アーカイブ: 未分類

master以外でgit svn dcommitできなくする

!!! CAUTION !!!

このエントリはGit Advent Calendar 2014 – Qiitaではありません。

 

背景

訳あってセントラルリポジトリがSubversionだった場合、”当然”git-svnを使って開発を進めていきます。

そんなとき、たまに間違ってフィーチャーブランチ上でgit svn dcommitしてしまうことがあります。これをやってしまうとmasterをSVNと同期させるのが少し手間だったりします。

そこで、master以外ではgit svn dcommitできなくしてしまおうというのが、このエントリの趣旨です。

 

前準備

gitには当然コマンドをフックする仕組みがあります。しかし、標準のフック機構はgit-svnでは使えません。

そこで、まずは以下の「git-svn-hooks」を導入します。

rkitover/git-svn-hooks

導入手順がREADME.mdに書いてありますので、参考にして導入します。

なお、私の場合、次のような手順で入れました。

  1. ダウンロードしたgit-svn.shを~/binにコピー
  2. ~/.bashrcに次の記述を追加
    source ~/bin/git-svn.sh

 

フックスクリプトの作成

あとはgit svn dcommitをフックして、master以外のブランチでは警告メッセージを出すようにします。例えば、こんな感じの.git/hooks/pre-svn-dcommitファイルを作成します。

 

動作確認

任意のgit svn cloneしたリポジトリで、フィーチャーブランチを作ってgit svn dcommitすると、次のようにエラーになります。

$ git checkout -b some-feature
$ git svn dcommit
WARNING: curret branch is NOT "master"

これで安心してgit svn dcommitできますね!

広告

実例で学ぶASP.NET 4.5 Webフォーム 新機能活用法:第3回と第4回が公開されています

ASP.NET 4.5の「モデルバインド」を活用する
ASP.NET 4.5の「モデル検証」を活用する

ご無沙汰していましたが、CodeZineで公開中です。

バックナンバーはこちら↓

実例で学ぶASP.NET 4.5 Webフォーム 新機能活用法:CodeZine(コードジン)

TDDしないケースについてのUncle Bobの考え

なごや方面のテストエンジニアの@kyon_mmさんが、こんなことを呟いていました。

 

 

で、紹介されていたのが、以下のエントリ。

 

The Pragmatics of TDD | 8th Light

 

読んでみると、ボブおじさん(Uncle Bob)ことRobert C. MartinがTDDしないケースについて言及していて素晴らしいエントリでした。

ので、勝手訳してみます。(添削していただいた@liliputさんに感謝!)

 

なお、他にも@Posauneさんが先に訳していましたので、一緒に紹介しておきます。

https://gist.github.com/posaunehm/5109379