{"id":126,"date":"2010-11-23T09:13:28","date_gmt":"2010-11-23T09:13:28","guid":{"rendered":"http:\/\/ketoha.co.jp\/blog\/archives\/126"},"modified":"2015-01-02T06:32:44","modified_gmt":"2015-01-02T06:32:44","slug":"%e5%a4%96%e9%83%a8%e9%9d%9e%e5%85%ac%e9%96%8b%e3%81%aesvn%e3%82%b5%e3%83%bc%e3%83%90subversion%e3%81%ab%e3%80%81%e5%85%ac%e9%96%8b%e3%82%b5%e3%83%bc%e3%83%90%e3%82%92%e8%b8%8f%e3%81%bf%e5%8f%b0","status":"publish","type":"post","link":"https:\/\/ketoha.co.jp\/blog\/?p=126","title":{"rendered":"\u5916\u90e8\u975e\u516c\u958b\u306eSVN\u30b5\u30fc\u30d0(Subversion)\u306b\u3001\u516c\u958b\u30b5\u30fc\u30d0\u3092\u8e0f\u307f\u53f0\u306b\u3057\u3066\u30a2\u30af\u30bb\u30b9\u3059\u308b"},"content":{"rendered":"<p>\u306a\u3093\u3066\u3044\u3046\u3093\u3067\u3057\u3087\u3046\u3001\u3048\u30fc\u3068\u3002\u3053\u3093\u306b\u3061\u306f\u3002<br \/>\nmogwai\u8d85\u30ab\u30c3\u30b3\u3044\u3044\u3002\u305d\u308c\u3088\u308a\u3002<br \/>\n\u30bd\u30fc\u30b9\u306e\u4e16\u4ee3\u7ba1\u7406\u306b\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0\u3092\u5c0e\u5165\u3057\u307e\u3057\u305f\u3002<br \/>\n\u5f53\u521d\u306f\u666e\u901a\u306b\u30ea\u30e2\u30fc\u30c8\u30b5\u30fc\u30d0(\u4ee5\u964d\u306e\u547c\u79f0\u306f\u958b\u767a\u30b5\u30fc\u30d0)\u306b\u30ea\u30dd\u30b8\u30c8\u30ea\u30b5\u30fc\u30d0(\u4ee5\u964d\u306e\u547c\u79f0\u306fSVN\u30b5\u30fc\u30d0)\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3088\u3046\u3068\u601d\u3063\u305f\u306e\u3067\u3059\u304c\u3001\u6614\u8cb7\u3063\u305f\u7384\u7bb1\u304c\u307b\u3068\u3093\u3069\u50cd\u3044\u3066\u3044\u306a\u3044\u306e\u3067\u3001\u3053\u306e\u969b\u305d\u3063\u3061\u306b\u3044\u308c\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u305f\u3002<br \/>\n\u3046\u3061\u3067\u306f\u958b\u767a\u30b5\u30fc\u30d0\u306f\u672c\u756a\u30b5\u30fc\u30d0\u3092\u517c\u306d\u3066\u3044\u308b\u306e\u3067\uff08\u672c\u5f53\u306f\u958b\u767a\u517c\u672c\u756a\u30b5\u30fc\u30d0\u3068\u8a00\u3046\u3079\u304d\u304b\u3082\u3057\u308c\u306a\u3044\u3051\u3069\uff09\u5916\u90e8\u516c\u958b\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u7384\u7bb1\u306f\u516c\u958b\u3057\u3066\u3044\u307e\u305b\u3093\u3002\u9589\u3058\u305f\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5185\u3067\u30d5\u30a1\u30a4\u30eb\u30b5\u30fc\u30d0\u3068\u3057\u3066\u4f7f\u3063\u3066\u3044\u307e\u3057\u305f\u304c\u3001\u4eca\u5f8c\u3082\u305d\u306e\u304b\u305f\u3061\u306f\u5909\u3048\u305f\u304f\u3042\u308a\u307e\u305b\u3093\u3002<br \/>\n\u3068\u3053\u308d\u304c\u3001\u4eca\u56de\u306e\u958b\u767a\u306f\u50d5\u4ee5\u5916\u306b\u5916\u90e8\u306e\u5171\u540c\u958b\u767a\u8005\u3082\u958b\u767a\u306b\u53c2\u52a0\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u5916\u5074\u304b\u3089\u3082SVN\u30b5\u30fc\u30d0\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002<br \/>\n\u76f8\u95a2\u56f3\u306b\u3059\u308b\u3068\u3053\u3046\u306a\u308a\u307e\u3059\u3002<br \/>\n<img decoding=\"async\" title=\"Relationship\" src=\"\/blog\/wp-content\/uploads\/2015\/01\/relationship.jpg\" alt=\"Relationship\" border=\"0\" \/><br \/>\n\u56f3\u306e\u53f3\u4e0b\u306e\u300c\u7ba1\u7406\u8005\u300d\u304c\u50d5\u3067\u3059\u3002\u30ea\u30ec\u30fc\u30b7\u30e7\u30f3\u304c\u8584\u304f\u3072\u3044\u3066\u3042\u308b\u306e\u306f\u5916\u90e8\u975e\u516c\u958b\u306e\u610f\u5473\u3067\u3001\u5916\u304b\u3089\u306f\u300c\u7ba1\u7406\u8005\u300d\u306ePC\u3068\u300cSVN\u30b5\u30fc\u30d0\u300d\u306f\u30a2\u30af\u30bb\u30b9\u3067\u304d\u306a\u3044\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<br \/>\n\u5916\u90e8\u306e\u958b\u767a\u8005\u304c\u3044\u306a\u3051\u308c\u3070\u300c\u7ba1\u7406\u8005\u300d\u304c\u76f4\u63a5\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5185\u306e\u300cSVN\u30b5\u30fc\u30d0\u300d\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308c\u3070\u4e8b\u8db3\u308a\u308b\u306e\u3067\u3059\u304c\u3001\u3053\u306e\u307e\u307e\u3060\u3068\u300c\u5916\u90e8\u958b\u767a\u8005A\u300d\u3068\u300c\u5916\u90e8\u958b\u767a\u8005B\u300d\u304c\u300cSVN\u30b5\u30fc\u30d0\u300d\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u305b\u3093\u3002<br \/>\n\u3058\u3083\u3042\u300cSVN\u30b5\u30fc\u30d0\u300d\u3092\u516c\u958b\u3057\u3088\u3046\u3001\u3068\u3044\u3046\u306e\u306f\u306a\u3057\u3067\u3059\u3002\u300cSVN\u30b5\u30fc\u30d0\u300d\u3092\u7384\u7bb1\u306b\u7f6e\u304b\u305a\u306b\u3084\u3063\u3071\u308a\u300c\u958b\u767a\u300d\u30b5\u30fc\u30d0\u306b\u7f6e\u3053\u3046\u3001\u3068\u3044\u3046\u306e\u306e100\u5834\u5408\u304f\u3089\u3044\u306a\u3044\u8a71\u3067\u3059\u3002<br \/>\n\u306a\u306e\u3067\u3001\u300cSVN\u30b5\u30fc\u30d0\u300d\u306f\u5f15\u304d\u7d9a\u304d\u5916\u90e8\u975e\u516c\u958b\u306e\u307e\u307e\u3001\u516c\u958b\u6e08\u306e\u300c\u958b\u767a\u30b5\u30fc\u30d0\u300d\u3092\u8e0f\u307f\u53f0\u306b\u3057\u3066\u3001\u300cSVN\u30b5\u30fc\u30d0\u300d\u3092\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u69cb\u7bc9\u3057\u307e\u3059\u3002<br \/>\n\u7d4c\u8def\u306b\u3059\u308b\u3068\u3053\u3046\u306a\u308a\u307e\u3059\u3002<br \/>\n<img decoding=\"async\" title=\"Routing\" src=\"\/blog\/wp-content\/uploads\/2015\/01\/routing.jpg\" alt=\"Routing\" border=\"0\" \/><br \/>\n\u3067\u306f\u4ee5\u4e0b\u305d\u306e\u624b\u9806\u3067\u3059\u3002<br \/>\n\u25a0\u524d\u63d0\u6761\u4ef6<br \/>\n\u7ba1\u7406\u8005\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u540d\u306f\u300cinner\u300d\u3068\u3059\u308b\u3002\u3059\u3067\u306b\u4f5c\u6210\u6e08<br \/>\n\u5916\u90e8\u958b\u767a\u8005\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u540d\u306f\u300couter\u300d\u3068\u3059\u308b\u3002\u672a\u4f5c\u6210<br \/>\n\u958b\u767a\u30b5\u30fc\u30d0\u306e\u30db\u30b9\u30c8\u540d\u306f\u300cdevel\u300d<br \/>\nSVN\u30b5\u30fc\u30d0\u306e\u30db\u30b9\u30c8\u540d\u306f\u300csvn\u300d<br \/>\n\u25a0SVN\u30b5\u30fc\u30d0\u306e\u69cb\u7bc9<br \/>\n\u30fb\u6982\u8981<br \/>\nSVN\u30b5\u30fc\u30d0\u306b\u306fSubversion\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<br \/>\nSubversion\u306f\u958b\u767a\u30b5\u30fc\u30d0\u306eTrac\u300credmine\u300d\u304b\u3089HTTP\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u305f\u3081\u3001apache\u3082\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<br \/>\nSubversion\u64cd\u4f5c\u30e6\u30fc\u30b6\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u540d\u306f\u300crepos\u300d<br \/>\nSVN\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306f\u300cproject\u300d<br \/>\n\u30fb\u624b\u9806<br \/>\napache\u64cd\u4f5c\u30e6\u30fc\u30b6\u306e\u4f5c\u6210<\/p>\n<pre class=\"etc\" style=\"border: 1px solid gray; background-color: #000000; padding: 0px 2px 6px 2px; color: #ffffff; line-height: 0.6em;\">inner@svn:~$ sudo \/usr\/sbin\/groupadd -g 500 www\r\ninner@svn:~$ sudo \/usr\/sbin\/useradd -g www -s \/sbin\/nologin apache\r\ninner@svn:~$ sudo \/usr\/bin\/passwd -d apache\r\n<\/pre>\n<p>apache\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/p>\n<pre class=\"etc\" style=\"border: 1px solid gray; background-color: #000000; padding: 0px 2px 6px 2px; color: #ffffff; line-height: 0.6em;\">inner@svn:~$ sudo apt-get install apache2\r\ninner@svn:~$ sudo vi \/etc\/apache2\/apache2.conf\r\n# \u2193\u8ffd\u52a0\r\nServerName svn:80\r\ninner@svn:~$ sudo vi \/etc\/apache2\/envvars\r\n# \u2193\u5909\u66f4\r\nexport APACHE_RUN_USER=apache\r\nexport APACHE_RUN_GROUP=www\r\ninner@svn:~$ sudo \/etc\/init.d\/apache2 restart\r\n# apache\u64cd\u4f5c\u30e6\u30fc\u30b6\u3067\u8d77\u52d5\u3057\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\r\ninner@svn:~$ ps aux | grep apache | grep -v grep\r\n# HTTP\u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9200\u304c\u8fd4\u308b\u3053\u3068\u3092\u78ba\u8a8d\r\ninner@svn:~$ wget http:\/\/localhost -O -\r\n<\/pre>\n<p>SSH\u306e\u9375\u8a8d\u8a3c\u3068\u8a31\u53ef\u30e6\u30fc\u30b6\u306e\u8a2d\u5b9a<\/p>\n<pre class=\"etc\" style=\"border: 1px solid gray; background-color: #000000; padding: 0px 2px 6px 2px; color: #ffffff; line-height: 0.6em;\">inner@svn:~$ sudo vi \/etc\/ssh\/sshd_config\r\n# \u2193\u5909\u66f4\r\nPermitRootLogin no\r\nPermitEmptyPasswords no\r\nPasswordAuthentication no\r\n# \u2193\u8ffd\u52a0\r\nAllowUsers inner repos\r\ninner@svn:~$ sudo \/etc\/init.d\/ssh reload\r\n<\/pre>\n<p>Subversion\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb(SVN\u7528\u306eapache\u30e2\u30b8\u30e5\u30fc\u30eb\u3082\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb)<\/p>\n<pre class=\"etc\" style=\"border: 1px solid gray; background-color: #000000; padding: 0px 2px 6px 2px; color: #ffffff; line-height: 0.6em;\">inner@svn:~$ sudo apt-get install subversion\r\ninner@svn:~$ sudo apt-get install subversion-devel\r\ninner@svn:~$ sudo apt-get install subversion-tools\r\ninner@svn:~$ sudo apt-get install subversion-mod_dav_svn\r\ninner@svn:~$ sudo apt-get install libapache2-svn\r\n# dav_svn\u304capache\u30e2\u30b8\u30e5\u30fc\u30eb\u914d\u4e0b\u306b\u7f6e\u304b\u308c\u3066\u3044\u308b\u304b\u78ba\u8a8d\r\ninner@svn:~$ ll \/usr\/lib\/apache2\/modules | grep dav\r\ninner@svn:~$ find \/etc\/apache2\/ -name dav_svn.conf\r\n# \u7f6e\u304b\u308c\u3066\u3044\u306a\u304b\u3063\u305f\u306e\u3067\u30b7\u30f3\u30dc\u30ea\u30c3\u30af\u30ea\u30f3\u30af\u3067\u56de\u907f\r\ninner@svn:~$ sudo ln -s \/usr\/lib\/apache2\/modules \/etc\/apache2\/modules\r\ninner@svn:~$ sudo vi \/etc\/apache2\/mods-enabled\/dav_svn.conf\r\n# \u2193\u8ffd\u52a0\r\n&lt;Location \/repos&gt;\r\nDAV svn\r\nSVNPath \/usr\/local\/repos\/\r\n&lt;\/Location&gt;\r\ninner@svn:~$ sudo \/etc\/init.d\/apache2 reload\r\n<\/pre>\n<p>Subversion\u64cd\u4f5c\u30e6\u30fc\u30b6\u306e\u4f5c\u6210<\/p>\n<pre class=\"etc\" style=\"border: 1px solid gray; background-color: #000000; padding: 0px 2px 6px 2px; color: #ffffff; line-height: 0.6em;\">inner@svn:~$ sudo \/usr\/sbin\/useradd -g www -d \/home\/repos -m repos\r\ninner@svn:~$ sudo \/usr\/bin\/passwd -d repos\r\n<\/pre>\n<p>\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u4f5c\u6210<\/p>\n<pre class=\"etc\" style=\"border: 1px solid gray; background-color: #000000; padding: 0px 2px 6px 2px; color: #ffffff; line-height: 0.6em;\">inner@svn:~$ sudo -u apache mkdir \/usr\/local\/repos\r\ninner@svn:~$ sudo chmod 0775 \/usr\/local\/repos\r\ninner@svn:~$ sudo -u repos svnadmin create \/usr\/local\/repos\r\ninner@svn:~$ ll \/usr\/local\/repos\r\n<\/pre>\n<p>Subversion\u64cd\u4f5c\u30e6\u30fc\u30b6\u306b\u3088\u308b\u52d5\u4f5c\u78ba\u8a8d<\/p>\n<pre class=\"etc\" style=\"border: 1px solid gray; background-color: #000000; padding: 0px 2px 6px 2px; color: #ffffff; line-height: 0.6em;\">inner@svn:~$ svn mkdir file:\/\/\/usr\/local\/repos\/project -m \"create project\"\r\ninner@svn:~$ svn mkdir file:\/\/\/usr\/local\/repos\/project\/trunk -m \"create trunk\"\r\ninner@svn:~$ svn mkdir file:\/\/\/usr\/local\/repos\/project\/tags -m \"create tags\"\r\ninner@svn:~$ svn mkdir file:\/\/\/usr\/local\/repos\/project\/branches -m \"create branches\"\r\ninner@svn:~$ svn list file:\/\/\/usr\/local\/repos\/project\/branches\r\ninner@svn:~$ svn list http:\/\/svn\/repos\/project\/trunk\r\n<\/pre>\n<p>\u25a0\u5916\u90e8\u958b\u767a\u8005\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u7528\u610f<br \/>\n\u30fb\u6982\u8981<br \/>\n\u9375\u306fSSH-2 RSA\u5f62\u5f0f\u3002\u7ba1\u7406\u8005PC\u306ePuTTY\u3067\u4e8b\u524d\u306b\u4f5c\u3063\u3066\u3001\u79d8\u5bc6\u9375\u3060\u3051\u958b\u767a\u30b5\u30fc\u30d0\u306b\u30a2\u30c3\u30d7\u3057\u3066\u304a\u304f<br \/>\n\u64cd\u4f5c\u306f\u958b\u767a\u30b5\u30fc\u30d0\u300cdevel\u300d\u3067\u304a\u3053\u306a\u3046 (\u9014\u4e2d\u304b\u3089SVN\u30b5\u30fc\u30d0\u306b\u4e57\u308a\u63db\u3048\u307e\u3059)<br \/>\n\u30fb\u624b\u9806<br \/>\n\u5916\u90e8\u958b\u767a\u8005\u7528\u306e\u30e6\u30fc\u30b6\u4f5c\u6210<br \/>\n# \u5916\u90e8\u958b\u767a\u8005\u00d7n\u306f\u3059\u3079\u3066\u30b0\u30eb\u30fc\u30d7\u300cmate\u300d\u306b\u5c5e\u3059\u308b\u3002\u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u9069\u5f53\u306b\u3002\u3044\u305a\u308c\u3082\u7701\u7565\u3002<\/p>\n<pre class=\"etc\" style=\"border: 1px solid gray; background-color: #000000; padding: 0px 2px 6px 2px; color: #ffffff; line-height: 0.6em;\">[inner@devel~]$ sudo \/usr\/sbin\/useradd -g mate -d \/home\/outer -m outer\r\n[inner@devel~]$ sudo \/usr\/bin\/passwd outer\r\n[inner@devel~]$ sudo mkdir \/home\/outer\/.ssh\r\n[inner@devel~]$ sudo mv ~\/id_rsa.pub \/home\/outer\/.ssh\/authorized_keys\r\n[inner@devel~]$ sudo chown -R outer:mate \/home\/outer\/.ssh\r\n[inner@devel~]$ sudo chmod 0700 \/home\/outer\/.ssh\r\n[inner@devel~]$ sudo chmod 0600 \/home\/outer\/.ssh\/authorized_keys\r\n<\/pre>\n<p>\u7ba1\u7406\u8005PC\u304b\u3089outer\u30e6\u30fc\u30b6\u3067\u3001PuTTY\u306e\u9375\u8a8d\u8a3c\u3067\u30ed\u30b0\u30a4\u30f3\u3067\u304d\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304a\u304f(\u7565)<br \/>\n\u958b\u767a\u30b5\u30fc\u30d0\u304b\u3089SVN\u30b5\u30fc\u30d0\u306b\u3001SSH\u9375\u8a8d\u8a3c\u3067\u30ed\u30b0\u30a4\u30f3\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b<\/p>\n<pre class=\"etc\" style=\"border: 1px solid gray; background-color: #000000; padding: 0px 2px 6px 2px; color: #ffffff; line-height: 0.6em;\">[inner@devel~]$ sudo scp -p \/home\/outer\/.ssh\/authorized_keys svn:~\/\r\n[inner@devel~]$ ssh -A svn\r\ninner@svn:~$ sudo mkdir \/home\/repos\/.ssh\r\n# \u7ba1\u7406\u8005\u306e\u516c\u958b\u9375\u3092Subversion\u64cd\u4f5c\u30e6\u30fc\u30b6\u306b\u6e21\u3057\u3066\u304a\u304f\r\ninner@svn:~$ sudo cp -p ~\/.ssh\/authorized_keys \/home\/repos\/.ssh\/authorized_keys\r\n# \u5916\u90e8\u958b\u767a\u8005\u306e\u516c\u958b\u9375\u3092Subversion\u64cd\u4f5c\u30e6\u30fc\u30b6\u306b\u6e21\u3057\u3066\u304a\u304f\r\ninner@svn:~$ sudo mv ~\/authorized_keys \/home\/repos\/.ssh\/authorized_keys2\r\ninner@svn:~$ sudo chown -R repos:www \/home\/repos\/.ssh\r\ninner@svn:~$ sudo chmod 0700 \/home\/repos\/.ssh\r\ninner@svn:~$ sudo chmod 0600 \/home\/repos\/.ssh\/authorized_keys*\r\ninner@svn:~$ sudo -u repos mkdir \/home\/repos\/workspace\r\n<\/pre>\n<p>\u30ed\u30b0\u30a4\u30f3\u3067\u304d\u308b\u3053\u3068\u306e\u78ba\u8a8d(SVN\u64cd\u4f5c\u306e\u78ba\u8a8d\u3082)<\/p>\n<pre class=\"etc\" style=\"border: 1px solid gray; background-color: #000000; padding: 0px 2px 6px 2px; color: #ffffff; line-height: 0.6em;\">inner@svn:~$ exit\r\n[inner@devel~]$ ssh -A repos@svn\r\nrepos@svn:~$ exit\r\n[inner@devel~]$ sudo -u outer ssh -A repos@svn\r\nrepos@svn:~$ cd workspace\r\nrepos@svn:~\/workspace$ svn co file:\/\/\/usr\/local\/repos\/project\/trunk .\r\nrepos@svn:~\/workspace$ vi test.txt\r\nrepos@svn:~\/workspace$ svn add test.txt\r\nrepos@svn:~\/workspace$ svn commit -m \"test\"\r\nrepos@svn:~\/workspace$ exit\r\n<\/pre>\n<p>\u672c\u5f53\u306f\u3001\u5916\u90e8\u958b\u767a\u8005\u306fjailkit\u3067\u30db\u30fc\u30e0DIR\u914d\u4e0b\u306b\u9589\u3058\u8fbc\u3081\u3066\u3001\u4f7f\u7528\u3067\u304d\u308b\u30b3\u30de\u30f3\u30c9\u3082ssh\u3068svn\u3068\u305d\u306e\u4ed6\u9069\u5f53\u306a\u30b3\u30de\u30f3\u30c9\u306b\u5236\u9650\u3055\u305b\u305f\u304b\u3063\u305f\u306e\u3067\u3059\u304c\u3001\u30ed\u30b0\u30a4\u30f3\u5f8c\u306essh\u304c\u3069\u3046\u3057\u3066\u3082\u5229\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u3067\u304d\u305a\u3001\u65ad\u5ff5\u3057\u307e\u3057\u305f\u3002<br \/>\n\u8a73\u7d30\u306f\u7701\u304d\u307e\u3059\u304c\u3001\u4eca\u5f8c\u306e\u8ab2\u984c\u3068\u3057\u3066\u6b8b\u308a\u307e\u3057\u305f\u3002<br \/>\n\u25a0\u958b\u767a\u30b5\u30fc\u30d0\u306bSVN\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<br \/>\n\u30fb\u6982\u8981<br \/>\nSVN\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u306f<a href=\"http:\/\/subversion.tigris.org\/\">Subversion<\/a>\u3092\u5229\u7528<br \/>\n\u958b\u767a\u30b5\u30fc\u30d0\u306eTrac\u300credmine\u300d\u304cSVN\u30b5\u30fc\u30d0\u306e\u30ea\u30dd\u30b8\u30c8\u30ea\u306bHTTP\u7d4c\u7531\u3067\u30a2\u30af\u30bb\u30b9\u3059\u308b\u305f\u3081\u306e\u8a2d\u5b9a<br \/>\n\u306a\u304a\u3001HTTP\u7d4c\u7531\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u304c\u3001\u958b\u767a\u30b5\u30fc\u30d0\u304cHTTP\u3067\u30a2\u30af\u30bb\u30b9\u3059\u308b\u306e\u306f\u30b5\u30fc\u30d0\u30b5\u30a4\u30c9\u306a\u306e\u3067\u3001\u958b\u767a\u30b5\u30fc\u30d0\u304b\u3089SVN\u30b5\u30fc\u30d0\u306e80\u756a\u30dd\u30fc\u30c8\u304c\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5185\u3067\u898b\u3048\u3066\u3044\u308c\u3070\u3001SVN\u30b5\u30fc\u30d0\u306f\u5f15\u304d\u7d9a\u304d\u5916\u90e8\u975e\u516c\u958b\u3067\u554f\u984c\u3042\u308a\u307e\u305b\u3093(\u7279\u306bTrac\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u4f7f\u308f\u306a\u3051\u308c\u3070\u5fc5\u8981\u306a\u3044\u3068\u601d\u3044\u307e\u3059)\u3002<br \/>\n\u30fb\u624b\u9806<br \/>\nSVN\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/p>\n<pre class=\"etc\" style=\"border: 1px solid gray; background-color: #000000; padding: 0px 2px 6px 2px; color: #ffffff; line-height: 0.6em;\">[inner@devel~]$ cd \/usr\/local\/src\r\n[inner@devel~\/src]$ wget http:\/\/subversion.tigris.org\/downloads\/subversion-1.6.13.tar.gz\r\n[inner@devel~\/src]$ tar zxvf subversion-1.6.13.tar.gz\r\n[inner@devel~\/src]$ wget http:\/\/subversion.tigris.org\/downloads\/subversion-deps-1.6.13.tar.gz\r\n[inner@devel~\/src]$ tar zxvf subversion-deps-1.6.13.tar.gz\r\n[inner@devel~\/src]$ cd subversion-1.6.13\r\n# SVN\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306e\u307f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\r\n[inner@devel~\/subversion-1.6.13]$ .\/configure --without-berkeley-db --without-apxs \\\r\n[inner@devel~\/subversion-1.6.13]$ --without-swig --without-serf --with-ssl\r\n[inner@devel~\/subversion-1.6.13]$ make\r\n[inner@devel~\/subversion-1.6.13]$ sudo make install\r\n[inner@devel~\/subversion-1.6.13]$ cd ~\/\r\n[inner@devel~]$ svn list http:\/\/svn\/repos\/project\r\n<\/pre>\n<p>\u25a0\u30af\u30e9\u30a4\u30a2\u30f3\u30c8PC\u306bSVN\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<br \/>\n\u30fb\u6982\u8981<br \/>\nSVN\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u306f<a href=\"http:\/\/tortoisesvn.tigris.org\/\">TortoiseSVN<\/a>\u3092\u5229\u7528<br \/>\n\u30af\u30e9\u30a4\u30a2\u30f3\u30c8PC\u306fWindowsVISTA<br \/>\n\u30fb\u624b\u9806<br \/>\nTortoiseSVN\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<br \/>\nhttp:\/\/www.gside.org\/Gentoo\/subversion\/subversion_client.html<br \/>\n\u4e0a\u8a18\u306e\u624b\u9806\u3092\u5143\u306b\u4ee5\u4e0b\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3057\u305f<br \/>\nhttp:\/\/sourceforge.net\/projects\/tortoisesvn\/files\/Application\/1.6.11\/TortoiseSVN-1.6.11.20210-win32-svn-1.6.13.msi\/download<br \/>\nhttp:\/\/sourceforge.net\/projects\/tortoisesvn\/files\/Language%20Packs\/1.6.11\/LanguagePack_1.6.11.20210-win32-ja.msi\/download<br \/>\n\u25a0\u30af\u30e9\u30a4\u30a2\u30f3\u30c8PC\u304b\u3089\u958b\u767a\u30b5\u30fc\u30d0\u7d4c\u7531\u3067SVN\u30b5\u30fc\u30d0\u306b\u30a2\u30af\u30bb\u30b9<br \/>\n\u30fb\u6982\u8981<br \/>\nPuTTY(\u3054\u3063\u305f\u716e\u7248)\u306f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08<br \/>\n\u30c8\u30f3\u30cd\u30eb\u306b\u5229\u7528\u3059\u308b\u30dd\u30fc\u30c8\u306f20022\u3068\u3059\u308b<br \/>\n\u624b\u9806\u3067\u306f\u958b\u767a\u8005\u30a2\u30ab\u30a6\u30f3\u30c8\u300couter\u300d\u3092\u8a2d\u5b9a(\u7ba1\u7406\u8005\u300cinner\u300d\u306f\u7701\u7565)<br \/>\n\u30fb\u624b\u9806<br \/>\n\u307e\u305a\u3001\u958b\u767a\u30b5\u30fc\u30d0\u306eSSH\u30ed\u30b0\u30a4\u30f3\u8a2d\u5b9a\u3092\u304a\u3053\u306a\u3044\u307e\u3059\u3002<br \/>\nputty.exe\u3092\u30c0\u30d6\u30eb\u30af\u30ea\u30c3\u30af\u3001\u300cPuTTY\u8a2d\u5b9a\u300d\u3092\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u8a2d\u5b9a<br \/>\n\u30bb\u30c3\u30b7\u30e7\u30f3<br \/>\n<img decoding=\"async\" title=\"Putty_devel_session\" src=\"\/blog\/wp-content\/uploads\/2015\/01\/putty_devel_session.jpg\" alt=\"Putty_devel_session\" border=\"0\" \/><\/p>\n<pre class=\"linux\" style=\"border: 1px solid gray; background-color: #fffaf6; padding: 2px 2px 4px 6px; line-height: 0.6em;\">\u30db\u30b9\u30c8\u540d\uff1adevel\r\n\u30dd\u30fc\u30c8\uff1a22\r\n\u63a5\u7d9a\u30bf\u30a4\u30d7\uff1aSSH\r\n\u30bb\u30c3\u30b7\u30e7\u30f3\u4e00\u89a7\uff1a\u4efb\u610f\u306e\u540d\u524d(\u4f8b\uff1adevel)\r\n<\/pre>\n<p>\u63a5\u7d9a=&gt;\u30c7\u30fc\u30bf<\/p>\n<pre class=\"linux\" style=\"border: 1px solid gray; background-color: #fffaf6; padding: 2px 2px 4px 6px; line-height: 0.6em;\">\u81ea\u52d5\u30ed\u30b0\u30a4\u30f3\u306e\u30e6\u30fc\u30b6\u540d\uff1aouter\r\n<\/pre>\n<p>SSH=&gt;\u8a8d\u8a3c<br \/>\n<img decoding=\"async\" title=\"Putty_devel_auth\" src=\"\/blog\/wp-content\/uploads\/2015\/01\/putty_devel_auth.gif\" alt=\"Putty_devel_auth\" border=\"0\" \/><\/p>\n<pre class=\"linux\" style=\"border: 1px solid gray; background-color: #fffaf6; padding: 2px 2px 4px 6px; line-height: 0.6em;\">Pagent\u3092\u4f7f\u3063\u3066\u8a8d\u8a3c\u3059\u308b\uff1a\u30c1\u30a7\u30c3\u30af\u3092\u3044\u308c\u308b\r\n\"keybord-interactive\"\u8a8d\u8a3c\u3092\u8a66\u307f\u308b\uff1a\u30c1\u30a7\u30c3\u30af\u3092\u3044\u308c\u308b\r\n\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30d5\u30a9\u30ef\u30fc\u30c7\u30a3\u30f3\u30b0\u3092\u8a8d\u3081\u308b\uff1a\u30c1\u30a7\u30c3\u30af\u3092\u3044\u308c\u308b\r\n<\/pre>\n<p>SSH=&gt;\u30c8\u30f3\u30cd\u30eb<br \/>\n<img decoding=\"async\" title=\"Putty_devel_tunnel\" src=\"\/blog\/wp-content\/uploads\/2015\/01\/putty_devel_tunnel.jpg\" alt=\"Putty_devel_tunnel\" border=\"0\" \/><\/p>\n<pre class=\"linux\" style=\"border: 1px solid gray; background-color: #fffaf6; padding: 2px 2px 4px 6px; line-height: 0.6em;\">\u6e90\u30dd\u30fc\u30c8\uff1a20022\r\n\u9001\u308a\u5148\uff1asvn\r\n\u30ed\u30fc\u30ab\u30eb\uff1a\u30c1\u30a7\u30c3\u30af\u3092\u3044\u308c\u308b\r\n\u300c\u8ffd\u52a0\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u3001\u30d5\u30a9\u30ef\u30fc\u30c9\u3059\u308b\u30dd\u30fc\u30c8\u4e00\u89a7\u306b\u300cL20022 svn:22\u300d\u3068\u8ffd\u52a0\r\n<\/pre>\n<p>\u30bb\u30c3\u30b7\u30e7\u30f3\u306e\u9805\u76ee\u306b\u623b\u3063\u3066\u300c\u4fdd\u5b58\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u307e\u3059\u3002<br \/>\n\u300c\u958b\u304f\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u30ed\u30b0\u30a4\u30f3(\u30d1\u30b9\u30ef\u30fc\u30c9\u8a8d\u8a3c\u30c0\u30a4\u30a2\u30ed\u30b0\u304c\u51fa\u305f\u3089\u3001\u9375\u751f\u6210\u6642\u306e\u30d1\u30b9\u30d5\u30ec\u30fc\u30ba\u3092\u5165\u529b)\u3002<br \/>\n\u30ed\u30b0\u30a4\u30f3\u3067\u304d\u305f\u3089\u3001\u958b\u3044\u305f\u30bf\u30fc\u30df\u30ca\u30eb\u306f\u305d\u306e\u307e\u307e\u306b\u3057\u3066\u304a\u304d\u307e\u3059\u3002<br \/>\n\u6b21\u306bSVN\u306eSSH\u30ed\u30b0\u30a4\u30f3\u8a2d\u5b9a\u3092\u304a\u3053\u306a\u3044\u307e\u3059\u3002<br \/>\n\u4e0a\u8a18\u306e\u30c8\u30f3\u30cd\u30eb\u7d4c\u7531\u3067\u30ed\u30b0\u30a4\u30f3\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<br \/>\nputty.exe\u3092\u30c0\u30d6\u30eb\u30af\u30ea\u30c3\u30af\u3001\u300cPuTTY\u8a2d\u5b9a\u300d\u3092\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u8a2d\u5b9a<br \/>\n\u30bb\u30c3\u30b7\u30e7\u30f3<br \/>\n<img decoding=\"async\" title=\"Putty_svn_session\" src=\"\/blog\/wp-content\/uploads\/2015\/01\/putty_svn_session.jpg\" alt=\"Putty_svn_session\" border=\"0\" \/><\/p>\n<pre class=\"linux\" style=\"border: 1px solid gray; background-color: #fffaf6; padding: 2px 2px 4px 6px; line-height: 0.6em;\">\u30db\u30b9\u30c8\u540d\uff1alocalhost\r\n\u30dd\u30fc\u30c8\uff1a20022\r\n\u63a5\u7d9a\u30bf\u30a4\u30d7\uff1aSSH\r\n\u30bb\u30c3\u30b7\u30e7\u30f3\u4e00\u89a7\uff1a\u4efb\u610f\u306e\u540d\u524d(\u4f8b\uff1asvn)\r\n<\/pre>\n<p>\u63a5\u7d9a=&gt;\u30c7\u30fc\u30bf<br \/>\n<img decoding=\"async\" title=\"Putty_svn_data\" src=\"\/blog\/wp-content\/uploads\/2015\/01\/putty_svn_data.gif\" alt=\"Putty_svn_data\" border=\"0\" \/><\/p>\n<pre class=\"linux\" style=\"border: 1px solid gray; background-color: #fffaf6; padding: 2px 2px 4px 6px; line-height: 0.6em;\">\u81ea\u52d5\u30ed\u30b0\u30a4\u30f3\u306e\u30e6\u30fc\u30b6\u540d\uff1arepos\r\n<\/pre>\n<p>SSH=&gt;\u8a8d\u8a3c<\/p>\n<pre class=\"linux\" style=\"border: 1px solid gray; background-color: #fffaf6; padding: 2px 2px 4px 6px; line-height: 0.6em;\">Pagent\u3092\u4f7f\u3063\u3066\u8a8d\u8a3c\u3059\u308b\uff1a\u30c1\u30a7\u30c3\u30af\u3092\u3044\u308c\u308b\r\n<\/pre>\n<p>\u30bb\u30c3\u30b7\u30e7\u30f3\u306e\u9805\u76ee\u306b\u623b\u3063\u3066\u300c\u4fdd\u5b58\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u307e\u3059\u3002<br \/>\n\u300c\u958b\u304f\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u30ed\u30b0\u30a4\u30f3(\u30d1\u30b9\u30ef\u30fc\u30c9\u8a8d\u8a3c\u30c0\u30a4\u30a2\u30ed\u30b0\u304c\u51fa\u305f\u3089\u3001\u9375\u751f\u6210\u6642\u306e\u30d1\u30b9\u30d5\u30ec\u30fc\u30ba\u3092\u5165\u529b)\u3002<br \/>\n\u30ed\u30b0\u30a4\u30f3\u3067\u304d\u305f\u3089\u6210\u529f\u3067\u3059\u3002<br \/>\nTortoiseSVN\u306e\u8a2d\u5b9a<br \/>\n\u9069\u5f53\u306a\u300c\u4f5c\u696d\u30d5\u30a9\u30eb\u30c0\u300d\u306e\u4e0b\u3067\u53f3\u30af\u30ea\u30c3\u30af\u3057\u3066\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u30e1\u30cb\u30e5\u30fc\u3092\u958b\u304d\u3001TortoiseSVN\u2192\u300c\u3053\u3053\u306b\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u4f5c\u6210\u300d\u3092\u9078\u629e\u3057\u307e\u3059\u3002<br \/>\n\u518d\u3073\u53f3\u30af\u30ea\u30c3\u30af\u304b\u3089TortoiseSVN\u2192\u300c\u8a2d\u5b9a\u300d\u3067\u3001\u300c\u4e00\u822c\u300d\u6b04\u306e\u300c\u7de8\u96c6\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u4e0b\u3002\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u304c\u30c6\u30ad\u30b9\u30c8\u3067\u958b\u304f\u306e\u3067\u3001<\/p>\n<p class=\"linux\" style=\"border: 1px solid gray; background-color: #fffaf6; padding: 2px 2px 4px 6px;\">[tunnels]<br \/>\ntestssh(SVN\u30c8\u30f3\u30cd\u30eb\u7528\u306e\u9069\u5f53\u306a\u30b9\u30ad\u30fc\u30de\u540d) = &#8220;\uff1cPuTTY\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5148\u30d5\u30a9\u30eb\u30c0\u306e\u30d1\u30b9\uff1e\/plink.exe&#8221; -agent -load svn(PuTTY\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u540d) -i &#8220;\uff1c\u79d8\u5bc6\u9375\u3092\u4fdd\u5b58\u3057\u305f\u30d5\u30a9\u30eb\u30c0\u306e\u30d1\u30b9\uff1e\/id_rsa.ppk&#8221;<\/p>\n<p>\u3068\u3057\u3066\u4fdd\u5b58\u3002<br \/>\n\u4f8b) testssh = &#8220;E:\/tools\/PuTTY\/plinkw.exe&#8221; -agent -load svn -i &#8220;E:\/tools\/PuTTY\/outer\/id_rsa.ppk&#8221;<br \/>\n\u518d\u3073\u53f3\u30af\u30ea\u30c3\u30af\u304b\u3089TortoiseSVN\u2192\u300cSVN\u30c1\u30a7\u30c3\u30af\u30a2\u30a6\u30c8\u300d\u3067\u3001<\/p>\n<p class=\"linux\" style=\"border: 1px solid gray; background-color: #fffaf6; padding: 2px 2px 4px 6px;\">\u30ea\u30dd\u30b8\u30c8\u30ea\u306eURL\uff1asvn+testssh:\/\/\/usr\/local\/repos\/project\/trunk<br \/>\n\u30c1\u30a7\u30c3\u30af\u30a2\u30a6\u30c8DIR\uff1a\uff1c\u4f5c\u696d\u30d5\u30a9\u30eb\u30c0\u306e\u30d1\u30b9\uff1e\\project<\/p>\n<p>\u3068\u3057\u3066\u300cOK\u300d\u62bc\u4e0b\u3002\u3053\u308c\u3067\u30c1\u30a7\u30c3\u30af\u30a2\u30a6\u30c8\u5b8c\u4e86\u3067\u3059\u3002<br \/>\n\u5931\u6557\u3059\u308b\u5834\u5408\u306f\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092<\/p>\n<p class=\"linux\" style=\"border: 1px solid gray; background-color: #fffaf6; padding: 2px 2px 4px 6px;\">[tunnels]<br \/>\ndonassh(SVN\u30c8\u30f3\u30cd\u30eb\u7528\u306e\u9069\u5f53\u306a\u30b9\u30ad\u30fc\u30de\u540d) = &#8220;\uff1cPuTTY\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5148\u30d5\u30a9\u30eb\u30c0\u306e\u30d1\u30b9\uff1e\/plinkw.exe&#8221; -v -agent -load svn(PuTTY\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u540d) -i &#8220;\uff1cid_rsa.ppk\u3092\u4fdd\u5b58\u3057\u305f\u30d5\u30a9\u30eb\u30c0\u306e\u30d1\u30b9\uff1e\/id_rsa.ppk&#8221;<\/p>\n<p>\u3068\u3057\u3066\u3001\u518d\u3073\u300cSVN\u30c1\u30a7\u30c3\u30af\u30a2\u30a6\u30c8\u300d\u3092\u304a\u3053\u306a\u3044\u307e\u3059\u3002plinkw.exe\u306fplink.exe\u306eGUI\u7248\u3067\u3001-v(verbose)\u3092\u3064\u3051\u308b\u3053\u3068\u3067\u30c7\u30d0\u30b0\u30b3\u30f3\u30bd\u30fc\u30eb\u304b\u3089\u5185\u5bb9\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<br \/>\n\u3053\u308c\u3067\u3059\u3079\u3066\u306e\u8a2d\u5b9a\u304c\u5b8c\u4e86\u3067\u3059\u3002<br \/>\n\u5916\u90e8\u958b\u767a\u8005\u306b\u30a2\u30ab\u30a6\u30f3\u30c8\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3001\u79d8\u5bc6\u9375\u3068\u30d1\u30b9\u30d5\u30ec\u30fc\u30ba\u3092\u6e21\u3057\u3066\u3001PuTTY\u3068TortoiseSVN\u306e\u8a2d\u5b9a\u3092\u3057\u3066\u3082\u3089\u3048\u3070\u4eca\u56de\u306e\u7528\u4ef6\u3092\u6e80\u305f\u3057\u305f\u958b\u767a\u304c\u304a\u3053\u306a\u3048\u307e\u3059\u3002<br \/>\n\u25a0\u88dc\u8db3<br \/>\n\u3061\u306a\u307f\u306bTrac\u300c<a href=\"http:\/\/redmine.jp\/\">redmine<\/a>\u300d\u3092\u4f7f\u3046\u3068\u4e0a\u3067\u66f8\u304d\u307e\u3057\u305f\u304c\u3001\u3064\u3044\u3067\u306bredmine\u5074\u306e\u8a2d\u5b9a\u3067\u3001SVN\u9023\u643a\u306b\u5fc5\u8981\u306a\u90e8\u5206\u3082\u66f8\u3044\u3066\u304a\u304d\u307e\u3059\u3002<br \/>\n\u30fb\u958b\u767a\u30b5\u30fc\u30d0\u306eredmineURL<br \/>\n\u8a2d\u5b9a=&gt;\u30ea\u30dd\u30b8\u30c8\u30ea<br \/>\n<a class=\"mb\" href=\"http:\/\/wb.cocolog-nifty.com\/.shared\/image.html?\/photos\/uncategorized\/2010\/11\/21\/redmine_repos_2.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"Redmine_repos_2\" src=\"http:\/\/wb.cocolog-nifty.com\/blog\/images\/2010\/11\/21\/redmine_repos_2.jpg\" alt=\"Redmine_repos_2\" width=\"400\" height=\"165\" border=\"0\" \/><\/a><\/p>\n<p class=\"linux\" style=\"border: 1px solid gray; background-color: #fffaf6; padding: 2px 2px 4px 6px;\">\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0\uff1aSubversion<br \/>\nURL\uff1ahttp:\/\/svn\/repos\/project<\/p>\n<p>\u3068\u3057\u3066\u4fdd\u5b58\u3002\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u300c\u30ea\u30dd\u30b8\u30c8\u30ea\u300d\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u300c\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u3001\u30a8\u30f3\u30c8\u30ea\/\u30ea\u30d3\u30b8\u30e7\u30f3\u304c\u5b58\u5728\u3057\u307e\u305b\u3093\u300d\u3068\u306a\u308b\u5834\u5408\u306f\u958b\u767a\u30b5\u30fc\u30d0\u306eSVN\u30b3\u30de\u30f3\u30c9\u306e\u30d1\u30b9\u304credmine\u306b\u898b\u3048\u3066\u306a\u3044\u3053\u3068\u304c\u591a\u3044\u3088\u3046\u306a\u306e\u3067\u3001\u4ee5\u4e0b\u3092\u4fee\u6b63<\/p>\n<pre class=\"etc\" style=\"border: 1px solid gray; background-color: #000000; padding: 0px 2px 6px 2px; color: #ffffff; line-height: 0.6em;\">[inner@devel redmine]$ which svn\r\n\/usr\/local\/bin\/svn\r\n[inner@devel redmine]$ vi scm\/adapters\/subversion_adapter.rb\r\n#SVN_BIN = \"svn\"\r\nSVN_BIN = \"\/usr\/local\/bin\/svn\"\r\n<\/pre>\n<p>\u3064\u3044\u3067\u306bruby ver1.9.1\u3067redmine ver1.0.3\u3092\u52d5\u304b\u3059\u5834\u5408\u306f\u4ee5\u4e0b\u3092\u4fee\u6b63<\/p>\n<pre class=\"etc\" style=\"border: 1px solid gray; background-color: #000000; padding: 0px 2px 6px 2px; color: #ffffff; line-height: 0.6em;\">[inner@devel redmine]$ vi vendor\/rails\/actionpack\/lib\/action_controller\/request.rb\r\n#value.each { |k, v|h[k] = normalize_parameters(v) }\r\nvalue.each { |k, v|\r\nv.force_encoding(\"UTF-8\") if v.class==String\r\nh[k] = normalize_parameters(v)\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u306a\u3093\u3066\u3044\u3046\u3093\u3067\u3057\u3087\u3046\u3001\u3048\u30fc\u3068\u3002\u3053\u3093\u306b\u3061\u306f\u3002 mogwai\u8d85\u30ab\u30c3\u30b3\u3044\u3044\u3002\u305d\u308c\u3088\u308a\u3002 \u30bd\u30fc\u30b9\u306e\u4e16\u4ee3\u7ba1\u7406\u306b\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0\u3092\u5c0e\u5165\u3057\u307e\u3057\u305f\u3002 \u5f53\u521d\u306f\u666e\u901a\u306b\u30ea\u30e2\u30fc\u30c8\u30b5\u30fc\u30d0(\u4ee5\u964d\u306e\u547c\u79f0\u306f\u958b\u767a\u30b5\u30fc\u30d0)\u306b\u30ea\u30dd\u30b8\u30c8\u30ea\u30b5\u30fc\u30d0(\u4ee5\u964d\u306e\u547c<a class=\"moretag read-more-link\" href=\"https:\/\/ketoha.co.jp\/blog\/?p=126\">&#133;<\/a><\/p>\n","protected":false},"author":1,"featured_media":127,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":{"0":"entry","1":"post","2":"publish","3":"author-ketoher","4":"post-126","6":"format-standard","7":"has-post-thumbnail","8":"category-tech"},"_links":{"self":[{"href":"https:\/\/ketoha.co.jp\/blog\/index.php?rest_route=\/wp\/v2\/posts\/126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ketoha.co.jp\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ketoha.co.jp\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ketoha.co.jp\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ketoha.co.jp\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=126"}],"version-history":[{"count":1,"href":"https:\/\/ketoha.co.jp\/blog\/index.php?rest_route=\/wp\/v2\/posts\/126\/revisions"}],"predecessor-version":[{"id":151,"href":"https:\/\/ketoha.co.jp\/blog\/index.php?rest_route=\/wp\/v2\/posts\/126\/revisions\/151"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ketoha.co.jp\/blog\/index.php?rest_route=\/wp\/v2\/media\/127"}],"wp:attachment":[{"href":"https:\/\/ketoha.co.jp\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=126"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ketoha.co.jp\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=126"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ketoha.co.jp\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}