Tortoise SVN hidden _svn folders

Son especialmente molestos cuando necesito upload al server una solución web.

¿Hay alguna forma de configurar SVN para crear las carpetas _svn fuera de mi directory de trabajo? De lo contrario, ¿cuál es la mejor forma de lidiar con ellos cuando solo necesita copyr el código?

Actualización: Usar el command "svn export" es problemático porque hay files que no están bajo control de fuente pero son necesarios como .dll, files de datos xml o files de database y no serán exportados. Por lo tanto, se requerirá copyrlos manualmente en diferentes subdirectorys de la copy de trabajo cada vez.

No es posible (actualmente) configurar SVN (o TortoiseSVN) para crear los directorys .svn (o _svn) fuera de la copy de trabajo. Creo que la hoja de ruta de SVN 1.6 incluye volver a visitar la biblioteca de copy de trabajo. La capacidad de poner los directorys administrativos en otra parte podría salir de este trabajo, pero estoy especulando.

Debe usar el command "svn export" para crear una copy "limpia" de su copy de trabajo (es decir, sin los directorys _svn). Esto funciona desde el cliente de línea de command.

Si está utilizando TortoiseSVN, puede hacer clic con el button derecho en la copy de trabajo y seleccionar "Exportar …". Esto le pedirá una carpeta para exportar los files. Alternativamente, puede arrastrar con el button derecho una copy de trabajo a una carpeta (una que no sea una copy de trabajo) y TortoiseSVN mostrará un menu contextual; entre las opciones están "SVN Exportar a aquí" y "SVN exportar todo a aquí", este último también exporta files que no están bajo control de versión .

Use "svn export" para crear un tree de directorys limpio.

Implementación de Robocopy …

robocopy {source} {dest} /MIR /XD _svn /XD .svn 

En TortoiseSVN, puede hacer clic con el button derecho en la copy de trabajo y arrastrarla a otro lugar. Y cuando aparezca el menu emergente, select "SVN Export Here". (Esto requiere que todo el código en la copy de trabajo esté registrado ya que la export será desde el enlace troncal y no desde la copy de trabajo)

Vea estos resources para más detalles:

si utiliza una secuencia de commands nant para habilitar la implementación en el server web, tiene un _SVN y _SVN / ** como excluye automáticamente al copyr files. nant filtrará una gran cantidad de files no deseados al copyr files a través de su tarea de copy, incluyendo:

  • ** / * ~
  • ** / # * #
  • ** /. # *
  • ** /% *%
  • ** / CVS
  • / CVS /
  • ** /. cvsignore
  • ** /. svn
  • /.svn/
  • ** / _ svn
  • / _svn /
  • ** / SCCS
  • / SCCS /
  • ** / vssver.scc
  • / _vti_cnf /

Puede leer más acerca de NANT en la página principal de su proyecto aquí: NANT Home

+1 para la solución de Isak Savo.

Y puede hacer una XCOPY y excluir carpetas "/ svn":

XCOPY% 1% 1_deploy /EXCLUDE:C:\ExcludeSVN.txt / E / C / I / F / R / Y

Contenido de ExcludeSVN.txt:

/ _svn

De hecho, si desea upload de carga a un server web, su file de exclusión puede contener mucho más:

  • .pdb
  • .cs
  • .resx
  • .csproj
  • .sln
  • .webinfo
  • .bak
  • .sql
  • .cremallera
  • .vspscc
  • .vssscc
  • .scc
  • \ Web.config

Advertencia: si excluye files .cs, dio para volver a copyr el file .css después

La manera realmente sucia en Windows: crea una copy de tu proyecto, abre el Explorador, navega hasta el directory donde está la copy y haz una búsqueda para todo lo que termine en _svn. Una vez que finalice la búsqueda, select todo y presione Eliminar.

¡Yuck! Pero funciona realmente bien.

Utilizamos CruiseControl con robocopy para crear una copy limpia de su repository.

  <exec> <executable>C:\Archivos de progtwig\Windows Resource Kits\Tools\robocopy.exe</executable> <buildArgs>E:\CruiseControl\yourproject\Code\trunk\ E:\wwwroot\yourproject *.* /E /XX /XA:H /XO /NDL /NC /NS /NP /XF "*.cache" "*.designer.cs" "*.sln" "*.msbuild" "*.csproj" "*.PDB" "*.user" "*.designer" /XD .svn App_Code obj Properties</buildArgs> <buildTimeoutSeconds>60</buildTimeoutSeconds> <successExitCodes>1,0</successExitCodes> </exec> 

Los arguments / XF y / XD excluyen los files y los directorys que no desea cargar a la producción.

Puede encontrar más información sobre robocopy aquí .

Si desea eliminar todas las subcarpetas llamadas .svn en Windows, cree un file por lotes con este contenido:

 for /f "tokens=* delims=" %%i in ('dir /s /b /a:d *.svn') do ( rd /s /q "%%i" ) 

guárdelo en un file del_All_Dot_SVN_Folders.cmd . Ejecutarlo. Terminaste.

Gracias a http://www.axelscript.com/2008/03/11/delete-all-svn-files-in-windows/

Recuerde que el código anterior tiene .svn, mientras que el código en el enlace solo tiene * svn, por lo que es mejor tener .svn para que no tenga accidentalmente un efecto no deseado.