2

私は、Subversionを使用して、開発と保守に関連するWebサイトの変更を追跡し、元に戻すことができるようにしました。それが提供するこの安心感を愛する!

「ライブ」ウェブサイトとSubversionリポジトリ間の同期を自動化できるツール/方法があるかどうか知りたいです。バグパッチをリポジトリとライブバージョンの両方にコミットできると便利です(現在、修正したファイルをftp経由で手動でアップロードしてから、subversionリポジトリにコミットします)。

これはどこかに存在しているに違いないと思いますが、どの名前で?どのような設定が必要ですか?

フィードバックありがとうございます、A。

4

3 に答える 3

3

最新のリビジョンのリポジトリをWebサーバーディレクトリにエクスポートするコミット後フックを作成できます。

#!/bin/sh

# Delete Old site
rm -R /var/www/website

# Export Repository
svn export --force file:///var/svn/website /var/www/website

# Make sure Apache Owns the website
chown -R www-data:www-data /var/www/website 

(このフォーラムスレッドへのクレジット)

これをリポジトリpost-commitのディレクトリにある、というファイルに保存し、実行可能にします。hooks

リポジトリとWebサイトが同じサーバー上にない場合は、一時ディレクトリにエクスポートしてから、ftpまたはscpを介してプッシュする必要があります。

編集:仕事をすることができるこのperlモジュールも見つけました:SVN :: Notification :: Mirror

于 2010-10-07T10:03:16.727 に答える
2

基本的に、 svnリポジトリフック、特にフックを使用してそれを行うことができますpost-commit

于 2010-10-07T09:52:56.897 に答える
1
  1. svn checkoutを実行して、Webサーバーにリポジトリ/ Webサイトの作業コピー(ローカルコピー)を作成します。
  2. cron / schedulerでタスクを設定できます(linux / windowsによって異なります)。タスクは、作業コピーでsvn更新を実行できます。これは、コミットの頻度に応じて、数分/時間ごとに実行できます。
  3. .svndirsを表示しないようにWebサーバーに指示します。Apacheの場合は、以下の行をhttpd.confに含めることができます(IISにも方法があるはずです。これがWindowsに必要な場合は、お知らせください)。
<DirectoryMatch \.svn>
   Order allow, deny
   Deny from all
</DirectoryMatch>

AliasMatch \.svn /non-existant-page
于 2010-10-07T11:32:56.580 に答える