----
[[trac on FreeBSD]]
なんだか、SVN Tracの記事が散漫で見にくくなっているので、改訂しる
#counter([total|today|yesterday]);
&lastmod;
#contents
----
*リポジトリの文字コード [#y411579d]
http://discypus.jp/wiki/?%A5%BD%A5%D5%A5%C8%2FBug%20Tracking%2Ftrac%2F%C6%FC%CB%DC%B8%EC%B2%BD#content_1_3
http://docs.python.jp/2.4/lib/standard-encodings.html
**trac.ini [#zc0d4e15]
trac.ini の該当部分default_charset = を UTF-8 から shift_jis にする
[trac]
authz_file =
authz_module_name =
auto_preview_timeout = 2.0
auto_reload = False
backup_dir = db
database = sqlite:db/trac.db
debug_sql = False
# default_charset = utf-8
default_charset = shift_jis
*comit error [#gd7e00ea]
[Wed Feb 10 16:32:12 2010] [error] [client 219.117.246.208] Could not MERGE resource "/svn/RS_Base/!svn/act/8af852c8-bb75-0f4c-aa2d-8cf4704cd6b1"
into "/svn/RS_Base/trunk". [409, #0]
[Wed Feb 10 16:32:12 2010] [error] [client 219.117.246.208] Commit blocked by pre-commit hook (exit code 1) with output:\nCan't locate Config/IniFiles.pm in @INC (@INC
contains: /usr/local/lib/perl5/5.8.9/BSDPAN /usr/local/lib/perl5/site_perl/5.8.9/mach /usr/local/lib/perl5/site_perl/5.8.9 /usr/local/lib/perl5/5.8.9/mach
/usr/ local/lib/perl5/5.8.9 .)
at /usr/local/share/subversion/hook-scripts/commit-access-control.pl line 40.\nBEGIN failed--compilation aborted at /usr/local/share/subversion/hook-scripts/commit-access-control.pl line 40.\n [409, #165001]
k222#
*portinstall devel/p5-SVN-Hooks [#x64db2d3]
Installing /usr/local/lib/perl5/site_perl/5.8.9/SVN/Hooks.pm
Installing /usr/local/lib/perl5/site_perl/5.8.9/SVN/Hooks/DenyFilenames.pm
Installing /usr/local/lib/perl5/site_perl/5.8.9/SVN/Hooks/JiraAcceptance.pm
Installing /usr/local/lib/perl5/site_perl/5.8.9/SVN/Hooks/CheckMimeTypes.pm
Installing /usr/local/lib/perl5/site_perl/5.8.9/SVN/Hooks/CheckCapability.pm
Installing /usr/local/lib/perl5/site_perl/5.8.9/SVN/Hooks/Mailer.pm
Installing /usr/local/lib/perl5/site_perl/5.8.9/SVN/Hooks/CheckProperty.pm
Installing /usr/local/lib/perl5/site_perl/5.8.9/SVN/Hooks/UpdateConfFile.pm
Installing /usr/local/lib/perl5/site_perl/5.8.9/SVN/Hooks/DenyChanges.pm
Installing /usr/local/lib/perl5/site_perl/5.8.9/SVN/Hooks/Notify.pm
Installing /usr/local/lib/perl5/site_perl/5.8.9/SVN/Hooks/AllowLogChange.pm
Installing /usr/local/lib/perl5/site_perl/5.8.9/SVN/Hooks/CheckStructure.pm
Installing /usr/local/lib/perl5/site_perl/5.8.9/SVN/Hooks/CheckLog.pm
Installing /usr/local/lib/perl5/site_perl/5.8.9/SVN/Hooks/CheckJira.pm
Installing /usr/local/lib/perl5/site_perl/5.8.9/SVN/Hooks/AllowPropChange.pm
Installing /usr/local/lib/perl5/5.8.9/man/man3/SVN::Hooks::DenyFilenames.3
Installing /usr/local/lib/perl5/5.8.9/man/man3/SVN::Hooks::JiraAcceptance.3
Installing /usr/local/lib/perl5/5.8.9/man/man3/SVN::Hooks::CheckMimeTypes.3
Installing /usr/local/lib/perl5/5.8.9/man/man3/SVN::Hooks::CheckCapability.3
Installing /usr/local/lib/perl5/5.8.9/man/man3/SVN::Hooks::Mailer.3
Installing /usr/local/lib/perl5/5.8.9/man/man3/SVN::Hooks::CheckProperty.3
Installing /usr/local/lib/perl5/5.8.9/man/man3/SVN::Hooks::UpdateConfFile.3
Installing /usr/local/lib/perl5/5.8.9/man/man3/SVN::Hooks::DenyChanges.3
Installing /usr/local/lib/perl5/5.8.9/man/man3/SVN::Hooks::Notify.3
Installing /usr/local/lib/perl5/5.8.9/man/man3/SVN::Hooks::AllowLogChange.3
Installing /usr/local/lib/perl5/5.8.9/man/man3/SVN::Hooks::CheckStructure.3
Installing /usr/local/lib/perl5/5.8.9/man/man3/SVN::Hooks.3
Installing /usr/local/lib/perl5/5.8.9/man/man3/SVN::Hooks::CheckJira.3
Installing /usr/local/lib/perl5/5.8.9/man/man3/SVN::Hooks::AllowPropChange.3
Installing /usr/local/lib/perl5/5.8.9/man/man3/SVN::Hooks::CheckLog.3
Writing /usr/local/lib/perl5/site_perl/5.8.9/mach/auto/SVN/Hooks/.packlist
*フックスクリプトを用いてLOGを編集しても [#re4457fe]
k222# trac-admin /usr/local/www/apache22/data/trac/RS_Base/ resync
Resyncing repository history...
59 revisions cached.
Done.
しないと、編集結果はTracに反映されません。
*フックスクリプトの設置 [#r8a484bf]
コミット済みのリビジョンのログを編集するには、フックスクリプトというのを使えるようにしなければいかん、みたいだ。
ということで、repos/RS_Base/hooks/ 以下のファイルを弄る
Unix 系OSの場合
フックスクリプトのテンプレートファイルの名前を変更する。
例
start-commit.tmpl → start-commit
pre-commit.tmpl → pre-commit
スクリプトを編集する ←これが結構ハマル
実行属性をつける
-rw-r--r-- 1 www www 1955 Jan 11 08:25 post-commit
-rw-r--r-- 1 www www 1638 Jan 11 08:25 post-lock
-rw-r--r-- 1 www www 2267 Jan 11 08:25 post-revprop-change
-rw-r--r-- 1 www www 1567 Jan 11 08:25 post-unlock.tmpl
-rw-r--r-- 1 www www 3410 Jan 11 08:25 pre-commit.tmpl
-rw-r--r-- 1 www www 2416 Jan 11 08:25 pre-lock.tmpl
-rw-r--r-- 1 www www 2764 Jan 11 08:25 pre-revprop-change.tmpl
-rw-r--r-- 1 www www 2106 Jan 11 08:25 pre-unlock.tmpl
-rw-r--r-- 1 www www 2758 Jan 11 08:25 start-commit.tmpl
k222# mv post-unlock.tmpl post-unlock
k222# mv pre-commit.tmpl pre-commit
k222# mv pre-lock.tmpl pre-lock
k222# mv pre-revprop-change.tmpl pre-revprop-change
k222# mv pre-unlock.tmpl pre-unlock
k222# mv start-commit.tmpl start-commit
k222# ll
total 30
-rw-r--r-- 1 www www 1955 Jan 11 08:25 post-commit
-rw-r--r-- 1 www www 1638 Jan 11 08:25 post-lock
-rw-r--r-- 1 www www 2267 Jan 11 08:25 post-revprop-change
-rw-r--r-- 1 www www 1567 Jan 11 08:25 post-unlock
-rw-r--r-- 1 www www 3410 Jan 11 08:25 pre-commit
-rw-r--r-- 1 www www 2416 Jan 11 08:25 pre-lock
-rw-r--r-- 1 www www 2764 Jan 11 08:25 pre-revprop-change
-rw-r--r-- 1 www www 2106 Jan 11 08:25 pre-unlock
-rw-r--r-- 1 www www 2758 Jan 11 08:25 start-commit
k222# chmod +x *
k222# ll
total 30
-rwxr-xr-x 1 www www 1955 Jan 11 08:25 post-commit
-rwxr-xr-x 1 www www 1638 Jan 11 08:25 post-lock
-rwxr-xr-x 1 www www 2267 Jan 11 08:25 post-revprop-change
-rwxr-xr-x 1 www www 1567 Jan 11 08:25 post-unlock
-rwxr-xr-x 1 www www 3410 Jan 11 08:25 pre-commit
-rwxr-xr-x 1 www www 2416 Jan 11 08:25 pre-lock
-rwxr-xr-x 1 www www 2764 Jan 11 08:25 pre-revprop-change
-rwxr-xr-x 1 www www 2106 Jan 11 08:25 pre-unlock
-rwxr-xr-x 1 www www 2758 Jan 11 08:25 start-commit
*リポジトリを壊した(^^ [#f483a4f8]
というか、リビジョン57のログにパスワードをコピペしてしまったので、消そうとおもって、TortoiseSVN のログ編集機能を使おうとしたが、動作しなかったので、取り敢えず、
/usr/local/var/svn/repos/RS_Base/db/revprops/0/57
を直接エディタで編集したら
コマンド: 更新
更新: \\rs_base_server\rs_base_verup_tools\RS_Base\trunk\2001.cgi
エラー: REPORT (URL: '/svn/RS_Base/!svn/vcc/default'): Could not read chunk size:
エラー: Secure connection truncated (https://k222.kuji-clinic.net)
終了!:
というエラーがでる。やっぱ、直接編集するのはマズイらしい。
k222# cd /usr/local/var/svn/repos/RS_Base
k222# ll
total 14
-rw-r--r-- 1 www www 229 Jan 11 08:25 README.txt
drwxr-xr-x 2 www www 512 Jan 11 08:25 conf
drwxr-xr-x 3 www www 512 Jan 11 13:22 dav
drwxr-sr-x 6 www www 512 Feb 10 07:10 db
-r--r--r-- 1 www www 2 Jan 11 08:25 format
drwxr-xr-x 2 www www 512 Jan 11 08:25 hooks
drwxr-xr-x 2 www www 512 Jan 11 08:25 locks
k222# svnadmin recover /usr/local/var/svn/repos/RS_Base
Repository lock acquired.
Please wait; recovering the repository may take some time...
Recovery completed.
The latest repos revision is 58.
したけど、ダメポ
結局、もう一度エディタで元の状態にもどしてOK
*RS_Base をSVN Tracで管理する [#k3f2a545]
http://k222.kuji-clinic.net/trac/
k222# svnadmin create RS_Base
とりあえず、認証は全くなしで、誰でもレポジトリを読み書きできるようにする。そのためには、レポジトリ内のconf/svnserve.confを修正して、
/usr/local/www/apache22/data/trac/RS_Base/conf/server.conf
[general]
anon-access = write
RS_Baseのバージョンアップファイルに薬情.txt と 禁忌.txtがあると
svn: Error converting entry in directory 'ver100104' to UTF-8
svn: ネイティブのエンコーディングから 'UTF-8' に文字列を変換できません:
svn: ?\139?\214?\138?\245.txt
というエラーでインポートに失敗するので、これらを一旦削除。
k222# setenv LANG ja_JP.UTF-8 && svn import /home/RS_Base/ver100104/ file:///usr/local/var/svn/repos/RS_Base
k222# setenv LANG ja_JP.UTF-8 && svn import ver100104/ file:///usr/local/var/svn/repos/RS_Base
ログメッセージの変更や指定がなされていません
中断 (a), 続行 (c), 編集 (e):
c
追加しています ver100104/ecgME.cgi
追加しています ver100104/2000.cgi
追加しています ver100104/mosiokuri.cgi
追加しています ver100104/yoyaku.cgi
追加しています ver100104/gamma.cgi
追加しています ver100104/2001.cgi
追加しています ver100104/audio2.cgi
追加しています ver100104/2003.cgi
追加しています ver100104/labo_i.cgi
追加しています ver100104/DAS28RS.cgi
追加しています ver100104/labo_new.cgi
追加しています ver100104/kensin.cgi
追加しています ver100104/tympa.cgi
追加しています (バイナリ) ver100104/rs_base.jpg
追加しています ver100104/R_uketuke.cgi
追加しています ver100104/audio_ini.cgi
追加しています ver100104/audio.cgi
追加しています ver100104/labo4.cgi
追加しています ver100104/kinki_ini.cgi
追加しています ver100104/calendar_stat.cgi
追加しています ver100104/kinki.cgi
追加しています (バイナリ) ver100104/bar.gif
追加しています ver100104/labo_new1.cgi
追加しています (バイナリ) ver100104/reflex.png
追加しています ver100104/fujinon.cgi
追加しています ver100104/search_pt.cgi
追加しています ver100104/labo_ini.cgi
追加しています ver100104/tympa2.cgi
追加しています ver100104/kinki_in2.cgi
追加しています ver100104/drug_RSB.dat
追加しています ver100104/cl02.txt
追加しています ver100104/labo.cgi
追加しています ver100104/rsbbat.cgi
追加しています ver100104/kink2.cgi
追加しています ver100104/shokenall.cgi
追加しています ver100104/kinki_RSB.dat
追加しています ver100104/NERVE_RS.cgi
追加しています ver100104/sinryo.cgi
追加しています ver100104/kerato.cgi
追加しています (バイナリ) ver100104/psum.gif
追加しています ver100104/shoken.cgi
追加しています ver100104/calendar_s.cgi
追加しています ver100104/calendar2.cgi
追加しています ver100104/calendar_yoyaku2.cgi
追加しています ver100104/calendar3.cgi
追加しています (バイナリ) ver100104/cl02.swf
追加しています ver100104/calendar4.cgi
追加しています ver100104/calendar5.cgi
追加しています ver100104/calendar_y.cgi
追加しています ver100104/yoyaku2.cgi
追加しています ver100104/calendar_labo.cgi
追加しています ver100104/kensin1.cgi
追加しています ver100104/labo_stat.cgi
追加しています ver100104/calendar_pt.cgi
追加しています ver100104/uketuke.cgi
リビジョン 1 をコミットしました。
k222# trac-admin /usr/local/www/apache22/data/trac/RS_Base initenv
k222# trac-admin /usr/local/www/apache22/data/trac/RS_Base resync
Resyncing repository history...
Command failed: サポートされていないバージョン管理システム "svn です: 適切なコンポーネントが見つかりません。該当するプラグインが有効に設定されているか確認してください。
k222#
/usr/local/var/svn/repos/RS_Base/tmp/trunk/ へver100104.zip を展開して
k222# setenv LANG ja_JP.UTF-8 && svn import /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/ file:///usr/local/var/svn/repos/RS_Base/trunk/
すると、また、
svn: Error converting entry in directory '/usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104' to UTF-8
svn: ネイティブのエンコーディングから 'UTF-8' に文字列を変換できません:
svn: ?\139?\214?\138?\245.txt
といわれるので、薬情.txt 禁忌.txt を削除。
ログメッセージの変更や指定がなされていません
中断 (a), 続行 (c), 編集 (e):
c
追加しています /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/ecgME.cgi
追加しています /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/2000.cgi
追加しています /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/mosiokuri.cgi
追加しています /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/yoyaku.cgi
追加しています /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/gamma.cgi
追加しています /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/2001.cgi
追加しています /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/audio2.cgi
追加しています /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/2003.cgi
追加しています /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/labo_i.cgi
追加しています /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/DAS28RS.cgi
追加しています /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/labo_new.cgi
追加しています /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/kensin.cgi
追加しています /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/tympa.cgi
追加しています (バイナリ) /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/rs_base.jpg
追加しています /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/R_uketuke.cgi
追加しています /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/audio_ini.cgi
追加しています /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/audio.cgi
追加しています /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/labo4.cgi
追加しています /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/kinki_ini.cgi
追加しています /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/calendar_stat.cgi
追加しています /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/kinki.cgi
追加しています (バイナリ) /usr/local/var/svn/repos/RS_Base/tmp/trunk/ver100104/bar.gif
k222# trac-admin /usr/local/www/apache22/data/trac/RS_Base/ resync
Resyncing repository history...
Command failed: サポートされていないバージョン管理システム "svn です: 適切なコンポーネントが見つかりません。該当するプラグインが有効に設定されているか確認してください。
等と言われるときには、/usr/local/www/apache22/data/trac/RS_Base/conf/trac.ini の
repository_dir = /usr/local/var/svn/repos/RS_Base
などをチェックすること。
trac.ini
base_url = http://k222.kuji-clinic.net/trac/
repository_dir = /usr/local/var/svn/repos/RS_Base/tmp/trunk/
k222# trac-admin /usr/local/www/apache22/data/trac/RS_Base/ resync
Resyncing repository history...
2 revisions cached.
Done.
k222#
TortoiseSVNで接続してImportしようとしたとき403などで書き込めないときには、/usr/local/etc/apache22/Includes/subversion.conf
<Location /svn>
DAV svn
SVNParentPath /usr/local/var/svn/repos
SVNListParentPath On
# <LimitExcept GET PROPFIND OPTIONS REPORT>
<LimitExcept GET POST OPTIONS PROPFIND MKACTIVITY CHECKOUT MKACTIVITY DELETE PROPPATCH MKCOL MERGE REPORT PUT COPY>
Deny from all
</LimitExcept>
</Location>
などとして、書き込みプロセスをきょかする