2008-09-11 64 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