从Subversion中删除web.config(ASP.NET Project)

时间:2020-03-05 18:51:19  来源:igfitidea点击:

我有一个使用Subversion和VisualSVN进行源代码控制的项目。由于服务器和开发人员计算机上的web.config版本不同,因此我希望文件保留在计算机上,但被Subversion忽略。我将其添加到svn:ignore,但它仍然存在(并且由于我们没有提交它,因此它仍然带有红色的感叹号)。

如何安全地将其从Subversion中删除,而又不从文件系统中删除它

谢谢,
阿丁

解决方案

回答

svn rm --force web.config
svn commit

在执行此操作之前,请小心备份(web.config的)本地副本,因为它将被删除。

回答

我们必须同时执行删除和忽略操作

  • 首先备份本地文件(如@ibz说的)
  • 然后从存储库中删除web.config。
  • 然后将web.config复制回同一文件夹
  • 最后使用svn:ignore,以便Subversion不会尝试再次将其添加到存储库中

由于我使用tortoisesvn,所以我无法真正告诉我们必须使用什么svn命令,但是使用tortoisesvn可能是:

  • 进行备份
  • 右键单击源代码管理下文件夹中的web.config,选择TortoiseSVN |。删除
  • 右键单击源代码管理下的文件夹中的web.config,选择SVN Commit =>,之后我们会注意到该文件实际上已从文件系统中删除
  • 向上移动并右键单击源代码管理下的文件夹,选择TortoiseSVN |。特性
  • 在属性窗口上,单击新建+属性名称" svn:ignore";属性值" web.config"。接受变更
  • 提交更改

在我的.net项目中,我使用svn:ignore包括以下排除项:bin,obj,。suo,。user

回答

理想情况下,我们也应该在SVN中维护服务器的web.config副本版本。我们通常将生产web.config重命名为web.config.prod(每个环境的副本),并让构建工具选择正确的文件,并在打包进行部署时将其重命名为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复制任务