2008-10-21 17 views
13

Son especialmente molestas cuando necesito cargar al servidor una solución web.Tortoise SVN hidden _svn folders

¿Hay alguna manera de configurar SVN para crear las carpetas _svn fuera de mi directorio de trabajo? En caso negativo, ¿cuál es la mejor manera de tratar con ellos cuando solo necesita copiar el código?

Actualización: Mediante el comando "svn export" es problemático porque hay archivos que no están bajo control de código fuente, pero necesaria como la de .dll, archivos de datos XML o archivos de base de datos y no van a ser exportados. Por lo tanto, se requerirá copiarlos manualmente en diferentes subdirectorios de la copia de trabajo cada vez.

+1

Por lo tanto, es posible que desee considerar la configuración del entorno del servidor; si tiene acceso de shell, svn up'ing y simplemente htaccess'ing las carpetas _svn para ser no públicas, podría ser una forma más fácil de manejar las cosas. –

+0

¿Por qué tiene archivos que no están bajo control de código fuente? Tal vez deberías crear una etiqueta del proyecto y agregar esos archivos a la etiqueta. Luego exporta la etiqueta. – Rahul

+0

Realice la exportación y luego compile e implemente desde la versión exportada. –

Respuesta

26

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

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

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

+2

ahora está en la hoja de ruta de Subversion 1.7; parece que habrá un master .svn. No estoy seguro si se puede configurar para estar fuera del WC en 1.7 aún –

17

Utilice "svn export" para crear un árbol de directorios limpio.

+0

"Exportar" está en el menú contextual de tortoisesv, y creo que cuando arrastra una carpeta versionada con el botón derecho del mouse a una carpeta, ofrece exportar a esa carpeta. –

1

La manera realmente sucia en Windows: cree una copia de su proyecto, abra el Explorador, navegue hasta el directorio donde está la copia y haga una búsqueda para todo lo que termine en _svn. Una vez que finalice la búsqueda, seleccione todo y presione Eliminar.

¡Yuck! Pero funciona realmente bien.

3

si utiliza una secuencia de comandos nant para habilitar la implementación en el servidor web, tiene un _SVN y _SVN/** como se excluye automáticamente al copiar archivos. Nant filtrará un montón de archivos unwaanted al copiar archivos a través de su tarea de copia incluyendo:.

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

puede leer más sobre NANT en la página inicial de su proyecto h ere: NANT Home

4

En TortoiseSVN, puede derecha haga clic en la copia de trabajo y arrástrela a otro lugar. Y cuando aparezca el menú emergente, seleccione "SVN Export Here". (Esto requiere que todo el código en la copia de trabajo se comprobó en ya que la exportación será del tronco y no de la copia de trabajo)

Ver estos recursos para obtener más información:

2

+1 para la solución de Isak Savo.

Y usted puede hacer un XCOPY y excluir "/ SVN" carpetas:

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

contenido de ExcludeSVN.txt:

/_svn

de hecho, si quieres upoload a un servidor web, el archivo de exclusión puede contener mucho más:

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

Advertencia: Si se excluye archivos .cs, que dio a volver a copiar.css después del despliegue

+0

Sé que esta es una publicación anterior, pero puede usar .cs \ para excluir archivos .cs y no .css – triniMahn

12

Robocopy ...

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

Utilizamos climatizador con Robocopy con el fin de crear una copia limpia de su repositorio.

<exec> 
     <executable>C:\Archivos de programa\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> 

argumentos/XF y/XD excluye los archivos y los directorios que no desea cargar en la producción.

Puede encontrar más información sobre robocopy here.

0

Si desea eliminar todas las subcarpetas nombradas Svn en ventanas continuación, crear el archivo por lotes con este contenido:

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

guardarlo en un archivo de del_All_Dot_SVN_Folders.cmd. Ejecutarlo. Terminaste.

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

Recuerde el código anterior ha .svn mientras que el código en el enlace sólo ha svn * así que es mejor tener la Svn tener no por casualidad efecto no deseado.

Cuestiones relacionadas