2015-03-18 堀之内 作成開始 2015-03-24 堀之内 追記
タグについてのルール:
LICENCE.txt 中の期間の記述を確認し,現在の年までカバーしてなければ更新して commitする。
シェル変数設定
version=`grep VERSION lib/numru/misc/version.rb | sed -e 's/"\s*$//' -e 's/^.*"//'` tag=v$version
Gem作成
rake build
リリース
rake release
これで,未コミット確認, タグ付け,RubyGemsへの送信が行われる。 タグ書式は v0.1.2 など ("v#{VERSION}")。
作業日 2015-03-18
注意: git の新しい版では cvsimport 時に bare レポジトリを 作れるようだが,電脳サーバ上のは非対応なので一旦 non bare として作って,別途作った bare レポジトリからfetchする。
dennou-k にて.
$ cd /GFD_Dennou_Club/ftp/arch/ruby/products/numru-misc/ $ mkdir git_repos $ cd git_repos
次の内容でカレントディレクトリに authors.txt を準備(先頭にスペースいれない)
horinout=T Horinouchi <horinout>
import 実行
$ mkdir tmp_gitimport $ cd tmp_gitimport $ mkdir numru-misc $ cd numru-misc $ git cvsimport -v -i -k \ -d /GFD_Dennou_Club/ftp/arch/ruby/cvsroot \ -A ../../authors.txt \ numru-misc
dennou-k にて.
$ cd /GFD_Dennou_Club/ftp/arch/ruby/products/numru-misc/git_repos $ mkdir numru-misc.git $ cd numru-misc.git $ git --bare init --shared=0664
$ git --bare fetch ../tmp_gitimport/numru-misc master:master
レポジトリの名前設定. カレントディレクトリの description を設定する.
$ echo NumRu::Misc > description
(GPhys の git を設定した時と違って,今回は post-receive.sample が hook 以下にない:いつの間にか出来なくなった? -- ともかくなしで乗り切る).
$ git config hooks.mailinglist "horinout@.., eriko@..." # コンマ区切りでメアドを並べる $ git config hooks.announcelist "horinout@.., eriko@..." # 上と同じに $ git config hooks.emailprefix "[DennouRuby git (NumRu::Misc)]" $ cat config $ cd hooks/
次の内容でカレントディレクトリにファイル post-receive を作成(先頭にスペースいれない)
#!/bin/sh . $(dirname $0)/post-receive-email
パーミション変更
$ chmod +x post-receive
post-receive-email をコピーして,カスタマイズ.
$ cp /usr/share/doc/git/contrib/hooks/post-receive-email ./post-receive-email.orig $ cp /usr/share/doc/git/contrib/hooks/post-receive-email ./ $ chmod +x post-receive-email
ここでエディターを開いて差分が次のようになるように編集 (2015-03-24現在の設定)。
$ diff --expand-tabs -u post-receive-email.orig post-receive-email --- post-receive-email.orig 2012-11-24 16:03:14.000000000 +0900 +++ post-receive-email 2015-03-24 14:05:41.223634961 +0900 @@ -1,5 +1,14 @@ #!/bin/sh # +################################################ +# Custermization +# +# * 2015-03-18 Horinouchi +# generate_email_header: simplified the first few lines of the email body +# * 2015-03-24 Horinouchi +# modified email subject (deleted $projectdesc to include it in $emailprefix) +################################################ +# # Copyright (c) 2007 Andy Parkins # # An example hook script to mail out commit update information. This hook @@ -232,7 +241,7 @@ # Generate header cat <<-EOF To: $recipients - Subject: ${emailprefix}$projectdesc $refname_type $short_refname ${change_type}d. $describe + Subject: ${emailprefix} $refname_type $short_refname ${change_type}d. $describe MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit @@ -241,9 +250,7 @@ X-Git-Oldrev: $oldrev X-Git-Newrev: $newrev - This is an automated email from the git hooks/post-receive script. It was - generated because a ref change was pushed to the repository containing - the project "$projectdesc". + Git repository "$projectdesc" has been updated. The $refname_type, $short_refname has been ${change_type}d EOF
レポジトリ上でアップデートがあった際に毎回 git update-server-info が呼ばれるようにする。 これは,上記の hook ディレクトリ上で
cp post-update.sample post-update
れば良い(∵ post-update.sample の中身は,コメント行以外は exec git update-server-info のみ)。
上で一時的に作成した作業用ディレクトリ tmp_gitimport を削除する。
作成者の手元のマシン(dennnou-kでなく)にて.
手元のマシンの適当なディレクトリ (git_reposとする) に clone を作成.
$ cd ~/davis/WORK/numru-misc/ $ mkdir git_repos $ cd git_repos $ git clone -v dennou-k.gfd-dennou.org:/GFD_Dennou_Club/ftp/arch/ruby/products/numru-misc/git_repos/numru-misc.git $ cd numru-misc $ git status
無視するファイルパターンを登録
$ cat > .gitignore *.[oa] *~ *.so Makefile ChangeLog ^D
(先頭にスペースは入れない. ChangeLogは自動生成に切り替えるので無視ファイルに.)
$ git add .gitignore $ git commit -m "Registered files (patterns) to ignore in the repository"
ChangeLog を mv (ファイル名に付ける日付は内容をみて適切に設定)
$ git mv ChangeLog .ChangeLog.until201414 $ git commit -m "Renamed the current ChangeLog to back up."
変更を push する.
$ git push