asp.net svn

Implementación de xcopy ASP.NET de un proyecto administrado por Subversion



svn (4)

Actualmente estoy usando Subversion para administrar mi sitio web ASP.NET. Me doy cuenta de que cada vez que voy a cargar mi sitio web a mi servidor, estoy copiando una gran cantidad de carpetas ocultas .svn y cualquier contenido que pueda contener.

¿Alguien tiene alguna sugerencia para evitar esto? No quiero particularmente esas carpetas ocultas .svn en el servidor de producción, pero a menos de eliminar manualmente cada carpeta .svn antes de cargar mi sitio web, no sé cómo tener un entorno de producción libre de carpetas .vvn. .

Editar: ¡Gracias a todos, esas son excelentes sugerencias, realmente lo aprecio!


  1. Debe usar el comando de exportación de la subversión.
  2. Puede ajustar el registro y agregar un "Eliminar carpetas SVN" al menú contextual de las carpetas. Aquí hay un script de ejemplo de http://weblogs.asp.net/jgalloway/archive/2007/02/24/shell-command-remove-svn-folders.aspx. Guárdelo en un archivo .reg y ejecútelo.

Haga clic derecho en la carpeta de su proyecto y elimine todas las carpetas .svn recursivamente.

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/" /""


¿Qué tal si ejecutas Subversion en el servidor y luego haces una exportación de svn desde el repositorio? svn export es como un pago, pero sin las carpetas .svn (y sin la capacidad de hacer Subversion en ese directorio).

Alternativamente, haga una exportación svn del repositorio en su máquina local y luego FTP la versión exportada.


Tengo un paso posterior a la compilación, que prepara una carpeta de entrega limpia como parte de la compilación del proyecto. Así es como lo hago:

<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>

Por supuesto, la svn export funciona. :-) Sin embargo, con ese enfoque no puede modificar y volver a comprometer al repositorio cualquier archivo fuente modificado durante la compilación.