私たちは何を持っています:
- Visual SVN Server 2.6.0(Apache Subversion 1.8.0 + Apache HTTP Server 2.2.25)
- SVNアクセスは、ポート8443のSSLを介してすでに構成されています
- Jira SubversionプラグインがインストールされたJira 6.0
- JIRA Subversionプラグインは基本設定でセットアップされています(ファイルリストに対応するコミットがタスクに表示されます)
- SVNには、Delphi 7エンコードCP1251で記述されたソースコードを含めて保存されます
取得したいもの:
- コミットを表示
- 既存のSVN認証システムを使用してソースコードにアクセスする
1. PHPのインストール
- 公式WebサイトからWindows用のThread Safeインストーラーをダウンロードします(最新バージョンではすぐに表示されないため、php-5.3.27-Win32-VC9-x86.msiが選択されました)
- C:\ PHP \にインストールします(マルチプラットフォームを扱うときは、パスのスペースやロシア文字を常に避けます)
- インストール中に、「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にも必要です。 公式サイトは、かなり理解しやすいインストーラーを提供しています。 次のパッケージをインストールする必要があります。
- diffutils
- enscript(コードの強調表示。WebSVNで設定されたデフォルトのGeshi強調表示が気に入らない場合に備えて)
- sed
- タール
- gzip
- zip
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で使用されていないリポジトリの共有認証ファイルを手動で作成する必要がありました。 現時点では、開発チームの規模が小さいため、この問題は重要ではありませんが、認証ファイルのサポートを手動で回避する方法についての推奨事項を聞いてうれしく思います。 それでは、続けましょう:
- リポジトリ用の共有認証ファイルを作成します(このファイルはD:\ SVN \ Repositories \ authzです)。すべてのローカル認証ファイルに記入例があります(たとえば、D:\ SVN \ Repositories \ rep1 \ conf \ authz)。 私のコンテンツは最も簡単です:
user1=rw user2=rw user3=rw user4=rw
- ファイルC:\ Program Files \ VisualSVN Server \ conf \ httpd-custom.conf add
<Location /websvn/> SVNListParentPath on SVNParentPath "D:/SVN/Repositories/" AuthType Basic AuthBasicProvider file AuthName "Please,authenticate in Subversion Repository" Require valid-user AuthUserFile "D:/SVN/Repositories/htpasswd" AuthzSVNGroupsFile "D:/SVN/Repositories/groups.conf" AuthzSVNAccessFile "D:/SVN/Repositories/authz" </Location>
入るとすぐに
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