2008-09-11 63 views
4

我有一個使用Subversion和VisualSVN進行源代碼控制的項目。由於web.config的版本在服務器和開發人員的計算機上不同,我希望該文件保留在計算機上,但Subversion會忽略它。我將它添加到svn:忽略但仍然存在(因爲我們沒有提交它,所以仍然有一個紅色的感嘆號)。從Subversion中刪除web.config(ASP.NET項目)

我怎樣才能從Subversion中刪除它安全而不會被從文件系統中刪除

感謝, 亞丁

回答

6

你必須做的都刪除,並忽略操作

  • 先爲您的本地文件的備份(如@ibz說)
  • 然後從資源庫中刪除的web.config文件。
  • 然後在web.config複製回同一文件夾
  • 最後使用svn:忽略,這樣顛覆不會嘗試,因爲我使用TortoiseSVN我真的不能再次添加到存儲庫

告訴你的svn命令,你必須使用,但使用TortoiseSVN這將是:

  • 製作備份
  • 右鍵單擊web.config中源控制下的文件夾,選擇TortoiseSVN |刪除
  • 右鍵點擊源碼控制下的文件夾下的web.config,選擇SVN Commit =>之後你會注意到文件實際上是從文件系統中刪除的
  • 向上移動並右鍵點擊源文件夾下的文件夾控件,請選擇TortoiseSVN |屬性
  • 在屬性窗口中單擊新建屬性名稱「svn:ignore」;屬性值「web.config」。接受變化
  • 提交更改我的.NET項目中,我有以下排除使用svn

:忽略:垃圾桶,OBJ,名爲.suo *,*。用戶

1
svn rm --force web.config 
svn commit 

小心前備份您的本地副本(web.config中的)這樣做,因爲它會被刪除。

3

理想情況下,你應該保持的版本SVN中web.config的服務器副本。我們通常將生產web.config重命名爲web.config.prod(每個環境的副本),並讓生成工具選擇正確的文件並在打包部署時將其重命名爲web.config。

+0

我們部署的方式是:1。 承諾SVN上開發PC 2.在服務器上執行「SVN了文件名」 – adinas 2009-06-04 18:48:23

0

我已經用ccnet使用nant解決了這個問題。以下nant構建腳本用本地web.config文件替換web.test.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 Copy Task