ライブサイトに/.svn/フォルダーを配置しても安全ですか?(それらを削除して、svn update機能を保持する方法は?)


10

私のphp Webサイトのコードを更新するためにsvn updateを実行してい.svn/ますが、フォルダーがすべて残っています。

これらのファイルを公開したままにしておくのは危険ですが、システムを更新するのは非常に簡単です。

を使用svn updateしてシステムを更新し、.svn/フォルダをエクスポートしない方法はありますか?

回答:


21

Apacheを使用している場合:

<Directory ~ "\.svn">
    Order allow,deny
    Deny from all
</Directory>

これ.svnにより、(ブラウザを使用して)リモートからディレクトリにアクセスできなくなりますが、プロジェクト(およびsvn機能)を維持できます。

ところで、あなたは置き換えることができる\.svnため\.gitか、\.cvsあなたが転覆よりも別の何かを使用している場合。


そして、これはウェブサイト全体のすべての.svnディレクトリをブロックしますか?私は多くのサブディレクトリを持っています
シリコンピ

現在、私のhttpd.confには<Directory />オプションFollowSymLinks AllowOverride All </ Directory>があります。これの下に書き込んだものを別のものとして追加できますか、または2つのエントリをマージする必要がありますか?
Siliconpi、

.svnそう呼ばれるディレクトリと一致します。
コアダンプ

個別に追加できます。
コアダンプ


3

SVNからライブサイトにコードをエクスポートしたい...

svn updateそのために使用しないでください。updateは、コードをエクスポートするのではなく、作業コピーの更新で使用するためのものです。svn export指定されたリポジトリからクリーンなディレクトリツリーをエクスポートするため、代わりに使用してください。

この--forceフラグにより​​、エクスポートで既存のファイルを上書きできます。

SVNエクスポートの手動入力


OPが使用したくない場合は、共感できexportます。これには、リポジトリの新しいコピー全体を常に取得する必要があるためです。これは、小さな接続(Webサーバーがホストされているサーバーなど)上の大きなレポである場合は面倒です。 SVNリポジトリはローカルオフィスにあり、1Mbのリンクで共有されています)。update毎回すべてを取得する必要がないことを意味します。
Mark Henderson、

公正なポイント。おそらく、サイトのローカルコピーにエクスポートしてから、リモートWebサーバーに変更をrsyncするだけで、その状況で機能しますか?私はその問題を経験したことがなかったので、私はそれを考えていませんでした。
gsreynolds、2011年

2

私はそれらをプロダクション/ライブサイトに入れません。Coz私や他の開発者がライブコードを編集することの悪い考えを忘れないようにしてください。私のインストールスクリプトは、.svnファイルを除外します。


@kerner-では、それらをどのように更新しますか?
Siliconpi、

1
なぜsvn exportそれらを使用せず、それらをフィルタリングしないのですか?
pjmorse

私は自分のサイトで使用するインストールスクリプトを用意しています。それぞれに合わせて少し調整します。通常、データベース、dbテーブル、dbユーザーの構築、デフォルトのユーザーや管理者の設定なども行います。したがって、prodへのエクスポートを行うには、prodユーザー(人間またはスクリプトとして)がsvnをチェックアウトします。 〜/に沿ってどこかにコピーしてから、その作業コピーのメンバーであるインストールスクリプトを実行し、オプションで作業コピーを削除します。
ekerner、

1

Capistranoなどの適切なデプロイメントシステムを調べる必要があります。つまり、本番サーバーはsubversionを必要とせず、複数のサーバーにデプロイしてカスタムロジックをデプロイメントに追加できます。また、展開のロールバックも比較的簡単になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.