この問題に対して、市場には 1 つのオプションがあります。
WsgiDAVは、DVCS mercurialやその他のファッショナブルなストア (couchdb、mongodb、MySQL、App Engine)など、さまざまなバックエンドを提供する Python WebDAV サーバーです。現在のバージョンでは、「これは製品コードではありません」と主張されていることに注意してください。
SVN の WebDAV の自動バージョン管理とはバージョン管理が異なるようです。これにより、一度に複数の更新で構成される変更セットをコミットできます (「編集」フォルダーから「リリース済み」フォルダーにドラッグするなどにより)。一方、SVN + WebDAV の自動バージョン管理では、あまりにも多くのコミットが作成され、したがって、完全に自動バージョン管理というわけではありませんが、コマンドライン アクセスを必要とせず、IMO より優れたモデルです。
これをもっと一般的に考えてみると... 自動コミット WebDAV+SVN のことはまったくお勧めしません。あなたが言うように、「自動バージョン管理でのコミットは頻繁に行われます」。しかし、それらは非常に頻繁に発生し、通常は意味がありません。
私自身の解決策は、サーバー上で git または mercurial リポジトリを実行し、cron ジョブを使用して定期的にバージョン変更を行うことです。醜いですが、機能的で、特別なサーバーのセットアップや特別な apache モジュールなどは必要ありません。さらに良いことに、必要に応じて、WebDAV、SFTP、windows/apple ファイル共有、またはローカル DVCS ミラーを介して上記のリポジトリにアクセスでき、それらはすべてシームレスに機能します。
たとえば、Git は非常に優れたファイル移動検出機能を備えているため、WebDAV アクセス自体の必要性が軽減されます。一方、これをコマンドに変換するアクセス層を通過せずに SVN チェックアウトでディレクトリを移動するとsvn mv
、恐ろしい破損が発生する可能性があります。AFAICT、WebDAV + SVN の主な利点は、この方法で自分のチェックアウトを壊すのを防ぐことです。
一方、この場合、git または mercurial の「コンパクトなデータベース」は、SVN よりもそれらを優先する本当の理由ではありません。ただし、実際の同期競合に対処する必要がある場合は、優れた競合解決と一般的な低レベルの大騒ぎ/柔軟性のために、Subversion よりもどちらかをお勧めします。