Quiero comenzar a probar el JavaScript en mis aplicaciones Rails con qUnit y me pregunto cómo mantener el JavaScript de prueba y la página HTML del corredor de prueba bajo control de versión (Estoy usando Git, por supuesto), pero mantenlos fuera del servidor de producción cuando implemente la aplicación con Capistrano. Mi primer pensamiento es permitir que Capistrano envíe todo el código como siempre, incluidos los archivos de prueba, y escribir una tarea para eliminarlos al final del proceso de implementación. Esto parece una especie de truco, sin embargo. ¿Hay alguna manera más clara de decirle a Capistrano que ignore ciertas partes del repositorio cuando se despliega?Excepto que los archivos se implementen con Capistrano mientras aún esté bajo control de versión con Git
Respuesta
A partir del 30 de agosto de 2013, puede simplemente crear un archivo .gitattributes
y export-ignore
los archivos/carpetas de su elección.
features/ export-ignore
spec/ export-ignore
Referencia: https://github.com/capistrano/capistrano/pull/626
Usted podría tener esas pruebas en una rama de prueba (en el que se funden con su oficina principal antes de cualquier prueba)
De esa manera, cuando se pide Capistrano para desplegar lo que está en su rama principal, no existe ninguna prueba de ningún tipo está siempre incluido.
Hay muchas maneras de lograr esto, puede mantener sus pruebas en una rama de prueba de la aplicación como lo sugirió VonC, pero eso significaría que haría todos los cambios en su rama principal y luego sincronizarlos con su prueba rama. (No sin sus méritos, pero a veces con dolor)
Puede usar el archivo .gitignore en su directorio.
Cualquier archivo que agregue a esto no se agregará a su repositorio. Como capistrano simplemente extrae publicaciones de su repositorio, no tener los archivos incluidos los mantendrá fuera de su servidor de producción.
Por último, pero no menos importante, si desea que los archivos de prueba en su repositorio principal de control de versiones, se puede añadir una receta a su archivo de configuración/deploy.rb .. algo así como:
desc "Remove Test Files"
task :remove_test_files , :roles => :web do
sudo %{rm -f #{current_path}/public/javascripts/testfile.js}
sudo %{rm -f #{current_path}/public/javascripts/anothertestfile.js}
end
after 'deploy:remove_test_files'
y especificar los archivos que desea eliminar, esto eliminará los archivos que desee cuando implemente. :)
Cualquiera de los anteriores funcionará. Elija el método que funcione para usted.
- 1. git workflow: ¿Puedo evitar que cierto archivo se fusione con otra rama pero aún así mantenerlo bajo control de versión?
- 2. ¿Deben los archivos .class estar bajo control de versión?
- 3. Git Workflow Con Capistrano
- 4. SVN piensa que los archivos ya están bajo el control de versión
- 5. Git ramificación mientras se abren los archivos
- 6. ¿Qué poner bajo control de versión?
- 7. xcodeproj bajo control de versión
- 8. Archivos Gettext .po bajo el control de versión
- 9. ¿Debo mantener mis archivos de proyecto bajo control de versión?
- 10. ¿Cómo se retrotrae a la versión desplegada previamente con capistrano?
- 11. Asegúrese de que los objetos implementen Comparable
- 12. ¿Cómo maneja los archivos individuales del desarrollador bajo el control de la versión?
- 13. svn: ignorar 'archivo' no está bajo el control de versión
- 14. ¿Cómo actualizar Wordpress y los complementos al implementar con Capistrano?
- 15. Capistrano carga el directorio .git
- 16. Mantener archivos estáticos en el servidor al implementar con Capistrano
- 17. En una fusión de git, ¿cómo se puede reemplazar su versión con la versión que dice que hay un conflicto?
- 18. Git: Ignorar archivos controlados por la versión
- 19. Cómo confirmar todos los archivos, excepto uno con SVN
- 20. Guardar archivos no versionados al implementar con Capistrano
- 21. ¿Cómo puedo ignorar todos los archivos excepto los que tienen cierta extensión en git?
- 22. ¿Cómo lidia Git con los archivos binarios?
- 23. Obtener toda la historia de los archivos con git-p4
- 24. git agregar todos excepto ignorar archivos en el archivo .gitignore
- 25. ¿Cómo ignoro los archivos con la GUI de Git?
- 26. Conservación de permisos de archivos con Git
- 27. ¿Existe algún control de versión centralizada más rápido que SVN?
- 28. ¿La mejor práctica para mantener el código fuente bajo control de versión con varias compañías?
- 29. ¿Control de versión ágil?
- 30. Error al implementar con Capistrano
no vi su respuesta en el momento. +1 – VonC
Gracias Von. Lo aprecio. –
@VonC & Dustin - ¿Cómo recomendaría el manejo si sus archivos de tapa están en su repositorio de implementación pero no los quiere en su servidor de producción? Serán implementados en releases/variable_directory_name – csi