Pregunta

Si está trabajando en PHP (o supongo que en cualquier lenguaje de programación) y utiliza Subversion como control de fuente, ¿hay alguna manera de tomar su proyecto (por ejemplo):

C:\Proyectos\prueba\.svn
C:\Proyectos\prueba\docs\
C:\Proyectos\prueba\faq.php
C:\Proyectos\prueba\libro de visitas.php
C:\Proyectos\prueba\index.php
C:\Proyectos\prueba est.php

y compilar/copiar/lo que sea para que elimine ciertos archivos y se convierta en:

C:\Proyectos\prueba\faq.php
C:\Proyectos\prueba\libro de visitas.php
C:\Proyectos\prueba\index.php

¿automáticamente?Me estoy cansando de crear una rama y luego revisarla y eliminar todas las carpetas ".svn", el directorio de documentos y mis archivos de creación de prototipos.

Sé que probablemente podría usar un archivo .bat para copiar solo los archivos específicos que quiero, pero esperaba que hubiera alguna manera con Subversion de pseudo ignorar un archivo, donde aún se versionará, pero donde se podría hacer. una instantánea del proyecto que ignora los archivos que usted le indicó que pseudoignorara.

Sé que leí en línea en alguna parte sobre alguna funcionalidad que al menos te permite copiar sin las carpetas .svn, pero no puedo encontrarla ahora.

¿Fue útil?

Solución

Si usa TortoiseSVN, puede usar la función de exportación para eliminar automáticamente todos los archivos .svn.Creo que otras cosas svn tienen la misma característica.

Haga clic derecho en la carpeta raíz del proyecto, TortoiseSVN > Exportar e indique dónde desea el directorio gratuito .svn.

Otros consejos

Aquí tienes una idea extravagante: chicle y cordón de zapatos:

Copie todos los archivos manualmente o utilizando su método existente por primera vez.Entonces, ya que entiendo que estás en una plataforma Windows, instala Sincronización de juguetes y configurarlo en el método de suscripción, que efectivamente copiaría unidireccionalmente solo los cambios realizados desde el último pseudo-commit a producción para archivos que ya están en producción.Si desea agregar un archivo, puede copiarlo manualmente y reanudar la operación de SyncToy.

Ok, entonces mi solución final es esta:

Utilizo el comando de exportación para exportar a una carpeta llamada "exportar" en el mismo directorio que un archivo llamado "deploy.bat", luego ejecuto el script de implementación (v1 significa versión 1, que es la versión en la que estoy actualmente en este proyecto) Este script utiliza 7-Zip, que he colocado en la ruta de mi sistema para poder usarlo como una utilidad de línea de comando:

rem replace the v1 directory with the export directory
rd /s /q v1
move /y export\newIMS v1
rd /s /q export

rem remove the prepDocs directory from the project
rd /s /q v1\prepDocs

rem remove the scripts directory from the project
rd /s /q v1\scripts

rem remove individual files from project
del v1\.project
rem del v1\inc\testLoad.html
rem del v1\inc\testInc.js

SET /P version=Please enter version number:

rem zip the file up with 7-Zip and name it after whatever version number the user typed in.
7z a -r v%version%.zip v1

rem copy everything to the shared space ready for deployment
xcopy v%version%.zip /s /q /y /i "Z:\IT\IT Security\IT Projects\IMS\v%version%.zip"
xcopy v1 /s /q /y /i "Z:\IT\IT Security\IT Projects\IMS\currentVersion"

rem keep the window open until user presses any key
PAUSE

No tuve tiempo de probar la solución SyncToy, así que no tomen esto como si rechazara ese método.Simplemente sabía cómo hacer esto y no tuve tiempo de comprobarlo (en este momento tengo poco tiempo).

Fuentes:

http://commandwindows.com/command2.htm
http://www.ss64.com/nt/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top