我目前使用Subversion来管理我的ASP.NET网站。我发现,无论何时我将我的网站上传到我的服务器,我都会复制大量隐藏的.svn文件夹以及其中可能存在的任何内容。xcopy Subversion托管项目的ASP.NET部署
有没有人有任何建议来避免这种情况?我并不特别需要生产服务器上隐藏的.svn文件夹,但在上传我的网站之前手动删除每个.svn文件夹的工作量很少,我不知道如何拥有.svn-folder-free生产环境。
编辑:谢谢大家,这些都是伟大的建议,我真的很感激它!
我目前使用Subversion来管理我的ASP.NET网站。我发现,无论何时我将我的网站上传到我的服务器,我都会复制大量隐藏的.svn文件夹以及其中可能存在的任何内容。xcopy Subversion托管项目的ASP.NET部署
有没有人有任何建议来避免这种情况?我并不特别需要生产服务器上隐藏的.svn文件夹,但在上传我的网站之前手动删除每个.svn文件夹的工作量很少,我不知道如何拥有.svn-folder-free生产环境。
编辑:谢谢大家,这些都是伟大的建议,我真的很感激它!
你如何在服务器上运行Subversion,然后从存储库执行svn导出? svn导出就像结账一样,但没有.svn文件夹(并且无法在该目录中执行Subversion)。
或者,在本地计算机上执行svn导出回购,然后通过FTP导出导出版本。
两个建议:
我有一个postbuild一步,它准备一个干净的投递文件夹作为项目的一部分。以下是我的做法:
<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 -> @(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
也适用。 :-)但是,使用这种方法,您无法修改并向构建期间修改的任何源文件提交回存储库。
右键单击您的项目文件夹,并递归删除所有.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\" \""
这是一个很酷的reg黑客! – craigb 2008-10-22 04:07:13