#author("2024-09-02T03:33:43+00:00","default:iseki","iseki") #author("2024-09-02T03:33:51+00:00","default:iseki","iseki") * Subversion [#mecf2f09] - つい Secondversion と言ってしまいそうになる バージョン管理ツール~ - つい Secondversion と言ってしまいそうになる バージョン管理ツール ** Links [#o5856791] - Home: http://subversion.tigris.org/ - Download: http://tortoisesvn.net/downloads ** Install [#y1b7b150] - Apache が ''--enable-dav --enable-so'' オプション付でコンパイルされている必要がある. - コンパイル,インストール # ./configure --with-apxs=/usr/local/apache/bin/apxs [--with-sqlite=/usr/local] # make # make install - /usr/local/apache/modules に ''mod_authz_svn.so, mod_dav_svn.so'' がインストールされる **** v1.8.10 [#n2b0e419] - sqlite がないと subversion をコンパイルできない. - serf もないと駄目.# serf はどこから落としたか忘れた - 1.8.10 では http のクライアント が変更になったが,うまくインストールできないので,http://~ で指定できない. # wget www.sqlite.org/2014/sqlite-autoconf-3080702.tar.gz # zcat sqlite-autoconf-3080702.tar.gz |tar xfv - # ... # cd subversion-1.8.10 # ln -s ../sqlite-autoconf-3080702 sqlite-amalgamation # ln -s ../serf-1.3.8 serf # ./configure --with-apxs=/usr/local/apache/bin/apxs # make # make install # # cd /usr/local/apache/modlues なぜか so ファイルが /usr/local/apache/modules にコピーされない? # rm mod_*_svn.so # ln -s /usr/local/libexec/mod_*_svn.so . *** sqlite3_config などのリンクエラー [#iafe8d1a] - --with-sqlite を付けてもリンクエラーを起こす場合 (例:v1.6.6) # cd subversion-1.6.6 # wget http://www.sqlite.org/sqlite-amalgamation-3.6.13.tar.gz # zcat sqlite-amalgamation-3.6.13.tar.gz |tar xfv - # ln -s sqlite-3.6.13 sqlite-amalgamation # ./configure --with-apxs=/usr/local/apache/bin/apxs # make # make install ** Apache Setup Files [#xdb493c3] *** httpd.conf [#kc558862] Include conf/subversion.conf *** subversion.conf [#i7dba30c] - [[Digest認証]] の使用例 <Location /svn/linux> DAV svn SVNParentPath /home/svn/linux AuthType Digest AuthName "NSL" AuthUserFile "/usr/local/apache/digest/passwd" <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location> <Location /svn/vc++> DAV svn SVNParentPath /home/svn/vc++ AuthType Digest AuthName "NSL" AuthUserFile "/usr/local/apache/digest/passwd" </Location> - パスワードファイルの作り方 htdigest [-c] /usr/local/apache/digest/passwd レルム ユーザー名 htdigest2 [-c] /usr/local/apache/digest/passwd レルム ユーザー名 - The -c flag creates a new file ** Command [#ne1be775] *** リポジトリの作成 [#o352898b] **** local file [#h490115a] # cd <データディレクトリ> # mkdir /home/svn/linux/test # svnadmin create /home/svn/linux/test/ # svn import -m "first" . file:///home/svn/linux/test/trunk # chown -R www.www /home/svn/linux/test **** remote file [#i57a112e] サーバ: # mkdir /home/svn/linux/test # svnadmin create /home/svn/linux/test/ # chown -R www.www /home/svn/linux/test リモート: $ cd <データディレクトリ> $ svn import -m "first" . http://www.nsl.tuis.ac.jp/svn/linux/test/trunk *** Server (Apache) [#y824e8aa] - アップグレード #svnadmin upgrade svn/xxx - リポジトリのコピー(バックアップ) # cd /home/svn/linux # svnadmin hotcopy test test2 - ブランチの作成 # svn mkdir -m "" http://www.nsl.tuis.ac.jp/svn/opensim/opensim.currency/branches # svn import -m "v0.6.7" . http://www.nsl.tuis.ac.jp/svn/opensim/opensim.currency/branches/0.6.7 - ブランチの削除 # svn delete -m "mis v0.6.7" http://www.nsl.tuis.ac.jp/svn/opensim/opensim.currency/branches/0.6.7 *** Client [#da09685a] - アップグレード $ svn upgrade . - チェックアウト $ svn co http://www.nsl.tuis.ac.jp/svn/linux/TUIS_Lib/trunk TUIS_Lib -- proxy の設定 vi ~/.subversion/servers [global] http-proxy-host = プロキシサーバ http-proxy-port = ポート番号 - カレントディレクトリで無視するファイルを指定 (エディタが起動するので,無視するファイルを記入して保存する) $ svn propedit svn:ignore . - 任意のリビジョンにする $ svn update -r #### ####:リビジョンNo. - ブランチを切り替える $ svn sw "URL of branche" - command に実行ビットを設定する. $ svn propset svn:executable on command ** Trouble Shooting [#n3b7c3cb] *** どうしてもロックが外れない [#dd4a1cd0] - サーバの該当リポジトリのディレクトリに移動する. # cd ./db/lock # grep -R bdb_tool.cpp . (bdb_tool.cpp はロックしたファイル) ./23a/23a16e5f411733325d11d5f15009fc0c:/trunk/ExtendLib/xLib/bdb_tool.cpp # rm ./23a/23a16e5f411733325d11d5f15009fc0c *** use Proxy [#nf1dcb5c] -$ vi ~/.subversion/servers [global] # http-proxy-exceptions = *.exception.com, www.internal-site.org http-proxy-host = 202.26.159.212 <-- proxy server's IP address http-proxy-port = 8080 <-- proxy server's port number *** エラー [#hf64e8ae] **** svn: PROPFIND request failed on [#od6103a8] - 認証のエラー? -> ~/.subversion を削除 #br