【问题标题】:Removing web.config from subversion (ASP.NET Project)从 subversion (ASP.NET 项目) 中删除 web.config
【发布时间】:2008-09-11 09:06:06
【问题描述】:

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

如何在不从文件系统中删除的情况下安全地从 Subversion 中删除它

谢谢, 阿丁

【问题讨论】:

    标签: asp.net svn web-config


    【解决方案1】:

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

    • 首先备份您的本地文件(如@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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我们部署的方式是: 1. 在Dev pc 上提交到SVN 2. 在服务器上“svn up filename”
      • 您使用哪个构建工具进行此修改?这种 web.config 修改是否有任何特定的 ccnet 任务?
      【解决方案3】:
      svn rm --force web.config
      svn commit
      

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

      【讨论】:

        【解决方案4】:

        我已经使用 nant 和 ccnet 解决了这个问题。以下 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 Copy Task

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-09-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-07-02
          • 2010-10-16
          • 1970-01-01
          相关资源
          最近更新 更多