Hatena::ブログ(Diary)

みずぴー日記

2010-11-18(木)

Git+Redmineな人におすすめのフックスクリプト集

| Git+Redmineな人におすすめのフックスクリプト集 - みずぴー日記 を含むブックマーク

機能

チケット番号付加
  • id/12というブランチで作業してるときは、コミットメッセージの末尾にrefs 12を自動でつけてくれます
  • Redmineのチケットごとにブランチを切るようにすると、マジ便利

f:id:mzp:20101118201828p:image

masterブランチへのコミット拒否
  • masterブランチへのコミットを拒否する
  • 必ずトピックブランチを切るようになる

f:id:mzp:20101118201829p:image

pushされたときにチケットIDのないコミットの拒否
  • チケットIDのないコミットのpushを拒否します

f:id:mzp:20101118201830p:image

ダウンロードインストール方法

RewishRewish 2010/11/19 19:19 これはすごく良いですね!早速使わせていただきます!

あと、「masterブランチへのコミット拒否」の
トピックブランチがトッピクブランチになっています。

mzpmzp 2010/11/20 00:10 あざっす。直しました。

2009-08-14(金)

anythingのcandidates-fileプラグイン用のファイルリストをgitから生成する

| anythingのcandidates-fileプラグイン用のファイルリストをgitから生成する - みずぴー日記 を含むブックマーク

anything-match-pluginの制限→candidates-fileプラグイン推奨 - http://rubikitch.com/に移転しましたのcandidates-fileプラグイン、想像以上に便利です。

で、これを使うにはファイルのリストを自前で用意する必要があり、以下のようなコマンドが紹介されています。

$ find ~ > /tmp/tmp; mv /tmp/tmp /log/home.filelist

これだと、*~みたいな余分なファイルもファイルリストに登録されるのがちょっと気になります。

一方、ボクは~/cに必要なファイルを全部そこに放りこんで、それをgitで管理してます。そこでは.gitignoreを使って、余分なファイルを全部無視するようにしてあります。

じゃあ、この情報を使わないと損だよね。というわけで、gitからファイルリストを生成するシェルスクリプトを書いてみた。

#!/bin/sh
function update(){
    cd $1
    # 絶対パスが出力されないので、補完する
    git ls-files | sed "s_^_$1/_" > /tmp/$2.$$
    mv /tmp/$2.$$ ~/c/filelist/$2
}

# ~/cのファイルリストを~/c/filelist/cに生成する
update ~/c c

# ~/c/external/schemeのファイルリストを~/c/filelist/schemeに生成する
update ~/c/external/scheme scheme

git submoduleまでは追ってくれないのが、ちょっと残念。しょうがない気もするけど。

2008-10-07(火)

git stでgit status(gitのエイリアス定義)

| git stでgit status(gitのエイリアス定義) - みずぴー日記 を含むブックマーク

.gitconfigに

[alias]
st = status

と書くとgit stでgit statusになる。

これはいいね。

2008-05-09(金)

mzp2008-05-09

GitHubでアバター画像を設定したい

| GitHubでアバター画像を設定したい - みずぴー日記 を含むブックマーク

GitHubのSource Browserなどで表示されるアバター画像の設定でつまったので、メモ。

まず、Gravatar - Globally Recognized Avatarsでアバター画像を設定する。Operaだと、うまくアップロードできなかったので、Firefoxを使った。

次に、GitにGravatorに登録したメールアドレスを登録する。

$ git config --global user.email foo@example.com

これでコミットしたときに、Gravatorに登録した画像が表示されるようになる。

右上のアバター画像を設定したいときは、accountから、Gravatorに登録したメールあアドレスを登録すればいい。

2008-05-08(木)

git submodule

| git submodule - みずぴー日記 を含むブックマーク

woremacxの日記のように、gitで外部レポジトリを扱えるようにする方法。

外部レポジトリの追加

git submodule addすると、外部レポジトリをサブモジュールとして取り込めるようになります。

# cloneする
$ git clone git://example.com/repos/private/
$ cd private

# git://example.com/repos/external/を追加する
$ git submodule add git://example.com/repos/external/

# commitしておく
$ git commit -m "Add submodule"
$ git push

外部レポジトリ内での作業

外部レポジトリで作業したときは、そこでコミットするほかに、上位の自分のレポジトリでもコミットしておく必要がある。自分のレポジトリと外部レポジトリのリビジョンの対応関係を覚えておくためらしい。

# 外部レポジトリでいろいろ作業する
$ cd external
$ echo foo >> foo.txt
$ git add foo.txt
$ git commit -m 'some text...'
$ git push

# 自分のレポジトリでもコミットする
$ cd ..
$ git add external
$ git commit -m 'update submodule'
$ git push

git cloneしたときの作業

自分のレポジトリをコピーしただけでは、サブモジュールはコピーされません。git submodule initとgit submodule updateをする必要がある。

# 別のマシンで
$ git clone git://example.com/repos/private/
$ cd private

# externalの中はcloneされない
$ ls -a
. ..

# git submodule init/git submoudle updateするとcloneされる
$ git submodule init
$ git submodule update

また、これだけではbranchがmasterになっていないので、masterに切り替える必要がある。

# externalはbranchが(no branch)になっている
$ cd external
$ git branch
* (no branch)
  master

# branchをmasterにする
$ git checkout master
...
Switched to branch "master"

参考