GCC Git ミラーの Release に tag を打つ

GCC 公式の Git ミラー http://gcc.gnu.org/git/?p=gcc.git は, Release に対して tag が打たれていません.
で,それは不便なので, Release に対して tag を打つ方法を紹介します.


やり方は簡単で,適当な branch ( origin/gcc-4_6-branch 等)に対し,

git log origin/gcc-4_6-branch --grep="Mark as release"

と log を検索するだけです.


gcc-4_6-branch ならば,

$ git log origin/gcc-4_6-branch --grep="Mark as release"

commit 31b6f3a04d5ac5d9b9dddafc62cc4e41beb5e590
Author: gccadmin <gccadmin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Mon Jun 27 10:05:29 2011 +0000

    Mark as release
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@175472 138bc75d-0d04-0410-961f-82ee72b054a4

commit cc52afb59a7d680efc31b952a328b1d53022d8bc
Author: gccadmin <gccadmin@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Fri Mar 25 16:57:32 2011 +0000

    Mark as release
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@171512 138bc75d-0d04-0410-961f-82ee72b054a4

などと出力されるので,あとは得られた commit ID に対して適切にタグを打てば,完了です.

$ git tag gcc-4.6.1 31b6f3a04d
$ git tag gcc-4.6.0 cc52afb59a

バージョンに関しては,日付や順番などから,容易に推測できるでしょう.


ちなみに, gcc-4.5.0 以降*1の各 tag の commit ID は,以下の通りです:

gcc-4.5.0
72d56ebb66ff343f779686a70c7be429238f5d5d
gcc-4.5.1
1f8be1d60ef7e4aba6fc9c289312a23478660404
gcc-4.5.2
3598ee5d488243596fba837438824f6e7ab0b035
gcc-4.5.3 *2
db65a9d18789609ec70d37f0bb956dd4d6420417
gcc-4.6.0
cc52afb59a7d680efc31b952a328b1d53022d8bc
gcc-4.6.1
31b6f3a04d5ac5d9b9dddafc62cc4e41beb5e590


あと,おまけで,今週の weekly snapshot の commit ID も貼りつけておきます:

gcc-4.4-20110719
a2cef741559e0a8f739fef66d66829efa3c36e82
gcc-4.5-20110721
f242b790f022e97d9c4592a8ecdc9b4f3246f1d5
gcc-4.6-20110722
03df097af7c79784e1d1bf99a4e771c8b2163807
gcc-4.7-20110723
97c251e4f3e969c053c979dd702eb6ae05d78b4e

これら snapshot の commit ID に関しては, gcc からの案内メールに SVN の commit 番号が記されているので, log を調べてそれっぽい commit を checkout して,念のため公式からダウンロードした snapshot に対する diff を取ることで確かめていたりします.

*1:ラムダ式のない C++ とか考えられないので, 4.5 以降しか使う気になりませんです

*2:リリース通知のメールは存在しないようです