【问题标题】:xcopy ASP.NET deployment of a Subversion-managed projectxcopy ASP.NET 部署 Subversion 管理的项目
【发布时间】:2008-10-22 03:50:30
【问题描述】:

我目前正在使用 Subversion 来管理我的 ASP.NET 网站。我发现每当我将我的网站上传到我的服务器时,我都会复制大量隐藏的 .svn 文件夹以及其中可能包含的任何内容。

有没有人有任何避免这种情况的建议?我并不特别想要生产服务器上那些隐藏的 .svn 文件夹,但是在上传我的网站之前没有手动删除每个 .svn 文件夹,我不知道如何拥有一个无 .svn 文件夹的生产环境.


编辑:谢谢大家,这些都是很好的建议,我真的很感激!

【问题讨论】:

    标签: asp.net svn


    【解决方案1】:
    1. 你应该使用 subversion 的 export 命令。
    2. 您可以调整注册表并将“删除 SVN 文件夹”添加到文件夹的上下文菜单中。这是来自http://weblogs.asp.net/jgalloway/archive/2007/02/24/shell-command-remove-svn-folders.aspx 的示例脚本,将其保存到 .reg 文件并执行。

    右键单击您的项目文件夹并递归删除所有 .svn 文件夹。

    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
    @="Delete SVN Folders"
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
    @="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""
    

    【讨论】:

      【解决方案2】:

      两个建议:

      • 使用robocopy 或xcopy 过滤掉.svn 文件夹
      • svn export 存储库到网络服务器 (docs)。导出不会写入任何.svn 文件夹

      另见:Tortoise SVN hidden SVN folders

      【讨论】:

        【解决方案3】:

        如何在服务器上运行 Subversion,然后从存储库中导出 svn? svn 导出类似于结帐,但没有 .svn 文件夹(并且没有在该目录中进行 Subversion 工作的能力)。

        或者,在本地机器上执行 svn 导出 repo,然后通过 FTP 上传导出的版本。

        【讨论】:

          【解决方案4】:

          我有一个后期构建步骤,它准备一个干净的放置文件夹作为项目构建的一部分。这是我的做法:

            <PropertyGroup>
              <DropPath>..\..\drop\</DropPath>
              <TestDropPath>..\..\test\</TestDropPath>
            </PropertyGroup>
            <Target Name="AfterBuild">
              <ItemGroup>
                <Binaries Include="$(OutputPath)**\*.*" />
              </ItemGroup>
              <ConvertToAbsolutePath Paths="$(DropPath)">
                <Output TaskParameter="AbsolutePaths" ItemName="FullDropPath" />
              </ConvertToAbsolutePath>
              <Message Importance="High" Text="Binplacing -&gt; @(FullDropPath)" />
              <Copy SourceFiles="@(Compile)" DestinationFiles="@(Compile->'$(DropPath)%(Identity)')" />
              <Copy SourceFiles="@(Content)" DestinationFiles="@(Content->'$(DropPath)%(Identity)')" />
              <Copy SourceFiles="@(EntityDeploy)" DestinationFiles="@(EntityDeploy->'$(DropPath)%(Identity)')" />
              <Copy SourceFiles="@(Binaries)" DestinationFiles="@(Binaries->'$(DropPath)%(Identity)')" />
            </Target>
          

          当然,svn export 也可以。 :-) 但是,使用这种方法,您无法在构建期间修改任何源文件并将其提交回存储库。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-03-07
            相关资源
            最近更新 更多