xcopy ASP.NET部署Subversion管理的项目

4
我目前使用Subversion来管理我的ASP.NET网站。我发现每当我要将网站上传到服务器时,我都会复制大量隐藏的.svn文件夹以及其中可能包含的任何内容。
有没有人有什么建议可以避免这种情况?我不想在生产服务器上留下那些隐藏的.svn文件夹,但除了在上传网站之前手动删除每个.svn文件夹之外,我无法想到如何拥有一个没有.svn文件夹的生产环境。
编辑:谢谢大家,这些都是很好的建议,非常感谢!
4个回答

4
  1. 您应该使用Subversion的导出命令。
  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\" \""

3

2

我有一个后构建步骤,作为项目构建的一部分,准备一个干净的“drop”文件夹。下面是我的操作:

  <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 也可以使用。:-) 然而,采用这种方法时,您无法修改并将构建过程中修改的任何源文件提交回存储库。

2
您可以在服务器上运行Subversion,然后从代码库中进行svn导出吗? svn导出类似于检出,但没有.svn文件夹(也无法在该目录中进行Subversion工作)。
或者,您可以在本地机器上对存储库进行svn导出,然后将导出的版本通过FTP上传。

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