Subversion からの web.config の削除 (ASP.NET プロジェクト)
-
09-06-2019 - |
質問
Subversion と VisualSVN を使用してソース管理されているプロジェクトがあります。web.config のバージョンはサーバーと開発者のコンピュータで異なるため、ファイルはコンピュータ上に残しておいて、Subversion によって無視されるようにしたいと考えています。これを svn:ignore に追加しましたが、まだ残っています (コミットしていないため、赤い感嘆符も付いています)。
ファイル システムから削除せずに、Subversion から安全に削除するにはどうすればよいですか?
ありがとう、アディン
解決
削除と無視の両方の操作を行う必要があります
- まずローカルファイルのバックアップを作成します(@ibzが言ったように)
- 次に、リポジトリから web.config を削除します。
- 次に、web.config を同じフォルダーにコピーして戻します
- 最後に svn:ignore を使用して、Subversion がリポジトリに再度追加しようとしないようにします。
私は tortoisesvn を使用しているので、どの svn コマンドを使用する必要があるかは実際には言えませんが、tortoisesvn を使用すると次のようになります。
- バックアップを作成する
- ソースコントロールの下のフォルダー上のweb.configを右クリックして、tortoisevnを選択します|消去
- ソース管理下のフォルダーの web.config を右クリックし、SVN Commit を選択します => この後、ファイルが実際にファイル システムから削除されていることがわかります。
- 上に移動して、ソースコントロールの下のフォルダーを右クリックします。プロパティ
- プロパティウィンドウで、新規 + プロパティ名「svn:ignore」をクリックします。プロパティ値「web.config」。変更を受け入れる
- 変更をコミットする
私の .net プロジェクトでは、svn:ignore で次の除外を含めます。bin、obj、*.suo、*.user
他のヒント
理想的には、サーバーの web.config のコピーのバージョンを SVN でも維持する必要があります。通常、運用環境の web.config の名前を web.config.prod (各環境のコピー) に変更し、ビルド ツールに適切なファイルを選択させ、デプロイメント用にパッケージ化するときにそのファイルの名前を web.config に戻します。
svn rm --force web.config
svn commit
これを行う前に、ローカル コピー (web.config) が削除されるので、必ずバックアップしてください。
ccnet で nant を使用してこの問題を解決しました。次の nant ビルド スクリプトは、web.test.config ファイルをローカルの web.config ファイルに置き換えます。
<?xml version="1.0"?>
<project name="Project1" default="build">
<target name="init" depends="clean" />
<target name="clean" />
<target name="checkout"/>
<target name="compile"/>
<target name="deploy"/>
<target name="test"/>
<target name="inspect"/>
<target name="build" depends="init, checkout">
<call target="compile" />
<call target="inspect" />
<call target="test" />
<call target="deploy" />
</target>
<copy file="..\TestDeployments\Project1\Project1.Solution\Project1.Web.UI\web.Test.config"
tofile="..\TestDeployments\Project1\Project1.Solution\Project1.Web.UI\web.config"
overwrite="true"
/>
<delete file="..\TestDeployments\Project1\Project1.Solution\Project1.Web.UI\web.Test.config" />
</project>