SVN認証およびDelphiソースエンコーディングをサポートするJiraに統合するためのWindowsでのWebSVNの構成

この命令を投稿します 私自身、穀物に関する必要な情報を探す必要がありました。 この説明は、WebテクノロジーとWeb開発の経験がほとんどない人を対象としています。 すべてのソフトウェアシステムは、Windows 7 Pro 32ビットを実行する専用の「サーバー」でプログラミングのニーズに合わせて構成されます。

私たちは何を持っています:



取得したいもの:





1. PHPのインストール



  1. 公式WebサイトからWindows用のThread Safeインストーラーをダウンロードします(最新バージョンではすぐに表示されないため、php-5.3.27-Win32-VC9-x86.msiが選択されました)
  2. C:\ PHP \にインストールします(マルチプラットフォームを扱うときは、パスのスペースやロシア文字を常に避けます)
  3. インストール中に、「Apache 2.2.xモジュール」を選択します。 Apache HTTPサーバーの設定はVisual SVNサーバーディレクトリにあります。「C:\ Program Files \ VisualSVN Server \ conf」


ファイルCをインストールするとき:\ Program Files \ VisualSVN Server \ conf \ httpd.confは自動的に行で補完されます

#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL PHPIniDir "C:\PHP\" LoadModule php5_module "C:\PHP\php5apache2_2.dll" #END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
      
      





インターネットの推奨事項を読んで、zipアーカイブからPHPを手動でインストールしましたが、最初はうまくいきませんでした。 最新のphp配信でphp5apache2_2.dllライブラリが見つからず、php5apache2_4.dllがApacheでのロードを拒否したためです。



2. WebSVNをインストールします



ここでは、インストールを呼び出すのは難しいです。 ディレクトリC:\ Program Files \ VisualSVN Server \ htdocs \ websvnを作成し、公式Webサイトからダウンロードしたアーカイブの内容をそこにコピーします。



この時点で、WebSVNページの可用性を既に確認できます。 これを行うには、に行きます yourserver:8443/websvn/index.php



yourserver:8443/websvn/index.php



、リポジトリのリストを設定するように求めるウェルカムページが表示されます。



3. Cygwinをインストールします



Cygwinプロジェクトの本質は、WindowsユーザーにUnixシステムで一般的なアプリケーションを提供することです。 これらのアプリケーションの一部は、WebSVNにも必要です。 公式サイトは、かなり理解しやすいインストーラーを提供しています。 次のパッケージをインストールする必要があります。



C:\ cygwin \にインストールされ、上記のスペースを回避する原理を使用します。



4. WebSVNの構成



Apacheの小さな調整


WebSVNメインページに簡単にアクセスするには、Apache Cユーザー設定ファイルに次のコードを追加します。\ Program Files \ VisualSVN Server \ conf \ httpd-custom.conf:

 <IfModule dir_module> DirectoryIndex index.html index.php </IfModule>
      
      





config.phpの構成


ファイルC:\ Program Files \ VisualSVN Server \ htdocs \ websvn \ doc \ install.htmlにあるWebSVNのインストール手順に従って、ファイル\ include \ distconfig.phpを\ include \ config.phpにコピーしてから変更しますパラメータに関するコメントに従って。 私の設定は次のとおりです。

 $config->setSVNCommandPath('C:\\Program Files\\VisualSVN Server\\bin'); $config->setDiffPath('C:\\cygwin\\bin'); $config->setEnscriptPath('C:\\cygwin\\bin'); ... (    'C:\\cygwin\\bin') $config->setTrustServerCert(); $config->parentPath('D:\\SVN\\Repositories'); $config->setIgnoreWhitespacesInDiff(true); $config->setDefaultLanguage('ru'); $config->allowDownload(); $config->setDefaultFolderDlMode('gzip'); $config->useEnscript(); //$config->useGeshi(); $config->setRssEnabled(false);
      
      





SVNで使用される認証を構成する


Visual SVNバージョン2.6.0でリポジトリに分散されたアクセスシステムに移行したため、WebSVN承認を同じファイルに関連付けることができなかったことをすぐに言わなければなりません。 Visual SVNで使用されていないリポジトリの共有認証ファイルを手動で作成する必要がありました。 現時点では、開発チームの規模が小さいため、この問題は重要ではありませんが、認証ファイルのサポートを手動で回避する方法についての推奨事項を聞いてうれしく思います。 それでは、続けましょう:



入るとすぐに yourserver:8443/websvn/



yourserver:8443/websvn/



Visual SVN Serverで使用される認証が要求され、リポジトリに共通の認証ファイルでアクセスが設定されます。



エンコード設定


WebSVNはすでに完全に機能していますが、光沢がありません。 たとえば、ロシア語で記述されたDelphi 7ソースコードのコメントは、krakozyabraによって表示されます。 さらに、サイト自体はすでにロシア語です。 キャッチは何ですか? WebSVN Webサイトで、この問題に関する議論を見つけました。 websvn.tigris.org/ds/viewMessage.do?dsMessageId=2968020&dsForumId=1547



websvn.tigris.org/ds/viewMessage.do?dsMessageId=2968020&dsForumId=1547



。 要するに、ファイルのエンコーディングを決定するために使用されるphp関数mb_detect_encodingは単純に嘘をついています。 ユーザーyaroslavによって提案された松葉杖を使用します。これには、ファイルC:\ Program Files \ VisualSVN Server \ htdocs \ websvn \ include \ command.phpを置き換えます

 return mb_detect_encoding($str.'a', $list);
      
      





 $res = mb_detect_encoding($str.'a',$list); if ($res !== 'ISO-8859-1') return $res; else return 'CP1251';
      
      



松葉杖の問題は気づきませんでしたが。 ファイルのエンコーディングを決定する問題は、ユーザーm00tの投稿で詳細に説明されています。 habrahabr.ru/post/107945



habrahabr.ru/post/107945



。 また、エンコーディングを決定するための作業方法、その使用が松葉杖、およびそれらの潜在的な問題を回避するのに役立ちます。



ようこそページの設定


C:\ Program Files \ VisualSVN Server \ htdocs \ websvn \ templates \\ index.tmplファイルでは、デフォルトのウェルカムテキストを独自のものに置き換えることができます。 この設定を別の項目として強調表示します。なぜなら、 ロシア語のテキストを使用する場合、ファイルはutf8エンコードで作成する必要があります。



5. JIRA Subversionプラグインの構成



管理->プラグイン-> Subversionリポジトリに移動し、各リポジトリ(rep1リポジトリなど)でパスを構成します。

view format: yourserver:8443/websvn/filedetails.php?repname=rep1&path=${path}





changeset format: yourserver:8443/websvn/revision.php?repname=rep1&location=/&rev=${rev}





file added format: yourserver:8443/websvn/filedetails.php?repname=rep1&path=${path}&rev=${rev}





file modified format: yourserver:8443/websvn/diff.php?repname=rep1&path=${path}&rev=${rev}&sc=0





file replaced format: yourserver:8443/websvn/filedetails.php?repname=rep1&path=${path}&rev=${rev-1}&sc=0





file deleted format: yourserver:8443/websvn/filedetails.php?repname=rep1&path=${path}&rev=${rev-1}&sc=0






All Articles