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

4
我有一个项目,使用Subversion和VisualSVN进行源代码控制。由于服务器上的web.config版本与开发人员的计算机不同,我希望该文件保留在计算机上但被Subversion忽略。我将其添加到svn:ignore中,但它仍然存在(而且仍然有一个红色感叹号,因为我们没有提交它)。
如何安全地从Subversion中删除它,而不会从文件系统中删除它?
谢谢, Adin
4个回答

6

您需要同时执行删除和忽略操作

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

由于我使用的是TortoiseSVN,所以无法告诉您要使用哪些svn命令,但是使用TortoiseSVN,它应该是:

  • 备份
  • 在源代码控制下的文件夹上右键单击web.config,选择TortoiseSVN | 删除
  • 在源代码控制下的文件夹上右键单击web.config,选择SVN提交 =>之后,您将注意到该文件实际上已从文件系统中删除
  • 向上移动并右键单击源代码控制下的文件夹,选择TortoiseSVN | 属性
  • 在属性窗口上单击新+属性名称“svn:ignore”;属性值“web.config”。接受变化
  • 提交更改

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


3
理想情况下,您应该在SVN中维护服务器web.config的版本。我们通常将生产环境的web.config重命名为web.config.prod(每个环境都有一个副本),并让构建工具选择正确的文件并在打包部署时将其重命名回web.config。

我们的部署方式是:
  1. 在开发电脑上提交到 SVN
  2. 在服务器上执行 "svn up 文件名"
- adinas
你在使用哪个构建工具进行这个修改?有没有针对这种web.config修改的特定ccnet任务? - Gökhan Ercan

1
svn rm --force web.config
svn commit

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


0

我已使用nant和ccnet解决了这个问题。以下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复制任务


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接