質問

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>

NAnt コピー タスク

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top